我有这个Excel文件。 布局是这样的:
[表Sheet 1]
No | Alphabet | Fruit
1 | ABC |
2 | DEF |
3 | GHI |
[Sheet 2中]
Alphabet | Fruit
ABC | apple
ABC | pear
DEF | vegetable
我想填写水果' Sheet1中的列。
我目前拥有的是(我放入C2并向下拖动):
=INDEX(list!$A:$B,MATCH($B2,list!$A:$A,0),2)
不幸的是,这只给了我每个字母表的第一个匹配,如下所示:
[表Sheet 1]
No | Alphabet | Fruit
1 | ABC | apple
2 | DEF | vegetable
3 | GHI | #N/A
我想要做的是(在Sheet1中)返回Fruit下的所有匹配并替换' vegetable'和#N / A'到' NIL',像这样:
[表Sheet 1]
No | Alphabet | Fruit
1 | ABC | apple | pear
2 | DEF | NIL
3 | GHI | NIL
答案 0 :(得分:0)
以下数组公式将根据您的需要进行操作:
=IFERROR(INDEX(Sheet2!$B$2:$B$4,MATCH(1,(Sheet2!$B$2:$B$4<>"Vegetable")*(Sheet2!$A$2:$A$4=$A1)*(COUNTIFS($A1:A1,Sheet2!$B$2:$B$4)=0),0)),"")
它将返回一个空字符串而不是NIL
作为数组公式,需要使用Ctrl-Shift-Enter确认,而不是在退出编辑模式时输入。如果操作正确,那么Excel会将{}
放在公式周围。
我选择""
代替"NIL"
的原因是这个公式被设计为反复使用药物/复制。它将填充每个单元格NIL
,其中公式不是水果。