我拥有的内容:两列文本数据,仅包含不同的(无重复)项目。
我想要的是:第二列排序使得相应的项目在同一行中对齐。如果第一列包含第二列中没有匹配项的项,则该行在第二列中保留为空。如果第二列包含第一列中没有匹配项的项,则所有这些项都附加在第一列的最后一行下面。虽然不是必需的,但可以假设第一列按字母顺序排序。
Example Before After Col1 Col2 Col1 Col2 A Q A A B E B B C B C D W D E A E E Q W
这个小例子很容易通过眼球来做,但我的数据可能包含几百到两千件物品。
提前致谢。
答案 0 :(得分:2)
没有实际的方法可以在一步中使用完全符合您需要的公式来完成此操作。
你可以做到这一点,但它会被混淆INDEX
/ ROW
这些东西,它是不可读的。
你能将它分成多个步骤,还是在excel之后进行转换?取决于您的上下文,不同
解决方案将比其他解决方案更实用。
假设你的表格如下:
A B
--- ---
A Q
B E
C B
D W
E A
我可以在3个添加的列中执行此操作:
C2
)="0"&IFERROR(VLOOKUP(A2,$B:$B,1,FALSE),"")
查找匹配值和要跳过的行。D2
)=IF(ISNA(VLOOKUP(B2,$A:$A,1,FALSE)),"1"&B2,"")
C
列D
列E2
列=IF(ROW(E2)<=COUNTA(C:C),C2,INDEX(D:D,ROW(E2)-COUNTA(C:C)+1))
列 A B C D E
--- --- --- --- ---
A Q 0A 1Q 0A
B E 0B 0B
C B 0 0
D W 0 1W 0
E A 0E 0E
1Q
1W
0
。请注意,+1是因为我假设有一个列标题。这导致:
1
现在,您可以在某处复制/粘贴文本列E,对其进行排序,并删除第一个字符。添加{{1}}和{{1}}允许以这种方式对列E进行排序。如果你不这样做 这样做,你将无法区分“删除空白”和理想的空白行。
这要做很多步骤;如果你需要自动化更多,你可以考虑编写一个宏。