描述
使用此功能可将垂直范围内的单元格转换为水平范围内的单元格,反之亦然。
这对于改变工作表中数据的方向、将行转换为列或将列转换为行非常有用。
句法
TRANSPOSE(数组)
输入
该函数接受以下参数:
| 姓名 | 必要 | 描述 | 有效输入 |
|---|---|---|---|
| 数组 | 是 | 要转置的单元格范围或数组。 | 单元格、单元格区域或公式,其结果可以是上述任何一种。这些可以包含数字、文本或两者兼有。 |
实例
范例数据
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 产品 | 价格 | 数量 | 销售 |
| 2 | 苹果 | 1.50 | 100 | $150.00 |
| 3 | 橙色 | 2.00 | 95 | $190.00 |
| 4 | 金橘 | 2.45 | 45 | $110.00 |
| 5 |
示例公式
| 用例 | 公式 | 解释与结果 | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 将数组 A1:C3 中的所有单元格进行移位。 | =TRANSPOSE(A1:C3) |
对于此数据集,如果公式位于单元格 E1 中,则该公式将返回以下结果:
|
||||||||||||
| 将长长的产品类别列表转换为报表的水平标题行,确保没有重复项并正确排序。 | =TRANSPOSE(SORT(UNIQUE(A2:A5))) |
该公式首先使用 UNIQUE 获取垂直的项目列表(可能包含重复项),并删除重复项, SORT 按字母顺序或数字顺序对结果进行排序,然后 TRANSPOSE 将它们水平显示。对于此数据集,此公式将返回以下结果:(返回“0”是因为第 5 行是空行。)
|
||||||||||||
| 如果产品的总销售额(数量×价格)超过 120 美元,则水平显示产品名称。 | =TRANSPOSE(FILTER(A2:A4, SUMIF(C2:C4,C2:C4,D2:D4)120)) |
该公式首先使用 SUMIF 计算销售总额,然后使用 FILTER 识别值大于 100 美元的项,最后使用 TRANSPOSE 将结果水平显示。对于此数据集,该公式将返回以下结果:
|
||||||||||||
| 创建一个汇总视图,从数据集中提取特定字段,并以不同的方向呈现,以便用于报告目的。 | =TRANSPOSE(INDEX(A2:C10, SEQUENCE(3), {1,3})) |
该公式首先使用 INDEX 从范围
|
笔记
- 与所有数组函数一样,TRANSPOSE 函数会从包含 TRANSPOSE 函数的单元格开始,动态地将结果填充到相邻的单元格中。
重要提示: 目标范围不能与源范围重叠。 - 转置:
- 从公式所在的单元格开始,自动将结果溢出到相邻单元格,并在需要时创建新行或列。
- 以下内容需要验证:
- 连接被转移到新细胞中。
- 格式(包括数值格式样式)将转移到新单元格。
- 评论不会被转发。
使用技巧
- 如果数据有标题行,则数组值从下一行开始(例如,在上面的数据集中,从 A2 而不是 A1 开始)。
- 在转置数据时,可以通过添加 VSTACK 或 HSTACK来包含标头。
- 如果引用的范围包含空单元格,TRANSPOSE 可能会返回
0而不是空白(参见上面的示例)。在公式中使用IF(A1="", "", A1)来处理空白。 - 使用 INDEX 和 TRANSPOSE 来提取和转置特定列(参见上面的示例)。
相关功能
以下是 Workiva 电子表格中支持的其他数组公式函数。