如何根据条件连接多个单元格中的值?

Typ*_*101 4 lookup excel excel-formula textjoin

我需要搜索一行单元格,并且对于包含特定值的每个单元格,从上面的单元格返回值.

例如,请考虑以下内容

+---+--------+--------+--------+--------+--------+----------+
|   |   A    |   B    |   C    |   D    |   E    |     F    |
+---+--------+--------+--------+--------+--------+----------+
| 1 |   UK   |   DE   |   FR   |   HK   |   TW   |          |
+---+--------+--------+--------+--------+--------+----------+
| 2 |   YES  |        |   YES  |   YES  |        |          |
+---+--------+--------+--------+--------+--------+----------+
| 3 |        |   YES  |        |   YES  |   YES  |          |
+---+--------+--------+--------+--------+--------+----------+
| 4 |   YES  |        |        |   YES  |        |          |
+---+--------+--------+--------+--------+--------+----------+
Run Code Online (Sandbox Code Playgroud)

所以我想在细胞F2,F3和F4中插入一个公式,这将给出以下结果

F2 = UK,FR,HK
F3 = DE,HK,TW
F4 = UK,HK
Run Code Online (Sandbox Code Playgroud)

可以这样做吗?

谢谢

小智 7

我找到了一个简单,可扩展的解决方案,它使用数组公式来连接满足特定条件的多个单元格.

应用于您的示例,粘贴到单元格F2:

=TEXTJOIN(",", TRUE, IF(B3:F3 = "YES", B$2:F$2, ""))
Run Code Online (Sandbox Code Playgroud)

然后点击ctrl + shift + enter作为数组公式输入,并复制单元格F3-F4.

其作用的原因留给读者练习.这很清楚,但我更喜欢"魔术".

我希望这可以帮助任何有类似问题的人.


Zee*_*qui 2

在 F2 中复制粘贴此公式:

=CONCATENATE(IF($A2="YES",A$1&",",),IF($B2="YES",B$1&",",),IF($C2="YES",C$1&",",),IF($D2="YES",D$1&",",),IF($E2="YES",E$1&",",))
Run Code Online (Sandbox Code Playgroud)

并向下拖动到该列。

解释:

IF($A2="YES",A$1&",",)
IF($B2="YES",B$1&",",)
IF($C2="YES",C$1&",",)
IF($D2="YES",D$1&",",)
IF($E2="YES",E$1&",",)
Run Code Online (Sandbox Code Playgroud)

上面的代码被重写了5次,并且列名也被改变了。它检查当前行中的单元格是否有“YES”。如果是,那么它将输入列的标题'A$1'。请注意,$1 是对第一行(即标题)的绝对引用。

最后我把这五个IF语句都用usingCONCATENATE语句封装了。

希望这可以帮助。