2017-02-20 14 views
0

1つのシートに1列のデータがあり、各セルには別のシートの配列にある値が含まれています。私は、シート1の列からシート2の配列の値を見つけたら、一番左の列の値を返します。インデックスとマッチを使用して縦方向と横方向の両方で参照を実行する

ここではデータの例です: '2188622' はシート2に発見された場合に

シート1

| AH2377507 | 
| 2188622 | 
| EA404278 | 
| AH885430 | 

シート2

aaa | 1874379 | AH2377507 | EA2377507 | PS2377507 | 67004276 | 949529 | AH2065634 
bbb | 1938614 | 2186486 | 2188622 | 2188708 
ccc | 919973 | AH404278 | EA404278 | PS404278 | 2188746 
ddd | 960929 | AH885430 | EA885430 | PS885430 

だから、それが返されます'bbb'。

また、シート2のデータを含む列の数は行ごとに異なるため、配列に空白のセルがあります(問題がある場合)。

私はhlookupとvise-versaでvlookpを入れ子にしてみましたが、インデックス/マッチでhlookupを入れ子にしましたが、これらのアイデアはどちらもうまくいきませんでした。

答えて

1

あなたの次の使用例は、シート1データを仮定すると、ちょうどINDEX/MATCH

=INDEX(Sheet2!$A$1:$A$4,SUMPRODUCT((Sheet2!$B$1:$F$4=Sheet1!$A1)*ROW(Sheet2!$A$1:$A$4))) 

よりも少しが必要になりますがA1:A4であり、あなたのSheet2のデータはA1:F4です。

最後のROW(Sheet2!$A$1:$A$4)は、あなたのデータとは関係ありません。範囲は常にA1で始まり、10のレコードがのシート2にある場合は、たとえば、A10で終了する必要があります。


詳細情報 ...

あなたのルックアップ値は、2次元配列ではなく、単一の行/ columから来ているので、あなたはMATCHを使用することはできません。 SUMPRODUCTの出番ようですが、我々は試合をシミュレートする必要があります。あなたはA1:B2

a a 
a b 

で次の配列を持っていた場合私たちは、論理演算A1:B2="b"を行うことができます。これは、私たちがROW(A1:A2)掛ける場合TRUE=1FALSE=0は、その配列が

0*1 0*1 = 0 0 
0*2 1*2 = 0 2 

ですから、この配列のSUMが正確に位置され2で見ることができなったことを思い出し、この

FALSE FALSE 
FALSE TRUE 

のような配列を作成します我々は探しています(それはMATCHが返すであろうものです)

私たちはそれをすべてSUMPRODUCTに包みますKEこの

=SUMPRODUCT((A1:B2="b")*ROW(A1:A2)) 

そして、あなたはあなたの答え持って

+1

でしたあなたの 'ROW(Sheet1の$ A $ 1:$ A $ 4)' 'ROWこと(Sheet2の$ A $ 1:$ A $ 4)' ? - それは、 '$ A $ 4 'が' Sheet2'の項目の数にリンクされるべきであることをより明白にします。そして、 '... = Sheet1!$ A $ 1'は '... = Sheet1!$ A1'なので、数式は他の行にコピーできますか? – YowE3K

+0

私はそれについて考える必要があったが、ええ、私は同意する。ありがとうございました! – CallumDA

+0

元のコメントを読んだ後で、私が返事をする前に誰かが仕事の質問で私を中断しました - 私は彼らがしたことをうれしく思います - それは私が説明を考える必要はないことを意味しました:D – YowE3K

関連する問題