• ベストアンサー

excelのVLOOKUPで、照合後、値を表示

VLOOKUP関数を利用して、商品送付後の入金管理を行いたいと思っています。 送付済(シート1) A列:名前  B列:金額  C列:名前&金額  D列:送付日  E列:     F列: 入金済(シート2) A列:名前  B列:金額  C列:名前&金額  D列:回収日  E列:入金日   「名前と金額が検索値と一致したら、送付済(シート1)のE,F列に、回収日と入金日を表示させる」ようにしたいです。 VLOOKUP関数では、二つの値の照合は出来ないとの事でしたので、C列=名前&金額をいれて、C列での照合をしたいと思っています。 照合後に、回収日と入金日を表示させる関数が分かりません。 ※照合後に値が無い場合は、エラーでなく空白で表示させたいです。 よろしくお願いいたしますm(__)m

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.3

 IS関数(「IS~」と言う名称の関数)は =TRUE が無くとも、判定をする事が出来ますから、E2に =IF(ISNA(VLOOKUP($C3,Sheet2!$C:$E,2,0)),"",VLOOKUP($C3,Sheet2!$C:$E,2,0)) F2に =IF(ISNA(VLOOKUP($C2,Sheet2!$C:$E,3,0)),"",VLOOKUP($C2,Sheet2!$C:$E,3,0)) と入力してた後、E2とF2を表の最下部までコピーされると良いと思います。  又は、IS関数を使わずに、E2に =IF(COUNTIF(Sheet2!$C:$E,$C3)>0,VLOOKUP($C3,Sheet2!$C:$E,2,0),"") F2に =IF(COUNTIF(Sheet2!$C:$E,$C3)>0,VLOOKUP($C3,Sheet2!$C:$E,3,0),"") でも良いと思います。  更に、名前と金額が検索値と一致したら、必ずF2に数値が表示されるのですから、F2に入力する数式はそのままとして、E2に入力する数式を =IF(ISNUMBER(F2),VLOOKUP($C3,Sheet2!$C:$E,2,0),"") と変えても良いと思います。

yuki696
質問者

お礼

エクセルってすごいですね。 幾通りも関数があるのがびっくりしました(゜o゜) なじみのある、IF(COUNTIF~ を利用しましたm(__)m ありがとうございましたm(__)m

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 外していたらごめんなさい。 ↓の画像のような感じになっているのでしょうか? そして、Sheet1のC列がSheet2のC列の中にあれば、そのD・E列を表示すれば良い! という解釈での方法です。 Sheet1のE2セルに =IF(COUNTIF(Sheet2!$C$2:$C$1000,$C2),VLOOKUP($C2,Sheet2!$C$2:$E$1000,COLUMN(B1),0),"") という数式を入れ、オートフィルで列方向と行方向にコピーすると 画像のような感じになります。 尚、数式は1000行目まで対応できるようにしていますが、 データ量によって範囲指定の領域はアレンジしてみてください。 以上、参考になれば良いのですが、 的外れなら読み流してくださいね。m(__)m

yuki696
質問者

お礼

大変分かりやすかったです! 表までつけていただいてありがとうございましたm(__)m

  • silverfd
  • ベストアンサー率57% (204/356)
回答No.1

この方式は商売レベルの実用に耐えないと思いますよ。まず、同じ名前と金額の組合せが2回目に出現しても、それは永遠に照合されず、先に照合でヒットしたデータが表示されます。そもそも、何で同じシートの別列でなく、別シートにするのでしょうか? それはさておき、単に質問に回答するならこうすれば可能です。 E2に「=IF(ISERROR(VLOOKUP($C3,Sheet2!$C:$E,2,0))=TRUE,"",VLOOKUP($C3,Sheet2!$C:$E,2,0))」 F2に「=IF(ISERROR(VLOOKUP($C2,Sheet2!$C:$E,3,0))=TRUE,"",VLOOKUP($C2,Sheet2!$C:$E,3,0))」 これを表の最下部までコピー。 これで、組合せがあって空欄の場合は0が表示され、組合せ自体が無い場合は空欄で表示されます。

yuki696
質問者

補足

大変分かりにくい説明ですみません。。 補足いたしますm(__)m >同じ名前と金額の組合せが2回目に出現しても 名前というのは、数字での表示で送付する時に発行する番号です。 送付番号になりますので、2回出現するという事は絶対にありません。 >何で同じシートの別列でなく、別シートにするのでしょうか? こちらですが、送付明細(送付時)と、入金明細(入金時)を、csvで出力します。 ですので、別シートです。 分かりにくくて申し訳ありません。 よろしくお願いしますm(__)m

関連するQ&A