- ベストアンサー
Excel、関数に付いての質問です。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
IF(B4=1,VLOOKUP(A4,$H$4:$I$8,2,0),"") を IF(B4=1,VLOOKUP(A4,$H$4:$K$8,D4+1,0),"") に変えてみてください。
その他の回答 (5)
- tom04
- ベストアンサー率49% (2537/5117)
No.2です! 前回は大きく外したようでごめんなさい。 オプションの列は「1」か「空白」のどちらかですよね? 憶測ですが、「★」の場合の数式や、「1」以外の場合などが必要になるのではないかと思いますけど、 もしかして、↓の数式のようなことですかね? F4セルに =IF(COUNTBLANK(A4:B4),"",INDEX($I$5:$K$8,MATCH(A4,$H$5:$H$8,0),D4)) としてオートフィルで下へコピーではどうでしょうか? 尚、この数式だとE列は必要なくなりますけど・・・ 以上、今回も外していたらごめんなさいね。m(__)m
お礼
こちらの関数でもきちんと表示できました。 いつもありがとうございます。 とても助かりました。
補足
皆様、ご回答いただきありがとうございます。 IF(B4=1,VLOOKUP(A4,$H$4:$K$8,D4+1,0),"") =IF(COUNTBLANK(A4:B4),"",INDEX($I$5:$K$8,MATCH(A4,$H$5:$H$8,0),D4)) という、二つの出し方があることが分かりました。 今回もとても助かりました。 ベストアンサーは一番最初にご回答いただいた方に差し上げたいと思います。
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
追記。 価格表の指定が「$H$4:$I$8」から「$H$4:$K$8」に変わっている(横に2列分広がっている)」事に注意して下さい。 3番目の引数を「2」から「D4+1」に変えただけでは価格表の指定が変なので「購入場所区分が2以上になったら変な動作」になります。
お礼
3番目の引数で、列番号以外にも指定できるとは知りませんでした。(「D4+1」など) 詳しいご説明、ありがとうございます!!
- chie65536(@chie65535)
- ベストアンサー率44% (8740/19838)
VLOOKUPの3番目の引数は「検索表の何列目から値を取り出すか?」です。 3番目の引数を「セル参照を含む式」にすれば、参照したセルの中に入っている値により、表のどの位置から検索結果を取り出すか変わります。 D4セルに「1~3」の値が入っている場合 =IF(B4=1,VLOOKUP(A4,$H$4:$K$8,D4+1,0),"") と書くと、D4セルに入っている値によって、表から値を取り出す位置が変わります。 D4に「1」が入っていれば、D4+1は「2」ですから =IF(B4=1,VLOOKUP(A4,$H$4:$K$8,2,0),"") と同じ意味です。 D4に「2」が入っていれば、D4+1は「3」ですから =IF(B4=1,VLOOKUP(A4,$H$4:$K$8,3,0),"") と同じ意味です。 D4に「3」が入っていれば、D4+1は「4」ですから =IF(B4=1,VLOOKUP(A4,$H$4:$K$8,4,0),"") と同じ意味です。 こうすると「D4が1ならI列から、2ならJ列から、3ならK列から、価格を持ってくる」ようになります。
- nattocurry
- ベストアンサー率31% (587/1853)
> IF関数の理論式ですが、D4が「1」だったら、I列から、「2」だったらJ列から…など、複数の条件づけってできないですよね? そのために、範囲を$H$4:$I$8から$H$4:$K$8に変えて、2をD4+1に変えたんですけど、うまくいきませんでしたか?
お礼
うまく動きました!! 範囲が「$H$4:$K$8」だったのですね。 ありがとうございます。
- tom04
- ベストアンサー率49% (2537/5117)
こんにちは! 間違っていたらごめんなさい。 表内の「オプション」の意味が判らないのですが・・・ もしかしてこのような感じで良いのですかね? ↓の画像で説明します。 「商品名」と「購入場所」だけで表内の金額を表示させるようにしてみました。 C4セルに =IF(COUNTBLANK(A4:B4),"",INDEX($F$4:$H$7,MATCH(A4,$E$4:$E$7,0),MATCH(B4,$F$3:$H$3,0))) という数式を入れ、オートフィルで下へコピーすると、画像のような感じになります。 以上、的外れであったり余計なお世話だったらごめんなさいね。m(__)m
お礼
ご回答ありがとうございます。 分かりにくいエクセルで申し訳ありません。 実は、「商品名」と「購入場所」だけで表内の金額を表示させる方法は前回別の質問でお教えいただいた事があるのです。 でもそれだと、商品名と購入場所を指定した途端に価格が出てしまうので、具合が悪いのです。 「商品名」の「購入場所」毎の価格を☆列に「1」のフラグがついたときに出したいと言ったらお分かりいただけるでしょうか?(☆や、★の価格表があるので、A列に「商品名」と項目を入れたのが間違えですかね?) よろしければ、引き続きお教えいただけないでしょうか? 宜しくお願い致します。
補足
お礼欄は付け足せないので、こちらで失礼致します。 前回もご回答いただきありがとうございました。 今後とも宜しくお願い致します。
お礼
回答、ありがとうございます。 試してみたのですが、購入場所区分「2」(B商店等)で購入する場合金額が出てこなくなってしまいました。 IF関数の理論式ですが、D4が「1」だったら、I列から、「2」だったらJ列から…など、複数の条件づけってできないですよね? エクセルが不慣れで申し訳ないのですが、引き続きお教えいただけないでしょうか。