OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

エクセルのIF関数について

  • すぐに回答を!
  • 質問No.193230
  • 閲覧数146
  • ありがとう数5
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 32% (130/406)

明けましておめでとうございます。
新年早々質問なのですが(^^;、次の場合の式はどのようにすればよろしいでしょうか。

セルA1が10000円以上の場合、A1*30%
セルA1が10000円未満9000円以上の場合、A1*30%
セルA1が9000円未満8000円以上の場合、A1*28%
セルA1が8000円未満7000円以上の場合、A1*27.5%
セルA1が7000円未満6000円以上の場合、A1*27%
セルA1が6000円未満5000円以上の場合、A1*26%
セルA1が5000円未満4000円以上の場合、A1*24%
セルA1が4000円未満3000円以上の場合、A1*23%
セルA1が3000円未満2000円以上の場合、A1*22.5%
セルA1が2000円未満1000円以上の場合、A1*20%
セルA1が1000円未満0円以上の場合、A1*10%

~%は例題として適当にランダムに設定しました。
IF関数の中にIF・・・とやっていくとネストは7つまでですので、どうしてもすべてを満たす数式を作ることができません。
上記の例題につきまして、詳しい方にアドバイスいただければ幸いです。
よろしくお願いいたします。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.2
レベル12

ベストアンサー率 52% (322/612)

こんばんは!

本来のデータや以上未満の境が、不規則であれば

 =A1*LOOKUP(A1,{0,1000,2000,3000,4000,5000,6000,7000,8000,9000,10000;10,20,22.5,23,24,26,27,27.5,28,30,30})%

書式としては
 =A1*LOOKUP(A1,{値1,値2,・・・,値n;返値1,返値2,・・・,返値n})

値部分は ○○以上~××未満 の ○○ の値を昇順に記載
返値部分は、それに対応した結果(今回の場合~%の数値部分)
値配列と返値配列との区切りは「;」セミコロン

例記のように区切り桁が 000円単位であれば
検索値A1を1000で割ることで
 =A1*LOOKUP(A1/1000,{0,1,2,3,4,5,6,7,8,9,10;10,20,22.5,23,24,26,27,27.5,28,30,30})%
 多少短くなります

完全に1000円単位(一定増値)であれば
 CHOOSE() 関数も使えます。
お礼コメント
paochi

お礼率 32% (130/406)

こんばんは!
アドバイスありがとうございました。
他の方からのアドバイスをすべて試してみました。
その中で、今の自分でも理解できるこちらの数式を選択させていただきました。

めちゃめちゃわかりやすい!(笑)

それにしてもいろんな方法があるんですね~。
今回、いくつかの関数を知るきっかけとなり、
大変感謝しています。
ありがとうございました。

また何かありましたらよろしくお願い致します。
投稿日時 - 2002-01-07 15:58:49
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル12

ベストアンサー率 51% (254/492)

こんにちは  以下の手順でいかがでしょうか? 1.A10:B19に以下を入力 010.0% 100020.0% 200022.5% 300023.0% 400024.0% 500026.0% 600027.0% 700027.5% 800028.0% 900030.0% 2.セルB2に =A1*VLOOKUP(A1,A10:B19,2) と入力 ...続きを読む
こんにちは

 以下の手順でいかがでしょうか?

1.A10:B19に以下を入力

010.0%
100020.0%
200022.5%
300023.0%
400024.0%
500026.0%
600027.0%
700027.5%
800028.0%
900030.0%

2.セルB2に

=A1*VLOOKUP(A1,A10:B19,2)

と入力
お礼コメント
paochi

お礼率 32% (130/406)

アドバイスありがとうございました。
他の方からのアドバイスをすべて試してみました。
その中で、今の自分でも理解できる数式を選択しました。
それにしてもいろんな方法があるんですね~。
今回、いくつかの関数を知るきっかけとなり、
大変感謝しています。
ありがとうございました。
投稿日時 - 2002-01-07 15:53:23

  • 回答No.3
レベル13

ベストアンサー率 46% (643/1383)

VLookupを使うのがいいかな。 まず、適当な位置に金額とパーセンテージの表を作ります。 例えば、C列,D列に以下のような表を作成します 0  10% 1000 20% 3000 22.5%  :  : 10000 30% で、B1のセルに =A1 * VLOOKUP(A1,$C$1:$D$12,2,TRUE) などと記述すればOKだと思います。 尚、「2」はデータ ...続きを読む
VLookupを使うのがいいかな。

まず、適当な位置に金額とパーセンテージの表を作ります。
例えば、C列,D列に以下のような表を作成します

0  10%
1000 20%
3000 22.5%
 :  :
10000 30%

で、B1のセルに
=A1 * VLOOKUP(A1,$C$1:$D$12,2,TRUE)
などと記述すればOKだと思います。

尚、「2」はデータ範囲(C列,D列)の2列目(つまりD列)の値を取ってくる事を示します。
Trueは今回のように、検索する値がデータ範囲の値に厳密に一致しない場合に使います。
お礼コメント
paochi

お礼率 32% (130/406)

アドバイスありがとうございました。
他の方からのアドバイスをすべて試してみました。
その中で、今の自分でも理解できる数式を選択しました(ちょっとこの方法は自分には難しかったです^^;)。
それにしてもいろんな方法があるんですね~。
今回、いくつかの関数を知るきっかけとなり、
大変感謝しています。
ありがとうございました。
投稿日時 - 2002-01-07 15:54:15
  • 回答No.4
レベル11

ベストアンサー率 49% (139/279)

同じ回答ではつまらないので、マクロを使った方法を紹介します。 1.メニューの[ツール]-[マクロ]-[マクロ...]を選択 (または、ALT+F8) 2.マクロ名に適当な名前をつける。 ここでは、Keisanとします。 3.マクロの保存先を「作業中のブック」にします。 4.作成ボタンを押します。 5.Microsoft Visual Basic と言うウィンドウが開きますので、右側のウィ ...続きを読む
同じ回答ではつまらないので、マクロを使った方法を紹介します。

1.メニューの[ツール]-[マクロ]-[マクロ...]を選択
(または、ALT+F8)
2.マクロ名に適当な名前をつける。
ここでは、Keisanとします。
3.マクロの保存先を「作業中のブック」にします。
4.作成ボタンを押します。
5.Microsoft Visual Basic と言うウィンドウが開きますので、右側のウィンドウ内の

Sub Keisan()

End Sub

となっているのを

Function Keisan( vRange As Variant ) As Variant

End Function

に修正します。

6.あとは、下記のように、Function ~ End Function の間を修正してください。(コピー&ペーストでOKです。)

Function Keisan(vRange As Variant) As Variant
If IsNumeric(vRange) = False Or IsNull(vRange) Or IsEmpty(vRange) Then
Keisan = ""
Exit Function
End If
Select Case vRange
Case Is >= 10000
Keisan = vRange * 0.3
Case Is >= 9000
Keisan = vRange * 0.3
Case Is >= 8000
Keisan = vRange * 0.28
Case Is >= 7000
Keisan = vRange * 0.275
Case Is >= 6000
Keisan = vRange * 0.27
Case Is >= 5000
Keisan = vRange * 0.26
Case Is >= 4000
Keisan = vRange * 0.24
Case Is >= 3000
Keisan = vRange * 0.23
Case Is >= 2000
Keisan = vRange * 0.225
Case Is >= 1000
Keisan = vRange * 0.2
Case Else
Keisan = vRange * 0.1
End Select
End Function

使い方は、Excelの関数と同じです。
=Keisan(A1)
のようにセルに入力すれば、OKです。
お礼コメント
paochi

お礼率 32% (130/406)

アドバイスありがとうございました。
他の方からのアドバイスをすべて試してみました。
その中で、今の自分でも理解できる数式を選択しました。
マクロを触るのは初めてで、コピペしてみましたが
ちょっとうまくいきませんでした(^^;
うまくパーセンテージが反映されなかったり。
自分の力が至りませんでした。すみません。
でも、マクロを触る機会ができて本当によかったです。おもしろそうですよね。
大変感謝しています。
ありがとうございました。
投稿日時 - 2002-01-07 15:57:03
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ