• ベストアンサー

Excel、関数に付いての質問です。

Excel、関数に付いての質問です。 度々の質問で申し訳ありません。 添付のエクセル表で、F4に価格を出したいのですが、どのようにしたら良いでしょうか? (A4の商品名をB4に「1」があるとき、D4の購入場所区分「1」の価格表から価格を出したい) A商店のみで購入する場合は「=IF(B4=1,VLOOKUP(A4,$H$4:$I$8,2,0),"")」で出していたのですが…。 INDEXや、MATCH関数の使い方の本も読んでみたのですが、完敗してしまいました。 分かりにくかったら申し訳ありません。補足させていただきます。 宜しくお願いします。

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

  • ベストアンサー
  • nattocurry
  • ベストアンサー率31% (587/1853)
回答No.1

IF(B4=1,VLOOKUP(A4,$H$4:$I$8,2,0),"") を IF(B4=1,VLOOKUP(A4,$H$4:$K$8,D4+1,0),"") に変えてみてください。

nekozane
質問者

お礼

回答、ありがとうございます。 試してみたのですが、購入場所区分「2」(B商店等)で購入する場合金額が出てこなくなってしまいました。 IF関数の理論式ですが、D4が「1」だったら、I列から、「2」だったらJ列から…など、複数の条件づけってできないですよね? エクセルが不慣れで申し訳ないのですが、引き続きお教えいただけないでしょうか。

その他の回答 (5)

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

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

nekozane
質問者

お礼

こちらの関数でもきちんと表示できました。 いつもありがとうございます。 とても助かりました。

nekozane
質問者

補足

皆様、ご回答いただきありがとうございます。 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)) という、二つの出し方があることが分かりました。 今回もとても助かりました。 ベストアンサーは一番最初にご回答いただいた方に差し上げたいと思います。

  • chie65535
  • ベストアンサー率43% (8523/19372)
回答No.5

追記。   価格表の指定が「$H$4:$I$8」から「$H$4:$K$8」に変わっている(横に2列分広がっている)」事に注意して下さい。   3番目の引数を「2」から「D4+1」に変えただけでは価格表の指定が変なので「購入場所区分が2以上になったら変な動作」になります。

nekozane
質問者

お礼

3番目の引数で、列番号以外にも指定できるとは知りませんでした。(「D4+1」など) 詳しいご説明、ありがとうございます!!

  • chie65535
  • ベストアンサー率43% (8523/19372)
回答No.4

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)
回答No.3

> IF関数の理論式ですが、D4が「1」だったら、I列から、「2」だったらJ列から…など、複数の条件づけってできないですよね? そのために、範囲を$H$4:$I$8から$H$4:$K$8に変えて、2をD4+1に変えたんですけど、うまくいきませんでしたか?

nekozane
質問者

お礼

うまく動きました!! 範囲が「$H$4:$K$8」だったのですね。 ありがとうございます。

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

こんにちは! 間違っていたらごめんなさい。 表内の「オプション」の意味が判らないのですが・・・ もしかしてこのような感じで良いのですかね? ↓の画像で説明します。 「商品名」と「購入場所」だけで表内の金額を表示させるようにしてみました。 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

nekozane
質問者

お礼

ご回答ありがとうございます。 分かりにくいエクセルで申し訳ありません。 実は、「商品名」と「購入場所」だけで表内の金額を表示させる方法は前回別の質問でお教えいただいた事があるのです。 でもそれだと、商品名と購入場所を指定した途端に価格が出てしまうので、具合が悪いのです。 「商品名」の「購入場所」毎の価格を☆列に「1」のフラグがついたときに出したいと言ったらお分かりいただけるでしょうか?(☆や、★の価格表があるので、A列に「商品名」と項目を入れたのが間違えですかね?) よろしければ、引き続きお教えいただけないでしょうか? 宜しくお願い致します。

nekozane
質問者

補足

お礼欄は付け足せないので、こちらで失礼致します。 前回もご回答いただきありがとうございました。 今後とも宜しくお願い致します。

関連するQ&A

  • Excel、関数?に付いての質問です。(価格を出したい)

    Excel、関数?に付いての質問です。(価格を出したい) エクセルでA列に大・中・小などの大きさ別の商品があり、B列に購入場所があります。 商品は購入場所ごとに価格表があります。 C列に大きさ&購入場所で価格が表示されるようにしたいのですがどのような関数を使えば出てくるでしょうか? 大きさによって価格が違うだけならVLOOKUPを使い無事に価格が出てきたのですが、2箇所見てくれるような関数はあるのでしょうか? ※質問がわかりづらかったら済みません。その場合は、補足させていただきます。 よろしくお願いいたします。

  • エクセルのVLOOKUP関数で全内容を取り出したい

    エクセルのVLOOKUP関数ですが、( )内の左から4つ目何列目の内容を取りたいというところですが、 すべての内容を取り出すという事はできませんか? 下記の例でいうと、3になります。 INDEXとMATCHを使えばと書いてる記事を見ましたが、それでも出来ません。 教えていただけますか。 =VLOOKUP(A16,B3:G12,3,FALSE) =INDEX(B3:G12, MATCH(A16, B3:G12, 0), 0)

  • エクセルの関数を教えて下さい。

    エクセルの関数を教えて下さい。 例えば、A1からC10までの表があり、A列は人の名前、B列は住所、C列は年齢であるとき、「〇〇に住む△才」と指定したら、該当するA列の名前が表示されるようにしたいのですが、方法が分かりません。 (実際にはB列を選んだあとC列を選べば、該当するA列は必ず1つになります。無いという事もありません。) エクセルのヘルプを見て、INDEXとMATCHを組み合わせた関数の使い方が出ていたので、それにANDを加えて何とかならないかと頑張ってみたり、VLOOKUPとかCHOOSEとか、あれこれ探すのですが1時間たっても分からず、自分のアホさ加減にあきれるやら眠くなるやらで、とうとうまた質問させて頂くことにしました。 どなたかご存知の方が見て頂けましたら、ご教授のほどよろしくお願いします。

  • エクセルの関数について。

    すいませんエクセルの作業で教えてください。こちらはエクセルのデータをコピーしたものを張り付けています。 下記のように同じ商品を数社に購入した場合にそれぞれの仕入れ先で何個購入出来て 仕入れ合計と売り合計がどうなのか簡単に表示できるようにしたいです。瞬時にわかりたいです・。 売り合計と仕入れ合計がいくらになるのかこちらのエクセルの下あたりに関数で入力しようと 思っているのですがなかなかやり方がわかりません。おそらくVLOOKUP関数でやれば簡単なのではと 思っているのですがどう入力設定をすればわかりません。忙しいところ申し訳ございませんが どなたか教えて頂けないでしょうか_? よろしくお願いいたします。 みずらくて申し訳ございません 品名はがアルファベット 仕入れ先もアルファベットになっております。 よろしくお願いいたします。 商品 数量 売り単価 合計 仕入先 仕入単価 仕入合計 リンゴ 50 65 3,250 A商店 49 2,450 リンゴ 50 56 2,800 B商店 42 2,100 リンゴ 50 35 1,750 B商店 25 1,250 リンゴ 50 43 2,150 A商店 30 1,500 リンゴ 50 170 8,500 A商店 120 6,000 リンゴ 50 43 2,150 A商店 30 1,500 ミカン 50 36 1,800 A商店 18 900 ミカン 50 36 1,800 A商店 18 900 ミカン 50 37 1,850 A商店 25 1,250 ミカン 50 70 3,500 C商店 50 2,500 ミカン 50 70 3,500 D商店 50 2,500 パイナップル 50 55 2,750 D商店 40 2,000 パイナップル 50 135 6,750 D商店 100 5,000 パイナップル 50 45 2,250 C商店 30 1,500

  • エクセル関数の質問

    ただ今会社で、警備の価格表をエクセルで作っているのですが、 関数についての質問です。 B(勤務時間)-A(勤務時間)が4時間未満だったらC(残業代)がゼロ。4時間以上6時間未満だったら、Cに4時間を超える数字が表れる。又、B-Aが9時間を超えるようだったら、Cに9時間を超える数字が表れるような関数の表を作りたいのですが。。解りにくくて申し訳ないですが、お答え宜しくお願い致します。

  • エクセル関数についての質問です。

    VLOOKUP関数を使って表を作りたいのですが、検索する範囲が複数ページあります。 検索する範囲が1ページの時は例えば、 =vlookup(A1,シート名!A2:B10,2) でイイと思うのですが、複数ページある場合はどのように範囲を指定すればいいのでしょうか? エクセル関数について検索できるお勧めのホームページでもいいので、どなたか教えて下さい。 お願いします。

  • エクセル関数で同じ日付の合計を出す関数を作りたいです。

    エクセル関数で同じ日付の合計を出す関数を作りたいです。 以下のような表があります。 <Sheet1>      A      B 1  2010.08.21  4500 2  2010.08.15  300 3  2010.08.15  -600 4  2010.08.15  -1100 これを使用して、 <Sheet2>      A      B 1  2010.08.29   0 2  2010.08.21   4500 3  2010.08.15   -1400 という具合に、B1~B3に、Sheet1の合計を表示させたいです。 もちろん、簡単でよいなら、それぞれsheet1を見て、手打ちで該当するものに たとえば、Sheet2のB3なら、=sum(Sheet1!b2:b4)ですむと思うですが、 転写させて、毎回自動的に結果を得られるようにしたいのです。 具体的には、 Sheet2のA列の日付をキーにして、 Sheet1のA列とマッチしたもののBの合計を求めたいです。 (説明べたでごめんなさい) Vlookupやmatch関数などで試してみたんですが、 いまいちうまくいきませんでした。 エクセルに詳しい方、回答お待ちしております。

  • エクセル関数について

    エクセルの関数でVLOOKUPを良く使っていますが、下記の場合どのようにすればうまく一覧表ができるでしょうか。 元データー 親会社 子会社 品1価格 品2価格 A   ア   1000   1500 A   イ   1200   1800 B   エ   1020   1100   のデーターがあるとします。 これを 親会社をプルダウンで選ぶ形にして 子会社 品1価格 品2価格 の一覧表を作成したいとおもいます。 VLOOKUPの場合、行の上から読んでいくために同じ親会社の子会社を認識しませんので、困っています。

  • 至急!EXCELのどの関数を使って操作すればいいのかわかりません!!

    至急!EXCELのどの関数を使って操作すればいいのかわかりません!! 仕事で使うのでとても困っています。関数苦手なEXCEL初心者です。 本を見たりしたのですがEXCELのどの関数を使って操作すればいいのかわかりません やりたいことは 表Aの全人数から表Bのメンバー"以外"をリストアップして表Cを作成したいんです。 やり方としてVLOCKUP関数を使うのかなと思ったんですけど、 表AとBを照らし合わせて該当するものを抽出するのならVLOOKUP関数でいいのかなと思ったのですが やりたいことは表Bのメンバー"以外"なので何の関数をつかってやればいいのかわかりません。 そもそも本を読んでもいまいちVLOOKUP関数のやり方がわかりませんでした。 すみませんが、仕事で困っているので、どなたか教えていただけないでしょうか? よろしくお願いいたします。

  • Excelの関数 VLOOKUPで出来ることについて

    質問失礼させて頂きます。 表題の通り、VLOOKUPで出来ることの確認なのですが、 AというエクセルファイルのあるセルにVLOOKUP関数を用いて 参照先をBというエクセルファイル(しかも閉じている)にする事は できますでしょうか。 私が調べたところ…、できないようです。 しかし、なにか術があるのではと思い、投稿させて頂きました。 申し訳ございませんが、宜しくお願い致します。

専門家に質問してみよう