我有两个excel专栏。我需要比较匹配的两列(A& B)并在分隔符后追加所有内容,如下所示:
Column A
123456;cc01
654321;cc02
333333;cc03
444444;cc04
555555;cc05
Column B
111111
222222
333333
444444
555555
由于此示例中有三个匹配项,因此输出应为以下内容:
Column C
333333;cc03
444444;cc04
555555;cc05
提前感谢您的帮助!
答案 0 :(得分:1)
尝试使用此数组公式(为了便于阅读而添加换行符):
= IFERROR(INDEX($A:$A,SMALL(IF(($B$2:$B$6-LEFT($A$2:$A$6,FIND(";",$A$2:$A$6)-1))=0,
ROW($A$2:$A$6)),ROW($A2)-MIN(ROW($A$2:$A$6))+1)),"")
请注意,这是一个数组公式,因此您必须按 Ctrl + Shift + Enter 而不是 Enter 输入公式后。
见下面的工作示例。我在单元格C2
中有这个公式并被拖下来。
如果您插入包含新数据的行,此公式也适用。见下文。
答案 1 :(得分:1)
或者这个常规输入公式:
=IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW($A$1:$A$6)/(ISNUMBER(MATCH(--LEFT($A$1:$A$6,FIND(";",$A$1:$A$6 & ";")-1),B:B,0))),ROW(1:1))),"")
放入第一个单元格并复制下来。
处理不断放大的数据使用此:
=IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW($A$1:INDEX(A:A,MATCH("zzz",A:A)))/(ISNUMBER(MATCH(--LEFT($A$1:INDEX(A:A,MATCH("zzz",A:A)),
FIND(";",$A$1:INDEX(A:A,MATCH("zzz",A:A)) & ";")-1),B:B,0))),ROW(1:1))),"")