匹配并连接公式?

时间:2018-01-18 13:42:14

标签: excel excel-formula

我有两个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

提前感谢您的帮助!

2 个答案:

答案 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中有这个公式并被拖下来。

enter image description here

如果您插入包含新数据的行,此公式也适用。见下文。

enter image description here

答案 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))),"")

放入第一个单元格并复制下来。

enter image description here

处理不断放大的数据使用此:

=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))),"")

enter image description here