エクセルのIF関数の場合分けは何回まで使えるのでしょうか。

 例えば、IF関数は場合分けで10点以上をA、9点以上をB、8点以上をC等というように利用しますが、エクセル2000では8回か9回までしかできず、それ以上はエラーが出ました。エクセル2003は何回までできるのでしょうか。知っておられる方お願いします。

回答の条件
  • 1人2回まで
  • 登録:2006/06/22 10:54:34
  • 終了:2006/06/22 12:20:14

回答(5件)

id:takashi_m17 No.1

たか回答回数104ベストアンサー獲得回数122006/06/22 11:04:45

ポイント40pt

エクセル2003で

IF(A1=1,IF(A2=1,(IF(A3=1,・・・と場合分けしてみました。

結果8回までしか出来ず、9回目からエラーとなりました。


例で挙げている10点以上はA、9点以上はB・・・・という風にするのであれば

VLOOKUP関数を使うのがいいかもしれません。

http://www.atmarkit.co.jp/fwin2k/win2ktips/317vlookup/vlookup.ht...

id:Yhiroro180

なるほどvlookupの工夫もありますね。

2006/06/22 12:12:13
id:gong1971 No.2

gong1971回答回数443ベストアンサー獲得回数682006/06/22 11:06:53

ポイント40pt

IF関数の中に更にIF関数を入れるような書き方をネストと言います。

Excelの仕様で「関数に設定できるネストレベル」は7までと

されています。これはExcel2003/2002/2000(それ以前のバージョン)で

共通の仕様になります。

http://hp.vector.co.jp/authors/VA014071/tips/spec_xl.html


ただ、「10点以上をA、9点以上をB、8点以上をC等」という事であれば、

別の関数を使用する事で実現が可能です。(VLOOKUP関数やCHOOSE関数など)


具体的な例があれば、数式をご案内できると思いますので、

必要であればコメントにて教えてください。

id:Yhiroro180

vlookでやってみます か マクロが早いですね。

2006/06/22 12:13:27
id:llusall No.3

llusall回答回数505ベストアンサー獲得回数612006/06/22 11:05:47

ポイント40pt

8回でした。

id:kumaimizuki No.4

くまいみずき回答回数614ベストアンサー獲得回数312006/06/22 11:49:00

ポイント150pt

同じく8回までのようです。


例えばA1セルに点数を入れる状態で

10点以上をA、9点以上をB、8点以上をC・・・0点以下をK

とするのであれば、1度「5以上か5未満か」という条件式を加えるとできます。

=IF(A1>4,IF(A1>9,"A",IF(A1>8,"B",IF(A1>7,"C",IF(A1>6,"D",IF(A1>5,"E","F"))))),IF(A1>3,"G",IF(A1>2,"H",IF(A1>1,"I",IF(A1>0,"J","K")))))

このようにするか、

B列  C列

点数  評価

0     K

1     J

2     I

3     H

4     G

5     F

6     E

7     D

8     C

9     B

10    A

という表を作り

=VLOOKUP(A1,B1:C12,2)

とすると、10点でAといったことは出来ます。


仮に「8点~10点はA」とするのであれば、表を

B列  C列

点数  評価

0     K

1     J

2     I

3     H

4     G

5     F

6     E

7     D

8     A

9     A

10    A

とすれば出来ます。

id:Yhiroro180

具対案をありがとうございます。IFのまとめ技は特に参考になりました。

2006/06/22 12:15:39
id:villain No.5

villain回答回数174ベストアンサー獲得回数122006/06/22 11:54:57

ポイント40pt

IF関数の...というより、1セルに入力可能な文字数は最大32,767

文字(符号付32bit整数において正数で表現できる最大値)のようです。



つまり、何重であろうとも1セルにはそれ以上入力できないという

ことです。

id:Yhiroro180

なるほど、そういう理由なんですね。ありがとうございました。

2006/06/22 12:16:35
  • id:taknt
    IF文は、工夫次第で、ネストさせなくても記述できる。

  • id:Baku7770
     [http://www.excel.studio-kazu.jp/cgi-bin/kazuwiki2.cgi?mycmd=read&mypage=%5B%5B20040924110912%5D%5D:title]

     IF文の階層は7階層までです。仕様であり、Excelは過去のバージョンとも互換性を保つと宣言したこともあり、少なくとも次のバージョンでも変更されないと考えます。
     確か、2000の発表時97以後のファイルは全て仕様を変更しないと言ったので、ある説明会で
    「確かにユーザの立場を考えたいい考えのようにも見える。しかし、他のスプレッドシートが現在Excelにはない目新しい機能を出した場合、マイクロソフトは対抗せずに、その機能を使いたいのなら、そのソフトに乗り換えて下さいと言っているようにも聞こえる。その点をどう考えていますか。」と、質問したのがそのままですね。
  • id:taknt
    けっこうバージョンアップすることにより仕様が変わってるけど・・・。

    シートの見出しの色とか、列数が 255以上になるとか・・・。

    IF文のネストもそのうち増やすんじゃないかなぁ。
    ま、これは 増やしたところで、複雑になりすぎて 理解しにくくなるだけだから 違う手段を 提示するかもしれないね。

この質問への反応(ブックマークコメント)

トラックバック

  • [人力検索の補足]question:1150941273 の補足 villainの日記 2006-06-22 12:11:21
    すみません。 32,767byteは符号付16bit(short)でした。32bitではありません。 他にも 数式の長さ 1,024文字 1 つの関数に指定できる引数 30 関数に設定できるネストレベル 7 などの使用制限があるよ
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません