![将不同行中的数据移动到不同列中的一行中](https://linux22.com/image/1513421/%E5%B0%86%E4%B8%8D%E5%90%8C%E8%A1%8C%E4%B8%AD%E7%9A%84%E6%95%B0%E6%8D%AE%E7%A7%BB%E5%8A%A8%E5%88%B0%E4%B8%8D%E5%90%8C%E5%88%97%E4%B8%AD%E7%9A%84%E4%B8%80%E8%A1%8C%E4%B8%AD.png)
我有一个包含客户详细信息的 Excel 电子表格,其中设施名称、联系人姓名、地址和电子邮件位于不同的行中,但我需要将它们放在同一行的不同列中。
剪切和粘贴需要很长时间,如果我将=插入单元格,一旦我删除过时的行,内容就会明显显示出来
Evelyn Page Retirement Village
30 Ambassador Glade
Lynn Charlton
[email protected]
相比
Evelyn Page Retirement Village 30 Ambassador Glade Lynn Charlton [email protected]
答案1
如果您只有一组值(如您的问题中所述),那么正如 Christofer Weber 在评论中所述,您可以使用 Transpose 选项进行粘贴,按照 Christofer 链接的指南进行操作。
但是,如果您有多个以这种方式呈现的记录并想将它们转置到表中,则有点困难。例如,您有:
你想要的是:
您可以输入公式:
=INDEX($A:$A,ROW(A1)*4-4+COLUMN(A1))
拖到任意单元格中,然后根据需要将其拖到横向和纵向以填充新表格(在上面的示例中,将公式拖到右侧相邻的 3 个单元格,然后向下拖 2 行,以留下一个包含 4 列和 3 行的表格)。如果每条记录中的值数量不同,只需将4
公式中的 s 替换为每条记录的适当值数量即可。
您还可以使用一些 VBA 或使用 Excel 的第三方扩展来实现这一点,其中许多扩展提供了更简单的 GUI 驱动方法来实现相同的结果。我不想推荐任何特定的扩展,因为我自己没有用过它们。
答案2
找到了一个比上面更简单的解决方案。基本上,它可以使用 OFFSET 选项使 B1 列等于 A2,使 C1 等于 A3,依此类推。例如:
B1 将是=OFFSET(A1,1,0)
C1 将是=OFFSET(A1,2,0)
唯一的问题是,向下填充时会出现垃圾,所以这就是整个技巧。添加一条If
语句,如果列为空,则将单元格设置为空。所以:
B1 将是=IF(B1<>"",OFFSET(A1,1,0),"")
C1 将是=IF(C1<>"",OFFSET(A1,2,0),"")
等等。希望有帮助!