多个IF语句Excel 2007
我有一个vector,它有不同的值。 在它旁边的向量中,我想使用multiple = IF(FIND(IF(FIND(),IF(FIND(),…..语句)。
以下是我的数据示例,以及我希望旁边的单元格出现的示例:
COMPLAINT | DESCRIPTION <-- How I would like it to come out CHF | CHF COPD (Nos) | COPD Chest, Pain, Acute | CHEST PAIN CP | CHEST PAIN ... | ...
我为此写了如下,这是行不通的:
=IF(FIND("CHF",E3,1),"CHF",IF(FIND("COPD",E3,1),"CHF",0))
我需要扩大以上接受至less5个不同的论点。 我尝试在这里使用这个post,但我没有按照正确的方式。
编辑
我期望这个函数能够像这样工作:
IF FIND "CHF" THEN "CHF" ELSE IF FIND "COPD" THEN "COPD" ELSE IF FIND "CP" THEN "CHEST PAIN" ...
谢谢,
我认为如果你有某种“词典”来查找价值,那就更好了。
例如,有一个表与以下某处:
CHF CHF COPD COPD CP CHEST PAIN Chest Pain CHEST PAIN
假设那些在G2:H5
范围内,并且CHF
在A2
单元格开始。
第一步是尝试将CHF
, COPD
, CP
和Chest Pain
匹配到单元格A2
。 您可以对此使用SEARCH
( FIND
是等效的但区分大小写)。
=SEARCH($G$2:$G$5,A2)
如果有匹配,这会给你错误和数字。 要处理您的第三个示例,您可以先使用SUBSTITUTE
删除逗号:
=SEARCH($G$2:$G$5,SUBSTITUTE(A2,",",""))
对于CHF
,你会得到
1,#VALUE!,#VALUE!,#VALUE!
使用IFERROR()
可以使结果更漂亮一些。 您可以从中获得索引1
,使用MATCH
从查找表的第二个表中获取CHF:
=MATCH(1,SEARCH($G$2:$G$5,SUBSTITUTE(A2,",","")),0)
并使用INDEX
从查找表中取回单元格的值…
=INDEX($H$2:$H$5,MATCH(1,SEARCH($G$2:$G$5,SUBSTITUTE(A2,",","")),0))
您还可以更改查找表的大小以适应查找的任意数量的值。 唯一的缺点是它会牺牲性能,但是如果Excel有更多的值需要检查,那就很自然了。
现在,由于SEARCH
(取多个值而不是单个值),这个公式是一个数组公式。 因此,不必按Enter键 ,而必须按住Ctrl + Shift键 ,然后按Enter才能正常工作。