- ベストアンサー
vlookup関数とHlookup関数の組み合わせ
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.1です! 返答が遅くなってごめんなさい 計算結果がエラーの場合は「0」としたいわけですね? 数式がちゃんとあっているかどうか判りませんが =IF($A2="","",IF(ISERROR(INDEX($M$2:$U$5,MATCH($A2,$J$2:$J$5,0),MATCH(D$1,$M$1:$U$1,0))),0,INDEX($M$2:$U$5,MATCH($A2,$J$2:$J$5,0),MATCH(D$1,$M$1:$U$1,0)))) としてみてください。 結局前回の数式の結果がエラーの場合「0」を返す! という数式をIF関数をもう一つネストして ISERROR(・・・) と数式のIF関数の「真の場合」の式をはめ込んで、繰り返しているだけです。 以上、お役にたてば幸いです。m(__)m
その他の回答 (2)
- 135ok
- ベストアンサー率34% (26/75)
OFFSET関数で作成しました。 D2 =IF(A2="","",OFFSET($J$2,MATCH($A2,$J$3:$J$6,0),MATCH(D$1,$K$2:$M$2,0))) D10へは、D2をコピー A列、J列の値の変更と、D1、M2の表示の統合が必要かと。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! たぶん・・・ INDEX関数とMATCH関数の組み合わせで対応できると思いますが、 画像が小さいので文字がはっきり読み取れません。 こちらで勝手に↓のように表を作ってみました。 細かい部分は別として、INDEXとMATCH関数の使い方が理解いただければ良いのではないかと思います。 尚、各月の売上金額を表示させたいと言うことだと思いますが、 シリアル値で完全一致しないとエラーになりますので 左側の表の4・5・6・・・の月部分は2009/4/1 のように各月の1日として表示形式を ユーザー定義から m にしています。 そして、参照する表の各月部分も全てその月の1日にして、 表示形式を yyyy/m とします。 D2セルに =IF($A2="","",INDEX($M$2:$U$5,MATCH($A2,$J$2:$J$5,0),MATCH(D$1,$M$1:$U$1,0))) という数式を入れ、オートフィルで列方向と行方向にコピーすると 画像のような感じになります。 尚、MATCH関数を使用するに当たって、参照相手に同じ物があると上位の行(列)だけを参照してしまいますので、 もし利益等も表示させたいのであれば 「出力値」を別のものにする必要があります。 以上、参考になれば幸いですが、 的外れなら読み流してくださいね。m(__)m
補足
tom04さん、ご返答ありがとうございます。 結果が#N/Aとなる場合、該当のセルは0(ゼロ)となる様にしたいのですがどの様にすればよいのでしょうか?
お礼
上手くいきました。 ありがとうございます。