如何根据条件连接多个单元格中的值?
我需要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。
这个作品之所以被作为练习留给读者。 这很清楚,但我更喜欢“魔术”。
我希望这可以帮助任何有类似问题的人。