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

我需要search一行单元格,并为每个包含特定值的单元格返回上面的单元格中的值。

例如,考虑以下内容

+---+--------+--------+--------+--------+--------+----------+ | | A | B | C | D | E | F | +---+--------+--------+--------+--------+--------+----------+ | 1 | UK | DE | FR | HK | TW | | +---+--------+--------+--------+--------+--------+----------+ | 2 | YES | | YES | YES | | | +---+--------+--------+--------+--------+--------+----------+ | 3 | | YES | | YES | YES | | +---+--------+--------+--------+--------+--------+----------+ | 4 | YES | | | YES | | | +---+--------+--------+--------+--------+--------+----------+ 

所以我想插入一个公式到单元格F2,F3和F4这将给出以下结果

 F2 = UK,FR,HK F3 = DE,HK,TW F4 = UK,HK 

可以这样做吗?

谢谢

在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&",",)) 

并向下拖动列。

说明:

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

上面的代码已被重写5次,列名已被更改。 它检查当前行中的单元格是否具有“是”。 如果是,那么它将进入'A$1'列的标题。 注意$ 1是对第一行即页眉的绝对引用。

最后,我用CONCATENATE语句封装了所有五个IF语句。

希望这可以帮助。

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

应用到你的例子,粘贴到单元格F2:

 =TEXTJOIN(",", TRUE, IF(B3:F3 = "YES", B$2:F$2, "")) 

并按Ctrl + Shift + Enter键input数组公式 ,并复制单元格F3 – F4。

这个作品之所以被作为练习留给读者。 这很清楚,但我更喜欢“魔术”。

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