- ベストアンサー
VLOOKUPの検索値の集計方法
- VLOOKUPを使って複数シートのデータを検索表示し、その値を縦集計する方法について教えてください。
- 検索値が文字列のため集計ができない場合、VLOOKUPの式に文字列を数値に変換する方法を組み込むことができます。
- 現在、sheet1(B2~B50)に特定の式を入れていますが、この式を使って集計することはできません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
COUNTIFの範囲が間違ってます。 それから今の式は,目的の検索値がシート2とシート3の「どちらか一方にあるだけか,もしかすると両方共に無い」(つまりシート2と3の両方に存在することはない)という前提になっています。 その前提が正しいなら,今の数式を B2: =IF(COUNTIF(Sheet2!A$2:A$50,A2),VLOOKUP(A2,Sheet2!A$2:B$50,2,FALSE)) + IF(COUNTIF(Sheet3!A$2:A$50,A2),VLOOKUP(A2,Sheet3!A$2:B$50,2,FALSE)) に変更してB50までコピーし,B1には =SUM(B2:B50) とします。 参考: Excel2007以降を利用しているなら =IFERROR(VLOOKUP(A2,Sheet2!A$2:B$50,2,FALSE),0)+IFERROR(VLOOKUP(A2,Sheet3!A$2:B$50,2,FALSE),0) のようにすることもできます。
その他の回答 (2)
- KURUMITO
- ベストアンサー率42% (1835/4283)
COUNTIF関数の使い方とそれが0の時に""とするのは間違っています。""ではなく0にします。また、シート3にもデータがあるのを加算するのでしたら&の使用は適当ではありませんね。次のような式に変更して使うことで良いでしょう。 =IF(COUNTIF(sheet2!$A$2:$A$50,sheet1!$A2),VLOOKUP(sheet1!$A2,sheet2!$A$2:$E$50,2,FALSE)*1,0)+IF(COUNTIF(sheet3!$A$2:$A$50,sheet1!$A2),VLOOKUP(sheet1!$A2,sheet3!$A$2:$E$50,2,FALSE)*1,0)
お礼
指摘されて分かりました、0の時に""としてしまうのは、文字列になってしまうということですね。 基本的なところの指摘、本当にありがとうございました。
- maron--5
- ベストアンサー率36% (321/877)
◆VLOOKUP関数以外ではだめなのでしょうか =SUMIF(Sheet2!A2:A50,A2,Sheet2!B2:B50)+SUMIF(Sheet3!A2:A50,A2,Sheet3!B2:B50)
お礼
なるほどSUMIFを使うこともできるのですね。 検索=VLOOKUP というふうに凝り固まっていました。 違う表でアドバイスしていただいた表を応用させていただきましたら、問題なくできました。 ありがとうございます。
お礼
アドバイスしていただいた式で、すんなり出来ました。ありがとうございます。 検索値で「0」を表示したくなくて、""を式に組み込んでしまいまいしたが、それが式を間違えるという、基本的なミスをしてしまったのかもしれません。 書式設定で 「0;-0;」に設定して、すっきりした表が出来上がりました。 本当にありがとうございました。 皆さん、お力添え本当にありがとうございました。