我正在尝试将行转置为列,我尝试使用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
谢谢
答案 0 :(得分:2)
TDLR:手动创建表的列和行标题。然后使用内部的index()match()函数加载值。
方法: 假设“数字”文本在A1中,并且您的数据填写在A2:C15中。
选择A2:A15>复制>然后粘贴到另一个空工作表/文件中>粘贴>然后选择“删除重复项”>复制结果>然后粘贴到单元格E2:E5中(与原始数据表相同)。
对B列执行相同操作,但需要转置。 :
选择B2:B15>复制>然后粘贴到另一个工作表/文件中>粘贴>然后选择“删除重复项”>复制结果>然后右键单击F1>粘贴特殊:转置。
现在您应该具有表格的列和行标题。
将其放入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
:
然后,要获取数据,可以使用VLOOKUP来搜索串联的文本,如果找到,则将获取值。如果找不到任何内容,我们将其与IFERROR结合使用以显示""
。
=IFERROR(VLOOKUP($B19&C$18;$A$1:$D$15;4;FALSE);"")
这将起作用,如上图所示。
具有数组公式:这种方式更复杂,但是好处是您不需要添加额外的列。
我们在数组模式下将MATCH和INDEX结合起来以获得所需的值,如果找不到任何内容,我们将使用IFERROR来显示""
:
我使用的公式是:
=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
希望这会有所帮助!。