匹配并连接公式?

问题描述 投票:-2回答:2

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

在此先感谢您的帮助!

excel excel-formula
2个回答
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
投票

或者这个常规输入公式:

=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

© www.soinside.com 2019 - 2024. All rights reserved.