• ベストアンサー

エクセルの関数について

ある条件によって判定をさせたいと思っています。 0~10の時・・・・A 11~20の時・・・B 21~30の時・・・C 31~40の時・・・D 41~50の時・・・E 51~60の時・・・F 61~70の時・・・G 71~80の時・・・H 81~90の時・・・I 91~100の時・・J  ある素点に対してこのような判定をさせたいとき、どのような数式を入れればよいでしょうか。すごく複雑なので困っています。よろしくお願いします。

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

  • ベストアンサー
回答No.10

#9の方ご指摘ありがとうございました。そのとおりです。 0のばあいマイナス1となり1をたしても0ですからchooseでは 選択できません。 それを回避するために絶対値の関数ABSをいれて修正しました。 これで0から100までできると思いますが、どうでしょうか。 CHOOSE(INT(ABS(A1-1)/10)+1,"A","B","C","D","E","F","G","H","I","J")

betterdays
質問者

お礼

再度、ご回答していただきありがとうございました。自分では、分からない領域まで考えていただき感謝しています。今までは、関数をそのまま使っていました。条件に合う、合わないというところまで考えていませんでした。すごく奥が深くて難しいなりに楽しくなってきました。本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (9)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.9

> CHOOSE(INT((A1-1)/10)+1,"A","B","C","D","E","F","G","H","I","J") これも 0 のとき、"A" にはならないのでは? エラーになるかと・・・

betterdays
質問者

お礼

いろいろな条件で検証して頂きありがとうございます。エクセルの数式が一つでないこと、あらゆる条件を考えないといけないことがわかりました。  考えをいただき、本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.8

#7ですが、式で1を減算するのを忘れていました。 これでは10のときにBと表示されてしまいます。 訂正のように1を引いてから10で割ってください。 CHOOSE(INT((A1-1)/10)+1,"A","B","C","D","E","F","G","H","I","J") お手数かけてすみません。

betterdays
質問者

お礼

再度のご回答ありがとうございました。こちらこそ、お手数をおかけしてすみませんでした。

全文を見る
すると、全ての回答が全文表示されます。
回答No.7

次のような関数をつくってはどうでしょうか CHOOSE(INT(A1/10)+1,"A","B","C","D","E","F","G","H","I","J") A1にたとえば23という数値がはいっているとすると それを10で割って2.3になりそれをintで整数化して2とします、 それに1を加えて3としてABC..以下の選択肢の3番目をえらびます。 あとはこの関数を必要なだけコピーすればいいと思います。

betterdays
質問者

お礼

数式がシンプルになってきましたね。表計算なので当たり前なのですが、数式がある程度組み立てられる人は、すごく有利だということも分かってきました。自分にその能力がないので本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.6

#4と同じVLOOKUPを使うのですが、下記と比べてください。 何かが判るでしょう。 (テーブル) テーブルで C1:D10に 0 A 11 B 21 C 31 D 41 E 51 F 61 G 71 H 81 I 91 J をいれます。 C1の0や下1桁が0でなく1になっていることに注意。 (関数式) B1に=VLOOKUP(A1,$C$1:$D$10,2,TRUE)といれ下へ複写します。 $を付けること。Trueを指定すること。 (テスト)A列に数を入れた時の結果 1 A 11 B 21 C 31 D 41 E 51 F 61 G 71 H 81 I 91 J 101 J 0 A 10 A 20 B 30 C 40 D 50 E 60 F 70 G 80 H 90 I 100 J 101以上のチェックは省略。 未入力セルに対して#N/Aがでますが、防止策は敢えて 省略。(OKWEBに何回も質問が出ています。) A列データは点数と考えて、整数値と仮定している。

betterdays
質問者

お礼

ご回答、ありがとうございました。いろいろとチェックまでしていただきすみませんでした。

全文を見る
すると、全ての回答が全文表示されます。
  • h_azu
  • ベストアンサー率0% (0/1)
回答No.5

if関数を使用してはいかがでしょう。 ヘルプにif関数の使用例として平均点を5段階にランク分けするものが載っています(私のはOffice97なのでそれ以降のバージョンに記載があるかどうかは不明)。 ただ、ここまで多重化できるかはわかりませんが・・・

betterdays
質問者

お礼

ヘルプに載っているのですね。簡単でしたね。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

> > =CHAR(65+INT((素点-1)/10)) > > これですと、0 のとき、@ になりませんか? そうですね。御指摘感謝。 vlookupでヤルなら、A1からA11までを0,10,20,30,…,100にして B1からB11までをA,A,B,C,…,Jとし、 =vlookup(素点, A1:B11, 2 TRUE) ですね。

betterdays
質問者

お礼

だんだんと考え方が複雑になってきましたね。だだ単に数値を入れるだけでは、いけないのですね。あらゆる場合の対応を考えないといけないことも分かってきました。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.3

> =CHAR(65+INT((素点-1)/10)) これですと、0 のとき、@ になりませんか? 例えば、セルA1に素点があるとして =CHAR(65+INT((A1-(A1>1))/10)) でどうですか。

betterdays
質問者

お礼

だんだんと複雑になってきましたが、方法は、いくつかあるようですね。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
  • sero
  • ベストアンサー率47% (916/1944)
回答No.2

小数点を考慮しないで済むなら、例えばA1からA101まで0から100を入力。 B1からB11にA、B12からB21にBという風にしておきVLOOKUPで拾った方が 動作も軽いのでは? =VLOOKUP(対象セル,$A$1:$B$101,2,0)

betterdays
質問者

お礼

小数点の考慮もあるわけですね。ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

=CHAR(65+INT((素点-1)/10))

betterdays
質問者

お礼

早速のご回答ありがとうございます。表で試してみたいと思います。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excel 関数作成の簡素化 ?

    A B C D E F G H I J 1784 1784 1781 1782 1809 1813 1821 1813 1784 1784 (1)A-B B-C C-D D-E E-F F-G G-H H-I I-J (1)0 3 -1 -27 -4 -8 8 29 0 (2)=SUMIF(A:I,">0",A:I) で 40になる 上記の(1)を使用せず (2)のように一気に出来ないか? もしも 表示が悪ければ 書き直し する為 回答不要

  • エクセル WEEKDAY関数? 曜日を入れる 

     A B C D E F G I J 1H   年   月  日  曜日  2 A1、C1、E1、G1、J1は固定で、 その他B1、D1、F1のセルに年月日を入力すると Iに曜日が表示される方法を教えて下さい。

  • EXCELのIF関数について

    9セルA1~J1に1~15の数のうちの10個が一つずつ入っており、セルA3~J3にも1~15の数が入っています。またA2~J2には、A~Jまでの英字が入っています      1 2 15 9 7 6 5 4 11 3        A B C D E F G  H  I  J       2 3 5 7 9 10 11 12  13 15   のとき                                          B J G E D    I        C   のようにA3列の値と同じ1列の数字の下の値を            A5 列に表示したいのですが、何度やってもできません。      良い知恵をお持ちの方、よろしくおねがいします。

  • エクセルの関数の読み取り方を教えてください。

    エクセルで夜間の出勤時間の管理をしております。 以前在籍しておられた方が作られたようなのですが 関数初心者の私では読解するのが困難なので お教えいただきたく投稿しました。 完成されてる表を掲載できればいいのですが・・・ 関数を掲載させていただきますので その関数の読み取り方をお教えいただければ幸甚です。 A列 日付 B列 始業時間 C列 終業時間 D列 計算用退勤表記 E列 拘束時間 F列 労働時間 G列 深夜労働時間 H列 残業時間 I列 普通勤務 J列 深夜勤務 K列 普通残業 L列 深夜残業 D列 =IF(COUNT(B5:C5)=0,0,C5+IF(C5<=B5,"24:00",0)) F列 =IF(E5-$B$37<0,0,E5-$B$37) G列 =IF(COUNT(B5:C5)=0,0,MAX(0,"5:00"-B5)-MAX(0,B5-"22:00")+MAX(0,D5-"22:00")-MAX(0,D5-"29:00")-$B$37) H列 =IF(F5-$B$38<0,0,F5-$B$38) I列 =IF(D5-B5-H5-G5-$B$37<0,0,D5-B5-H5-G5-$B$37) J列 =IF(I5=0,0,$B$38-I5) K列 =IF(F5-I5-J5-L5<=0,0,F5-I5-J5-L5) L列 =IF(G5-J5<=0,0,G5-J5) 基本休憩時間 2:00(=B37) 所定労働時間 8:00(=B38) 深夜終了時刻 5:00(=B39) 深夜開始時刻 22:00(=B40) 深夜労働時間 5:00(=B41) 当番休憩時間 1:00(=B42) 表の内容はこんな感じなのですが。 これでわかりますでしょうか? 基本の時間は20:00~7:00 です また、万一勤務時間が17:00~4:00の場合 どこの計算式がどのようにわかりますでしょうか? 文字の羅列になって申し訳ございませんが 宜しくお願い申し上げます。

  • エクセルの関数についてです。平均・最小値・合計

    エクセル2003です。 下記の14~7までの数字から、少ない数字を5つ選び、 その5つの平均を出したいのですが、調べて見てもわかりません。 「1J」に「9.2」と出るようにお願いします。 すいませんが、よろしくお願いします。   A  B  C  D  E  F  G  H  I  J 1  14  9 13 12 11 10 15  9  7   

  • Excelのカウント関数の応用で教えてください。

    A   B   C   D   E    F   G   H     I   J 10   3   0   4   11   9    8    6     5 エクセルの表でAからHまで数値が入っています。 そして、Iに目標数がはいっています。 Jに関数を入れてカウントしたいのです。 JにはAからHでIより小さい数字で、なおO以上のものをカウントした数を入れたいのです。 ですので今回の場合は『2』となるように。 COUNTIFですと、検索条件に数値を指定しなくてはいけなく。何行もあるので、条件には『>I1』としたいのです。 何か質問に足りないところがありましたら、補足いたしますので、お願いいたします。

  • エクセルの使い方についてお教えください。

    エクセルの使い方についてお教えください。 例えば、 a | b | f c | g | j d | h | k | m e | i | l | n | o | のように、右肩下がりになっている列を、 a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | のように一列にまとめる方法は無いでしょうか? 何卒よろしくお願いいたします。

  • エクセルの関数について教えて下さい

    現在ある表を元に、見積書を作っています。 すごい効率が悪く、困っています。 A1~G3に表があります。(実際にはもっと多いです) 1行目に商品名 2行目に金額 3行目に個数 G3 に合計 1・2行目は、元々商品名・金額が入っており 3行目に個数を入れていきます。 G3に合計が入るようにしています。 B2、350円  C2、320円  D2、400円  E2、500円  F2、550円  G2 B3、 1    C3、      D3、 1    E3、       F3、      G3、750円  (現在のG3に入っている数式) =F3*F2+E3*E2+D3*D2+C3*C2+B3*B2 項目が多い為、数式がすごい事になっています。 もっといい方法はないでしょうか? わかる方おられましたら、教えて頂けませんか? よろしくお願いします。

  • IF関数についてです

    エクセル初心者です。 わかりづらかったらすいません。 たとえば A1*B1の結果をF1へ。 C1+D1+E1の結果をG1へ。 で、F1+G1の結果をH1へ。 という表を作っています。 で、結果が0の時に空白を返したいので、それぞれを IF(A*B=0、””、A*B)として、 IF(C1+D1+E1=0、””、C1+D1+E1)としています。 最後にF1+G1の結果も0、もしくは空白の時に空白を 返したいのですがどのように数式を入れればよいのでしょうか。 自分なりにいれてみましたがエラーがでてしまいます。 よろしくお願いいたします。

  • エクセル関数でちょっと悩んでます。

    エクセル関数でちょっと悩んでます。 sheet1にセルB4、C4、D4、B5、C5、D5(グループ1)とI4、J4、K4、I5、J5、K5(グループ2)にデータが入っているとします。 sheet2のB3、C3、D3、E3、F3、G3にグループ1のデータを記入します。 B4、C4、D4、E4、F4、G4にはグループ2を入れたいのですが、sheet1からみて列7つ移動したものとして記入したいです。どうやればいいですか? 例えば、sheet2のB3には、=Sheet1!B4を入れれば反映されます。 sheet2のB4にはsheet1のI4を入れたいのですが、sheet1からみて列7つ移動した形でエクセル関数を使って表現したいのです。どうやればいいですか? =Sheet1!B4+?

プロダクトキーが分からない
このQ&Aのポイント
  • 宛名職人のダウンロード版を購入したが、プロダクトキーが分からない。
  • アイコンは表示されるが、プロダクトキーの入力が要求される。
  • ソースネクスト株式会社の製品・サービスについての質問。
回答を見る

専門家に質問してみよう