• ベストアンサー

エクセルで困ってます。

今、データ処理をしているのですが、関数がわかりません。よろしくお願いします。 ++++++++++++++++++++++++++++ セル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

  • エクセルのif関数で8つ以上ある場合について教えて下さい。

    エクセルのif関数で8つ以上ある場合について教えて下さい。 バージョン:エクセル2002 以下のような場合       1,000未満 → A 1,000以上 1,500未満 → B 1,500以上 2,000未満 → C 2,000以上 2,500未満 → D 2,500以上 3,000未満 → E 3,000以上 3,500未満 → F 3,500以上 4,000未満 → G 4,000以上 4,500未満 → H 4,500以上 5,000未満 → I 5,000以上       → J 現在のエクセルバージョンでは、 if関数の7レベルを超えてしまい、Lookup関数では一致した値しか拾ってくれません。 このような場合、以上、未満などの比較演算子を使用した範囲内の数値の分岐結果を取得するには どのようにすればよいのでしょうか? 現在は、次のように表を作成して行っております。     A     B   C  ←セル列  1        1,000  A  2  1,000   1,500  B  3  1,500   2,000  C  4  2,000   2,500  D  5  2,500   3,000  E  6  3,000   3,500  F  7  3,500   4,000  G  8  4,000   4,500  H  9  4,500   5,000  I  10  5,000        J  ↑ セル行 別の関数などを使用してできる場合(VBA不可)などでも構いませんので、 どなたかご教授願います。 宜しくお願いします。

  • エクセルの関数を教えてください。

    セルHにIFとANDを使って下記内容の関数式を入力したいです。 セルAからセルF内すべてに数値が入っていたらセルFを返す、 セルFが空欄ならばセルEの数値を返す、 セルEも空欄ならばDの値を、 Dも空欄ならばCの値を、Cも空欄ならばBの数値を、 Bも空欄ならばAの数値を返し、 Aも空欄(つまりAからF内に数値なし)ならばスペースを返す。 わかる方、教えてください。 よろしくお願いします。

  • エクセル関数、複数条件で答えをだしたいのですが、

    セルA、B、C、D、にそれぞれ数値が入っています。 セルEに下記条件の答えをだしたいのですが IF関数もしくは他の方法で実現できるのでしょうか? Aが空白セルの場合、Eも空白、 B500以上、C50以上で”◎”、 B500以上、C50未満の場合”取寄せ” B200以上、C50以上で”○” B200以上、C50未満で”取寄せ” B1以上、C50以上で”△” B1以上、C50未満、D0で”残少” B0の場合は”要確認” どなたか、お知恵をお借りできれば幸いです。

  • エクセルEXCELの関数

    エクセルの関数で、どのように式を立てれば良いか分からず困っています。 A、B、C、Dの4個のセルに数値が入力されています。 条件1 AとCまたはBとDのいずれかが100を超えている。 条件2 上の条件から残されたセルの数値は60未満 これが勝ちの条件と定義しています。 逆に 条件3 AとCまたはBとDのいずれも100を超えていない。 条件4 上の条件から残されたセルの数値は60以上 これを負けの条件と定義しています。 このいずれにも含まれないのを引き分けと分類分けしたいのですが どのようにすればいいでしょうか?

  • Excel 条件で足すセルを自動的に変える方法

    ///////////////////////////// A1に“0”か“-2(マイナス数値※2は例)”が入る場合には、H1に「=B1&C1&D1&E1&F1」という結果。 B1に1以上の数字が入る場合には、H2に「=B1&D1&F1&G1」という結果。 ※B1~F1には文字列が入っています。 ///////////////////////////// という感じでA行セルの内容によって、 足す(&)対象にするセルを自動的に変えたいと思います。 上記の“H1”や“=B1&C1&D1&E1&F”などは例ですが、 「0」か「1以上の数字(1や100等)」が入る事は確定しています。 こういった処理はIF文になるのでしょうか? 初心者な故、ご回答頂く際に不足なことがございましたらお伝え下さい。 よろしくお願い致します。

  • エクセルのセルに「1以上2未満」という条件を入れたい

    エクセルの関数でC1のセルに =IF(A1=B1,1,0) という関数を作ります。 A1のセルには0~100までの任意の数値が入ります。 B1のセルに「1以上2未満」という条件を入れたいのですが、 どのようにすれば良いでしょうか? エクセルの関数に「1以上2未満」と入れ込むのではなく、あくまでも B1のセルに「1以上2未満」という条件を入れたいのです。 よろしくお願いします。

  • エクセルの条件文で抽出したセルに改行を入れたい

    条件文で作成した文字列内に改行を入れる方法を教えてください。 下記のようなエクセル(以後、数百行あります)があり、○がついているところの1行目にある文字をK2セルに入力したいと思います。   A  B  C  D  E  F  G  H  I  J K  1 あ い う  え  お  か  き  く け  こ   2 ○       ○       ○    ○  ○ 3   ○      ○    ○  ○ K2セルには、○印のついている あ え き け こ と改行して出力されるように関数を組むにはどうしたらいいのでしょうか? =IF(A2=○,A1&"","")&IF(B2=○,B1,"")&IF(C2=○,C1,"")&IF(D2=○, D1,"")&IF(E2=○,E1,"")&IF(F2=○,F1,"")&IF(G2=○,G1,"")&IF(H2=○,H1,"")&IF(I2=○,I1,"")&IF(J2=○,J1,"") と入力してみましたがうまくいかず、これではうまくいったとしても 改行なしで あえきけこ と出てしまう気がします・・・。 一晩悩みましたがどうしてもうまくいかないのでどなたか教えてください。 よろしくお願いいたします。

  • 急いでいます。エクセルの数式を教えてください。

    販売金額 A 1億5千万以上 B 1億以上1億5千万未満 C 5千万以上 1億円未満 D 5千万未満 報償率 Aグループ (1)達成率100%以上105%未満 1.8% (2)達成率105%以上110%未満 1.9% (3)達成率110%以上2.0% Bグループ (1)のとき 1.5% (2)のとき 1.6% (3)のとき1.7% Cグループ (1)のとき 1.2% (2)のとき 1.3% (3)のとき1.4% Dグループ (1)のとき 0.9% (2)のとき 1.0% (3)のとき1.1% 以上の条件で報償率を関数で表示させるにはどのような数式になるでしょうか? 販売金額がセルC8、達成率がD8、F8にグループ(AからD)が入力されています。 セルG8に報酬率を表示させたいです。 イフ関数やVlookupで考えてみましたが、うまく 数式ができません。 以上どうぞよろしくお願いいたします。

  • エクセルでIFとANDを使った関数について教えて下さい

    A B C D E F G 1 1 2 3 結果 2/3 2/4 2/5 2 2/3 2/4 2/5 合格 0 0 1 3 上記のような表を作成しようとしています。条件が、 D1が「合格」で、 C2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じなら「1」、 違うなら「0」、 B2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」なら「1」、違うなら「0」、 A2の日付がE1(該当セル、E1なら2/3、F1なら2/4)と同じで尚且つ、 C2が「空欄」で、B2が「空欄」なら「1」、違うなら「0」 を返しなさい。 という関数を作りたいのですが、上手くいきません。 IFとANDを使えばいいと思うのですが、どのように組み合わせれば 良いでしょうか。 真を返す、優先順位は、C2、B2、A2、のセルです。 C2に日付が入ってるときはB2とA2に日付が入っていても カウントされないように(偽が入るように)したいのです。 ちなみに、最初は、 =IF($D2="合格",IF($C2=E$1,1,IF($B2=E$1,1,IF($A2=E$1,1,0))),0) と、入れてましたが、これだと、C2に日付が入った時にC2だけカウント したいのに、B2もA2もカウントされてしまいます。 どうか、良きアドバイスをお願いします!!

  • エクセルで計算の結果がある数値の場合のみ文字列を表示させたいです・・・。

    エクセルで計算の結果がある数値の場合のみ文字列を表示させたいのですが、IF関数を使うのかなと思いますが関数がよく解かりません。。。 やりたいことはこんな感じです。 セルG1にはA1-B1、H1にはC1-D1、I1にはE1-F1と計算式が入っています。 計算の結果、▲1になるセルだけを文字列『売上』と表示させたいのですが・・・。 なお、計算の結果は、必ず『1』か『▲1』のどちらかにしかなりません。 つたない質問ですが解決したく困っています。よろしくお願いします。

専門家に質問してみよう