我有一张带有两列A和B列的Excel工作表。示例数据如下:
ColA ColB
Name Elmo
Address1 125 Sesame Street
Address2 Disney land, Fl 85381
Name Elsa
Address1 35 Frozen island
Address2 Disney land, Fl 85381
Address3 USA
等等有很多记录。我想使用索引公式将此信息转置为:
Name Address1 Address2 Address3
Elmo 125 Sesame Street Disneyland, Fl 85381
Elsa 35 Frozen island Disneyland, Fl 85381 USA
使用excel' copy
和paste-special
,transpose
会因为有很多记录而耗费时间。我已列出标题,并使用D2=INDEX($B$1:$B$927,1)
作为值。我想使用填充手柄将其水平拖动并使行号从1增加到2到3等。
感谢您的建议。
答案 0 :(得分:2)
假设您的结果表具有Name,Address1,Address2作为标题,您可以在每个表中使用行号。
名称下的单元格可以使用以下公式:=INDEX($B$2:$B$17,ROW()*3-5)
Add1下的单元格可以使用以下公式:=INDEX($B$2:$B$17,ROW()*3-4)
Add2下的单元格可以使用以下公式:=INDEX($B$2:$B$17,ROW()*3-3)
(粘贴在图片中的H,I,J列中的值仅用于说明目的。)
答案 1 :(得分:1)
答案 2 :(得分:0)
这是一个不同的答案,因为:所述问题的要求与之前的答案不同。
首先,您需要添加“名称计数器” - 这可以识别数据中存在多少个唯一身份用户。我在数据左侧添加了A列。 A2中的第1个值为1。在A3中,公式为=IF(B3="Name",A2+1,A2)
。这样您就可以一直向下拖动到数据的末尾。 (见截图)
在结果表中,您必须同样添加一个名称计数器列,该列从1开始到唯一名称条目的no。这是我的样本表中的E列(见截图)
在结果表中输入左上角最多单元格的公式(在我的示例中,这是单元格F2)是
{=INDEX($C$2:$C$25,MATCH($E2&F$1,$A$2:$A$25&$B$2:$B$25,0))}
。
由于这是一个数组公式,请仅输入=INDEX($C$2:$C$25,MATCH($E2&F$1,$A$2:$A$25&$B$2:$B$25,0))
在您的单元格中对应于我的F2,然后点击Ctrl
+ Shit
+ Enter
输入公式。 Excel将自动在其周围放置大括号,并将其标识为数组计算。
您可以将此公式粘贴到剩余的单元格中。 (因为它是一个将公式粘贴在自身上的数组公式不起作用,所以只将它粘贴在空单元格中。)