• ベストアンサー

エクセルで困ってます。

今、データ処理をしているのですが、関数がわかりません。よろしくお願いします。 ++++++++++++++++++++++++++++ セルD2(D2:D583)の数値を 0         a 0以上5未満    b 5以上10未満   c 10以上20未満  d 20以上30未満  e    ・    ・    ・ 90以上100未満 f 100       g 言う感じに分類したいので、 IF(D2=0,"a",IF(D2<5,"b",IF(D2<10,"c",IF(D2<20,"d",IF(D2<30,"e",IF(D2<40,"f",IF(D2<50,"g",IF(D2<60,"h")))))))) という関数を書きました。hまではうまくいったのですが、h以降つまり「60以上70未満をiと表示する」 というところを書くと「入力した式にはエラーがあります」とでてきてしまいます。なぜでしょう? 若しくはもっと良い関数があれば教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.3

IF文の限界を超えたから エラーが出たのです。 >0         a >0以上5未満    b これらをどこかに表に作って VLOOKUPなどの関数で調べたらいいと思います。 もしくは =IF(A102=1,"a",MID("bcdefghijklmnopqrstuv",INT(A101/5)+1,1)) などのようにしたらいいですね。

mamigon
質問者

お礼

IFでも、そういうやり方があるのですね。勉強になります。ありがとうございました。

その他の回答 (6)

  • nihonjinn
  • ベストアンサー率39% (79/200)
回答No.7

ちなみに分布を求めたいのならFREQUENCY関数をお勧めします。

参考URL:
http://cpkiso.sgu.ac.jp/ab-folder/ab-2002k/ab-kadai14-hosoku.htm
mamigon
質問者

お礼

ありがとうございます。参考にさせていただきます。

noname#15014
noname#15014
回答No.6

あー、0以上5未満てのがあったのね。 じゃあ#4さんのがベストですね。スンマセン

noname#15014
noname#15014
回答No.5

=MID("abcdefghijkl",INT(D2/10)+1,1) じゃ駄目なの?

mamigon
質問者

お礼

ご協力とても感謝します。関数難しいですね。もっと勉強しなければ。。。どうもありがとうございました。

  • taknt
  • ベストアンサー率19% (1556/7783)
回答No.4

あ 貼り付けた式が 間違ってました。 =IF(D2<=10,IF(D2=0,"a",IF(D2<5,"b",IF(D2<10,"c",""))),MID("defghijklmnopqrstuv",INT(D2/10)+1,1)) とすれば いいでしょう。

回答No.2

D列の値が0のときはa、ですかbですか もしD列の値が0のときは、0以上5未満に該当するということでbだとすれば、Vlookup関数で簡単に出来ます。 A列  B列 0   b 5  c 10   d 20   e 30   f 40   g ・・・ のようにVlookup関数の検索範囲を作り D2に数値があるときE2に =Vlookup(D2,検索範囲,2)とすればその数値に応じてa,b c,・・・が表示されます。 ただしD列が0の時はaで、0より大きく5未満の時bとするならば、IF(D2=0,a,Vlookup(D2,検索範囲,2))とすればよいと思います。

mamigon
質問者

お礼

すみません。0はbです。 VLOOKUP関数は使ったことあったのに、忘れてました。そのほうが簡単ですね。とても参考になりました。ありがとうございました。

  • ledm
  • ベストアンサー率21% (19/89)
回答No.1

確か、IF関数は重ねる数に制限があったはずです。(7or8個だったかと)その為、限界を超えて重ねようとされたのでエラー表示になったと思います。 従って、mamigonさんのご希望のデータ処理はIF関数では難しいかと・・・。(複数セルで判定させれば可能ですが、面倒かと) 代わりの方法ですが、 (1) VLOOKUP関数 隣のシートに、1~100までの数値を縦に打ち込み、その隣に対応アルファベットを入れておきます。後は、分類のところで、数値をキーにしてマッチングをかければいけると思います。 (2) VBA VBAで、変数とCASEを使用すれば比較的簡単にできると思います。ただ、VBAを使ったことが無いならお勧めできませんが・・・・。 が思いつきます。 (1)なんかは余りスマートではありませんが・・・。

mamigon
質問者

お礼

もっとスマートなりや方があるのですね。勉強になります。VBAはまだ使ったことがありませんが、勉強したいと思います。ありがとうございました。

関連するQ&A

専門家に質問してみよう