我有一个 Excel 文档,包含六列和 57,000 行。每条记录包含四行,也就是说,每组四行都放在一起。我该如何按一个字段对这些数据进行排序,同时又能将四行数据块放在一起?
如果您需要更多信息,请告诉我,这很耗时。我会继续在 Google 上搜索宏和其他方法来转置这么多数据,但我想我可能没有选择了。
糟糕的例子:
Row1 Row2 Row3 Row4 Row5 Row6 Row7 Row8
A Date 1/1/2011 Status: Active Other Data Data
B Time 2:00 Data3 5546 Date2
C Name John Doe Time 3:45
D Data A456 Notes: none
E Data2 G4561
F Date 1/1/2011 Status: Active Other Data Data
G Time 2:00 Data3 5546 Date2
H Name John Doe Time 3:45
I Data A456 Notes: none
J Data2 G4561
K Date 1/1/2011 Status: Active Other Data Data
L Time 2:00 Data3 5546 Date2
M Name John Doe Time 3:45
N Data A456 Notes: none
O Data2 G4561
P Date 1/1/2011 Status: Active Other Data Data
Q Time 2:00 Data3 5546 Date2
R Name John Doe Time 3:45
S Data A456 Notes: none
T Data2 G4561
答案1
我的建议是在尝试对数据进行排序之前先清理数据。不幸的是,Excel 并不是清理数据的最佳工具。如果您有一个不错的文本编辑器,具有正则表达式查找和替换功能(例如 Notepad++),我会执行以下操作:
- 从 Excel 复制整个表格并将其粘贴到文本编辑器中。
如果您的数据与样本数据类似(5 行块,而不是 4 行,并且每条记录以 开头
Date
),则可以搜索模式(Date\t.*)\r\n(.*)\r\n(.*)\r\n(.*)\r\n(.*)
并全部替换为
\1\t\2\t\3\t\4\t\5
这应该会将每条记录放在一行上,并使用制表符分隔字段。如果这没有返回您期望的结果,请检查您的数据,查看模式匹配失败的位置,并相应地调整您的模式。
最后,从文本编辑器复制所有文本并粘贴回 Excel(可能在新工作表上)。所有内容都应在正确的列中对齐,以便您可以像平常一样进行排序。(如果所有内容未正确对齐,请重新开始并相应地修正您的搜索模式。)