2016-09-23 3 views
1

私はこのExcelファイルを持っています。 レイアウトは次のようである:Excelで複数の値を返す

[シート1]

No | Alphabet | Fruit 
1 | ABC | 
2 | DEF | 
3 | GHI | 

[シート2]

Alphabet | Fruit 
ABC | apple 
ABC | pear 
DEF | vegetable 

Iがシート1の '果実' カラム(複数可)に記入したいです。

=INDEX(list!$A:$B,MATCH($B2,list!$A:$A,0),2) 

残念ながら、これはこれだけのように、私に各アルファベットの最初の試合を与える:

[シート1を

私が現在持っていることは(私はC2に入れ、下にドラッグする)これがあります]私は何をしたいのは、このように、フルーツの下にすべての一致を返すと「NIL」から「野菜」と「#1 N/A」を置換する(シート1に)

No | Alphabet | Fruit 
1 | ABC | apple 
2 | DEF | vegetable 
3 | GHI | #N/A 

です:

[Sheet1の]

No | Alphabet | Fruit 
1 | ABC | apple | pear 
2 | DEF | NIL 
3 | GHI | NIL 
+0

DEFに野菜と果物の両方が含まれているとどうなりますか?もう一方を返すとNIL?それともこれは決して起こりませんか? –

+0

このような場合は、果物のみを返却してください。それは起こりますが、あなたがそれを言及するまで、私はそのシナリオを完全に忘れていました。 – qnxyy

答えて

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

+0

動作させることができません。私はおそらくあなたのSheet1が最初の行と列がないため気づいた。私は数式の文字を編集しようとしましたが、まだエラーが発生しています。 – qnxyy

+0

また、完全なデータが数千であるため、数式でテーブルの代わりに列全体が選択されるようにすることもできます。 – qnxyy

+0

あなたのデータが何千もある場合は、VBaが必要です。その数量でのこれらの配列の数式は優れているでしょう。動作していない場合、編集モードを終了するときにCtrl-Shift-Enterを使用しなかったと思います。配列式では、完全な列参照を使用しないでください。 –