Excel に 2 つの異なるタブがあります。Tab1 には 3 つの列 (ID1、ID2、値) があります。Tab2 には 2 つの列 (ID1、ID2) があり、両方のタブで ID1 と ID2 が一致する場合に Tab1 の「値」を Tab2 の 3 番目の列に転送する関数を作成しようとしています。VLOOKUP と INDEX (他の STACKS Overflow の質問/回答を参考に) を通じて関数を作成しようとしましたが、この問題を理解するのに苦労しています。アドバイスをいただければ幸いです。
答え1
SUMIFS() を使用する
=SUMIFS(Tab1!C:C,Tab1!A:A,A2,Tab1!B:B,B2)
この StackOverflow の回答を参照してください:
https://stackoverflow.com/questions/42492758/vlookup-using-2-columns-to-reference-another
答え2
2 番目のタブでは、MATCH を使用して、TAB1 の ID1 と ID2 に一致する行を検索します。行が同じ場合は、INDEX を使用して値を取得します。以下ではこれをすべて 1 つの数式で実行しましたが、MATCH と INDEX を初めて使用する場合は、数式の一部を別の列に配置して、理解を深めることをお勧めします。
ID1 と ID2 が一致しない場合にタブ 2 の値を何にするか指定していないため、「一致なし」にしました。(代わりに空白またはゼロを使用することもできます。)
以下は、値が必要なタブ 2 の列の数式です。両方のタブで、ID1 は列 A にあり、ID2 は列 B にあると想定しています。
Tab2 の行 2 では、次の数式を使用できます。
列C:Match($A2,'Tab1'!$A:$A,0)
列D:Match($b2,'Tab1'!$B:$B,0)
列E:IF($C2=$D2,INDEX('Tab1'!$C:$C,$C2),"no match")
もちろん、必要に応じて、これを 1 つの if ステートメントに組み合わせることもできます。どちらの ID にも一致しない場合は、#N/A エラーが発生します。列 E の戻り値の周囲に ISNA を使用することで、これを回避できます。