我有一张 Excel 表(mac,Excel 2011),其中包含姓名(第一行)、职位(第二行)和公司/机构(第三行)在一列中。我想将它们分成三个不同的列。我试过了我能找到的所有宏。请帮忙。
因此,不要像现在这样阅读:
Joe Joe
SomeJob
MyCompany
它会读
JoeJoe | SomeJob | MyCompany
答案1
尝试类似这样的方法。但重要的是 3 系列保持不变,这样 tyhis 才能正常工作。
Sub SingleRow()
Range("A2").Select
Do
Selection.Cut
ActiveCell.Offset(-1, 1).Select
ActiveSheet.Paste
ActiveCell.Offset(1, -1).Select
ActiveCell.EntireRow.Select
ActiveCell.EntireRow.Delete
ActiveCell.Cut
ActiveCell.Offset(-1, 2).Select
ActiveSheet.Paste
ActiveCell.Offset(1, -2).Select
ActiveCell.EntireRow.Select
ActiveCell.EntireRow.Delete
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Value = "" And ActiveCell.Offset(-1, 0).Value = ""
End Sub
我测试过了并且这应该可以解决问题。
答案2
@Tim Williams 的解决方案很优雅,但一个简单的解决方案是添加一个重复 1、2 和 3 的列。还要复制数据列两次。从第一个副本的顶部删除一个单元格,从第二个副本的顶部删除两个单元格。然后过滤带有数字的列,取消选择 1 并删除可见的内容。(也可以删除数字列。)
更详细地解释如下问题 SU495953。
答案3
我发现这个解决方案是最简单的:
https://www.extendoffice.com/documents/excel/3360-excel-transpose-every-5-rows.html
确保单个数据列位于 A 列,从 A1 开始
在附近的新单元格中插入此公式:
=INDEX($A:$A,ROW(A1)*5-5+COLUMN(A1))
只需更改两次出现的“5”数字,使其与组集的大小相匹配即可。(在本例中为 3)
将公式拖到右侧,以匹配组集的大小。(在本例中,拖到 3 列)
将公式向下拖动,直到数据停止显示(您将得到“0”)
答案4
那么“菜单数据 - >列中的文本”呢?它用一个分隔符将它们全部分开,您可以在对话框中交互选择,例如空格