在Excel中返回多个值

时间:2016-09-23 11:40:37

标签: excel-formula

我有这个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

1 个答案:

答案 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,其中公式不是水果。

enter image description here