• ベストアンサー

IF関数で4つのランクに分ける式を教えて下さい

はじめまして。質問です。 売上金額をランク別に分けたいのですが、IF関数でできるのでしょうか?3つのランクまではできました。↓ 50万円以上を"1" 30~50万を"2" 30万円以下は"3" 式→=IF(C51>=500,"1",IF(C51>300,"2","3")) でできました。 今度作りたいのは 55万以上を"1" 40~55万を"2" 25~40万を"3" 25万以下を"4" にしたいです。どなたか分かる方いらっしゃいましたら教えてください。

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

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

=IF(C51<250,"4",IF(C51<400,"3",IF(C51<550,"2","1") とか =LOOKUP(C51,{0,250,400,550},{"4","3","2","1"})

misa1213
質問者

お礼

即答ありがとうございます!できました!!すごいたすかりました。ネットで探したりしたのですがなかなかみつからなかったもので…今仕事中でここで止まってしまったので本当に助かりました! ありがとうございました!

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

#1でもう解決したと思いますが、このような場合、ビジネスでエクセルを使う場合は、IFを連ねたりしません。 VLOOKUP関数のTRUE型を使います。質問の表現の状況からして、エクセル関数の代表的なものを解説した本を読まれる必要があると思います。 区分け数が少数の場合は#1のご回答のような、配列を使う方法が簡便ですが普通はシートに区分とコードの対応表を作ります。 TRUE型の場合区分は小から大に構成します。 (FALSE型もあり、毎日のようにOKWAVEに質問・回答あり) ーー Sheet3のA1:B4に(どのSheetかは適宜で良い) セル範囲もどこでも良いが、式は下記を変えないといけ無くなる。 A列   B列 0 4 250000 3 400000 2 550000 1 Sheet2のA列に下記のテストデータを作る A列   B列 0 4 1 4 100000 4 249999 4 250000 3 250001 3 300000 3 399999 3 400000 2 400001 2 500000 2 549999 2 550000 1 550001 1 1000000 1 B列は=VLOOKUP(A1,Sheet3!$A$1:$B$4,2,TRUE) と入れて、この式を下方向に複写する。 結果 上記B列 以上、以下、未満について上記でよいかチェック。 質問では一部その点あいまい。区分をプラスかマイナス1せねばならないかも。

misa1213
質問者

お礼

エクセルの本をかって勉強しなおしてみます。 ありがとうございました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.3

#2です。 もうお分かりとは思いますが、A1とA11が混在していました。 それぞれ以下のように訂正します。 =IF(A1<250,"4",IF(A1<400,"3",IF(A1<550,"2","1"))) =IF(A1<=250,"4",IF(A1<=400,"3",IF(A1<=550,"2","1")))

misa1213
質問者

お礼

ありがとうございました!

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

55万以上を"1" 40~55万を"2" 上記が55万以上なのですからこれは40万以上~55万未満ですね? 25~40万を"3" 25万以上~40万未満ですね? 25万以下を"4" 25万以上とすると整合が取れません。25万未満ではないのですか? これなら、 =IF(A1<250,"4",IF(A11<400,"3",IF(A1<550,"2","1"))) それとも、 55万超を"1" 40万超~55万まで"2" 25万超~40万までを"3" 2 25万以下を"4" ですか? これなら、 =IF(A1<=250,"4",IF(A11<=400,"3",IF(A1<=550,"2","1")))

misa1213
質問者

お礼

merlionXXさんの言うとおりでした! うまく説明できずすいませんでした。 ありがとうございました!

関連するQ&A