• ベストアンサー

エクセルの式で困っています。

エクセルの初心者に等しいです。教えて下さい。 例えばA1のセルに(パイン)とあったら、B1のセルの金額を見て10万以下なら500円、10万~20万なら1500円、20万~30万なら3000円、A1のセルが(桃)とあったら、B1のセルの金額を見て10万以下なら1000円、10万~20万なら2000円、20万~30万なら4000円 といった式を入れたいのですが、IFではややこし過ぎて頭が回りません。 関数等でうまくやる方法あれば教えて下さい。 お手数をおかけしますが宜しくお願いします。

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

  • ベストアンサー
  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.7

>パインの場合と桃の場合と金額が違い、 質問当初の設定を変更する場合のことですか? 後だしジャンケンと同じですよ。 >C列にはパインの場合の金額(桃のD列は空白)、桃の場合はD列に金額を入れて 意味不明です。 150,000の行を追加するということですか? Sheet2のA列の100,000と200,000の間に150,000の行を挿入するときはC列(パイン)の単価を1,500とし、空欄を避けてください。 修正に序にB列は参照の対象になっていませんので空欄にすると誤解が起こらないと思います。 画像を添付しますので参考にしてください。

wanko_ron
質問者

お礼

わかりにくい質問と追加質問で失礼しました。やっと理解が出来てうまく計算結果が出ました。後出しジャンケンのつもりはなかったのですが、質問の仕方が悪くやりたいように出来なかった事が原因です。 本当にありがとうございました。

その他の回答 (6)

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.6

回答No.5の訂正です。 説明文の中の「INDEX関数」は誤りで「MATCH関数」に訂正します。 大変失礼致しました。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

>関数等でうまくやる方法あれば教えて下さい。 基準になる別表(Sheet2)を作成してHLOOKUP関数またはVLOOKUP関数とINDEX関数を組み合わせれば良いと思います。 回答No.4に提示されている2枚のSheetと同様の形態では以下の式で目的通りになります。 C2=HLOOKUP(A2,Sheet2!C$1:D$4,MATCH(B2,Sheet2!A$1:A$5,1),FALSE) 尚、「10万以下」は「10万未満」異なります。 従って、「10万から20万」は不適切で「10万以上、20万未満」のように厳密な定義が必要です。 画像を添付しましたので参考にしてください。 Sheet2の行と列を入れ替えた時はHLOOKUP関数の代わりにVLOOKUP関数を使います。

wanko_ron
質問者

補足

スクリーンショット付きでの丁寧なご回答ありがとうございます。 大変参考にさせて頂いたのですが、少しわからない点があり困っております。 パインの場合と桃の場合と金額が違い、例えばパインで0~10万未満の場合は500円、桃5万以上15万未満の場合は1000円というようにしたいのでC列にはパインの場合の金額(桃のD列は空白)、桃の場合はD列に金額を入れてC列のパインの場合の金額は空白としたのですが、結果を表示すると例えばパインか桃を選択して9万と入れるとどちらか一つしか正しい金額が表示されません。 桃9万と入れても1000円が表示されずに0と表示されてしまいます、その場合パイン9万と入れればパインの場合の正しい金額500円は表示されます。 どのように式を変えれば宜しいでしょうか? お手数をおかけしますが、補足お願いします。

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

こんにちは! 質問のような場合は別表を作成しておいた方が簡単だと思います。 ↓の画像で右側がSheet2としています。 Sheet2のような表を作成しておきます。 10万以上・10万~20万・・・(ぴったり10万の場合はどちらに入るのか?) と境界部分かはっきりしていないので ↓の画像で10万未満・10万以上~20万未満・20万以上~30万未満 といった区切りにしています。 B列は必要ないのですが、わかりやすくするためにあえて表示しています。 (A列以上~B列未満となります) Sheet1のC2セルに =IF(COUNTBLANK(A2:B2),"",INDEX(Sheet2!C:D,MATCH(B2,Sheet2!A:A,1),MATCH(A2,Sheet2!C$1:D$1,0))) という数式を入れオートフィルで下へコピー! これで画像のような感じになります。m(_ _)m

wanko_ron
質問者

お礼

なんとか解決する事が出来ました、ありがとうございました。

wanko_ron
質問者

補足

スクリーンショット付きでの丁寧なご回答ありがとうございます。 大変参考にさせて頂いたのですが、少しわからない点があり困っております。 パインの場合と桃の場合と金額が違い、例えばパインで0~10万未満の場合は500円、桃5万以上15万未満の場合は1000円というようにしたいのでC列にはパインの場合の金額(桃のD列は空白)、桃の場合はD列に金額を入れてC列のパインの場合の金額は空白としたのですが、結果を表示すると例えばパインか桃を選択して9万と入れるとどちらか一つしか正しい金額が表示されません。 桃9万と入れても1000円が表示されずに0と表示されてしまいます、その場合パイン9万と入れればパインの場合の正しい金額500円は表示されます。 どのように式を変えれば宜しいでしょうか? お手数をおかけしますが、補足お願いします。

  • MSZ006
  • ベストアンサー率38% (390/1011)
回答No.3

IFを使わない方法をあえてやってみました。SUMPRODUCT関数を使ってみました。 =SUMPRODUCT((A1="パイン")*(B1<=100000)*500) +SUMPRODUCT((A1="パイン")*(AND(B1>100000,B1<=200000))*1500) +SUMPRODUCT((A1="パイン")*(AND(B1>200000,B1<=300000))*3000) +SUMPRODUCT((A1="桃")*(B1<=100000)*1000) +SUMPRODUCT((A1="桃")*(AND(B1>100000,B1<=200000))*2000) +SUMPRODUCT((A1="桃")*(AND(B1>200000,B1<=300000))*4000) IFを使ったほうが分かりやすいですね(^_^;)

wanko_ron
質問者

お礼

ご回答ありがとうございます。 同じ結果を出すにも色々なやり方がありますね、参考にさせて頂きます。 エクセルは奥が深いので大変です。

  • chonami
  • ベストアンサー率43% (448/1036)
回答No.2

この項目分けはどのくらい種類があるのですか? パインと桃だけですか? たくさんあるようでしたら、対応表を作って入力された方がいいいと思います。 バージョンも記載お願いします。

  • maiko0318
  • ベストアンサー率21% (1483/6969)
回答No.1

=IF(A1="(パイン)", IF(B1<100000,500, IF(B1<200000,1500, IF(B1<300000,2000,"ここは書かれていません" ))), IF(A1="(桃)", IF(B1<100000,1000, IF(B1<200000,2000, IF(B1<300000,4000,"ここは書かれていません" )))) こう切れば見やすいかな?もちろんセルに入れるときは1行にします。

wanko_ron
質問者

お礼

回答ありがとうございます、条件が多くてIFの限界を超えてしまうので無理がありました。 やはり関数を使い表を作るのを頑張ってみます。 ありがとうございました。

関連するQ&A