![如何在 Excel 中使用 IF 函数根据多个条件选择多个字符串](https://linux22.com/image/1581283/%E5%A6%82%E4%BD%95%E5%9C%A8%20Excel%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20IF%20%E5%87%BD%E6%95%B0%E6%A0%B9%E6%8D%AE%E5%A4%9A%E4%B8%AA%E6%9D%A1%E4%BB%B6%E9%80%89%E6%8B%A9%E5%A4%9A%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
为了方便起见,请先看下面的图片
我正在尝试让Which Event?
(H2 单元格) 下的单元格说出他们被邀请参加哪些活动。
- 假设此人仅被邀请山治,婚礼和接待,那么我希望公式只显示Sanji,婚礼和招待会(在 H2 单元上)仅当值 >=1 时
- 如果值为 0韦斯瓦尔和山治但 >=1婚礼和接待,那么我希望它只显示婚礼与招待会
- 如果值为 0韦斯瓦尔,山治,接待但它> = 1婚礼,那么我希望它显示仅限婚礼。
我希望我说得有道理?
我尝试使用以下公式:
=IF((AND(D2>0,E2>0,F2>0,G2>0)),*All*,*Sanji, Wedding & Reception*)
如果我把 1 放在韦斯瓦尔,山治,婚礼,接待,单元格 H2 将变为所有活动。但如果值为 0韦斯瓦尔,山治,接待但它> = 1婚礼,那么它就不起作用。
我真的希望我说的有道理并且你能帮助我?
答案1
另一种方法是将列表转换为二进制并用来VLOOKUP
查找事件
=VLOOKUP((B2 > 0)*8 + (C2 > 0)*4 +(D2 > 0)*2 + (E2 > 0)*1, $H$2:$I$17, 2, FALSE)
该cell > 0
部分产生一个布尔值,该值将在算术表达式中转换为 0 或 1。从左到右的列代表从最高到最低有效位的数字
查找表可以存储在任何地方,在远处的某些列/行中或在另一张表中,然后您也可以隐藏该表/行/列
以下是上述内容的查找表
数字 | 活动 |
---|---|
0 | 没有任何 |
1 | 接待 |
2 | 婚礼 |
3 | 婚礼、招待会 |
4 | 山治 |
5 | 山治,接待处 |
6 | 山治、婚礼 |
7 | 山治,婚礼,招待会 |
8 | 韦斯瓦尔 |
9 | Vesvaar,前台 |
10 | Vesvaar,婚礼 |
11 | Vesvaar、婚礼、招待会 |
12 | 维斯瓦尔、山治 |
十三 | 维斯瓦尔、山治、接待处 |
14 | 维斯瓦尔、山治、婚礼 |
15 | 全部 |
答案2
如果您有 Office 365 Excel,则可以使用 TEXTJOIN 作为数组公式:
=IF(COUNTIF(D2:G2,">0")=4,"All",TEXTJOIN(",",TRUE,IF(D2:G2>0,$D$1:$G$1,"")))
退出编辑模式时必须使用 Ctrl-Shift-Enter 而不是 Enter 来确认。
如果没有,那么您将需要自己连接字符串:
=IF(COUNTIF(D2:G2,">0")=4,"All",MID(IF(D2>0,","&$D$1,"")&IF(E2>0,","&$E$1,"")&IF(F2>0,","&$F$1,"")&IF(G2>0,","&$G$1,""),2,200))