将行转置为Excel

时间:2019-05-15 07:10:12

标签: excel excel-formula

我正在尝试将行转置为列,我尝试使用Transpose(Array),但无法达到预期的结果。 这是我正在寻找的示例数据和预期结果。

样本数据:

Number  Name    Value
1001    description Unknown
1001    Code    0
1001    GNumber 232323
1001    DNumber 232323
1002    description Unknown
1002    GNumber 232323
1002    DNumber 232323
1003    description Unknown
1003    Code    0
1003    GNumber 232323
1003    ICode   123
1004    description Unknown
1004    GNumber 232323
1004    ExtCode 4000

预期结果:

Number  description Code    GNumber DNumber ICode   ExtCode
1001    Unknown 0   232323  232323      
1002    Unknown     232323  232323      
1003    Unknown 0   232323      123 
1004    Unknown     232323          4000

谢谢

2 个答案:

答案 0 :(得分:2)

TDLR:手动创建表的列和行标题。然后使用内部的index()match()函数加载值。

方法: 假设“数字”文本在A1中,并且您的数据填写在A2:C15中。


  1. [创建表的列和行标题]

选择A2:A15>复制>然后粘贴到另一个空工作表/文件中>粘贴>然后选择“删除重复项”>复制结果>然后粘贴到单元格E2:E5中(与原始数据表相同)。

对B列执行相同操作,但需要转置。 :

选择B2:B15>复制>然后粘贴到另一个工作表/文件中>粘贴>然后选择“删除重复项”>复制结果>然后右键单击F1>粘贴特殊:转置。

现在您应该具有表格的列和行标题。


  1. [使用2条标准索引匹配项(引用link)+ iferror(如果未找到,则显示null)。 ]

将其放入F2,然后拖动到K5。

=IFERROR(INDEX($C$2:$C$15,MATCH(1,INDEX(($E2=$A$2:$A$15)*(F$1=$B$2:$B$15),0,1),0)),"")

完成。

p / s:要了解索引匹配的工作原理,只需要开始阅读index()match()的简单示例即可。这里的公式相同,但有其他技巧。

希望有帮助。 (:

答案 1 :(得分:0)

这可以通过两种方式完成。

具有标准配方:在这种情况下,您将使用标准公式,但要使其正常工作,您需要额外一列。

首先,您需要在数据的开头插入一个额外的列,以将NUMBER和NAME字段的值连接起来。在我的图片中,我使用了=B2&C2

enter image description here

然后,要获取数据,可以使用VLOOKUP来搜索串联的文本,如果找到,则将获取值。如果找不到任何内容,我们将其与IFERROR结合使用以显示""

=IFERROR(VLOOKUP($B19&C$18;$A$1:$D$15;4;FALSE);"")

这将起作用,如上图所示。

具有数组公式:这种方式更复杂,但是好处是您不需要添加额外的列。

我们在数组模式下将MATCH和INDEX结合起来以获得所需的值,如果找不到任何内容,我们将使用IFERROR来显示""

enter image description here

我使用的公式是:

=IFERROR(INDEX($C$2:$C$15;MATCH($B22&C$21;$A$2:$A$15&$B$2:$B$15;0));"")
  

注意::因为这是数组公式,所以必须使用 CTRL + SHIFT + ENTER 否则将无法正常工作!

如果您想查看公式及其工作方式,我已经将两个示例都上传到了Gdrive中。

https://drive.google.com/open?id=1ke7L5W1Ii8TffR7HTPtPxnAHVwyDYymy

希望这会有所帮助!。

相关问题