• ベストアンサー

IF関数の複数条件の設定

IF関数を使って、振込先銀行・請求額から条件を5つ設定して手数料を出すよう設定したいのですが、何度試してもうまく行きません>< 条件1:請求金額が1万円未満→手数料 0円 条件2:請求金額が1万円以上3万円未満、かつ振込先がUFJ→手数料 315円 条件3:請求金額が3万円以上、かつ振込先がUFJ→手数料 525円 条件4:請求金額が1万円以上3万円未満、かつ振込先がUFJ以外→手数料 630円 条件5:請求金額が3万円以上、かつ振込先がUFJ以外→手数料 840円 丸投げに近い質問で恐縮ですが、アドバイスよろしくお願いします。

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

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

こんばんは! IF関数をネストしてもできると思いますが・・・ 一つの案です。 ↓の画像のように別表を作っておきます。 F列は必要ないのですが、判りやすくするための表示しています。 そしてC2セルに =IF(COUNTBLANK(A2:B2),"",IF(B2="UFJ",VLOOKUP(A2,$E$1:$G$4,3,1),VLOOKUP(A2,$E$2:$H$4,4,1))) という数式を入れオートフィルで下へコピーすると画像のような感じになります。 参考になれば良いのですが。m(_ _)m

hitsujicho
質問者

お礼

丁寧なご回答ありがとうございます! 別に表を作っておくと、ものすごく分かりやすいですね。 VLOOKUP関数を使うことは全然思いつかなかったので・・・; とても助かりました。 ありがとうございます。

その他の回答 (4)

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

 回答番号ANo.4です。  失礼しました、先程の回答で述べた関数において、30000とすべき箇所を、間違えて3000としておりました。 【誤】 =IF(AND(ISNUMBER($A2),$A2>0),LOOKUP($A2,{0,10000,3000},IF($B2="UFJ",{0,315,525},{0,630,840})),"") 【正】 =IF(AND(ISNUMBER($A2),$A2>0),LOOKUP($A2,{0,10000,30000},IF($B2="UFJ",{0,315,525},{0,630,840})),"")

hitsujicho
質問者

お礼

訂正まで入れていただいてありがとうございます。 別でリストを作成するのがポイントですね! 色々と参考になりました。 ありがとうございました。

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

 今仮に、A列に請求金額、B列に振込先が入力すると、C列に手数料を表示させるものとします。  まず、C2セルに次の関数を入力して下さい。 =IF(AND(ISNUMBER($A2),$A2>0),LOOKUP($A2,{0,10000,3000},IF($B2="UFJ",{0,315,525},{0,630,840})),"")  次に、C2セルをコピーして、C3以下に貼り付けて下さい。  これで、手数料が自動的に表示されます。

この投稿のマルチメディアは削除されているためご覧いただけません。
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

よくこういう段階別の表を引く問題で、IF関数の質問として出す質問者が多いが、VLOOKUP関数(それもTRUE型)などを知らない初心者だろうと思う。 取引銀行とそれ以外を2列(場合によっては4列の表)の表(振り込み金額区分と振り込み手数料列)にしてVLOOKUPの参照表(第2引数)を使い分けるのが、普通のやり方だ。 その場合に振り込み銀行をIFで聞き、別の式を適用する必要はあるが。 Googleででも「エクセル VLOOKUP TRUE型」で照会して勉強のこと。 http://iksystem.dyndns.org/~ict/excel_base/function/VLOOKUP03.htm 外多数。

hitsujicho
質問者

お礼

おっしゃる通り、勉強が足りずVLOOKUP関数を使うことは全く頭をよぎりませんでした・・・; 頑張って勉強していこうと思います。 ご回答ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

=IF(請求金額<10000,0,IF(請求金額<30000,IF(振込先="UFJ",315,525),IF(振込先="UFJ",630,840))) こんな方法もあります。 =IF(振込先="UFJ",LOOKUP(請求金額,{0,10000,30000},{0,315,630}),LOOKUP(請求金額,{0,10000,30000},{0,525,840})

hitsujicho
質問者

お礼

早速ご回答いただいてありがとうございます。 お礼が遅れて申し訳ありませんでした。 LOOKUP関数も勉強してみようと思います。ありがとうございました。

関連するQ&A

専門家に質問してみよう