将不同行中的数据移动到不同列中的一行中

将不同行中的数据移动到不同列中的一行中

我有一个包含客户详细信息的 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),"")

等等。希望有帮助!

相关内容