• ベストアンサー

エクセルの関数についての質問です

エクセルで以下の関数を用いたところ、B3の値に関係なく、A3に○をいれた時点で「4」と表示されてしまいます。 AND関数が働いていない気がするのですが、理由がわかりません。 また、特にIF関数にこだわりはないので、同様の内容で、もっと分かりやすい形があれば、ご教授願います。 =IF(AND($A3="○",$B3>=10),"5",IF(AND($A3="○",9>=$B3>=6),"4",IF(AND($A3="○",5>=$B3>=3),"3",IF(AND($A3="○",2>=$B3>=1),"2",IF(AND($A3="○",1>=$B3),"1")))))

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 境界がはっきり判らないのですが・・・ やり方だけ! VLOOKUP関数のTRUE型で対応できると思います。 ↓の画像のように区分けの表を作成しておきます。 (薄い緑の部分だけでOKなのですが、判りやすくするために「未満」の列を残しています) C3セルに =IF(AND(A3="○",B3<>""),VLOOKUP(B3,$E$2:$G$6,3,1),"") という数式を入れ、オートフィルで下へコピーすると 画像のような感じになります。 ※ お示しの数式では区分けに重複している部分があるような気がしますので、 こちらで勝手に画像のような区分けにしてみました。 参考になりますかね?m(_ _)m

takemaru22
質問者

お礼

分かりにくい文章で申し訳ありません。 その境界が問題点だったみたいで。 確かにVLOOKUP関数のTRUE型でいけそうです。 わざわざ図までありがとうございました。 大変参考になりました。

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

5区分ぐらいなら、無理に新しい関数を使わなくてもまぁIF(IF(…でも簡単に作成できます。 =IF($A3<>"○","",IF($B3="","",IF($B3<=1,1,IF($B3<=2,2,IF($B3<=5,3,IF($B3<=9,4,IF($B3<=9,4,5))))))) 「端から順に削っていく」という考え方に少し慣れれば、わざわざ「1から2の間では2」のようなメンドクサイ(今回間違えた原因の)判定をする必要が無いんだというところを是非マスターしてください。

takemaru22
質問者

お礼

なるほど、わざわざ区切らなくても「端から順に削っていく」でよかったんですね。 分かりました。ありがとうございました。

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

>9>=$B3>=6 のようなの使い方は普通はしない。 初心者は我流の式を書いて質問するのでなく、データ実例でも挙げて、やりたいことを 文章で質問内容を表現せよ。 てんで意図がわからないことを書いて質問になっている場合がある。 多分エクセルの常識関数のVLOOKUP関数のTRUE型を知らないために IF関数をネストしているのだろうが、進歩もなく誤りも起こる。 もっとエクセル関数の主要50関数ぐらい勉強すること。 本件は「エクセルVLOOKUP関数 TRUE型」でWEB照会すること。 膨大な数の関連解説記事がある。

takemaru22
質問者

お礼

どこかのサイトを見たときに使ってあった気がしたんですが、どうやらそこが間違いのようですね。 実はVLOOKUP関数のTRUE型は、この質問を書いたあと見つけることが出来ました。 やっぱり基本的なことをしっかりと勉強しておかないといけませんね。 ありがとうございました。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

数式内の「9>=$B3>=6」のような記載は、9>=$B3と解釈され常にTRUEになるので「4」が もどされます。 一例です。 =IF(AND($A3="○",$B3>=10),"5",IF(AND($A3="○",$B3>=6),"4",IF(AND($A3="○",$B3>=3),"3",IF(AND($A3="○",$B3>=1),"2","1")))) 又は、 =IF(A3<>"○","1",LOOKUP(B3,{0,1,3,6,10},{"1","2","3","4","5"}))

takemaru22
質問者

お礼

素早い回答ありがとうございました。 範囲の指定方法がまずかったみたいですね。 勉強になりました。 具体的な数式、ありがとうございました。

関連するQ&A

  • エクセルのIF関数について

    エクセルの数式でIFを使って、下記のような複数の条件の時に、それぞれの計算結果を算出する式を作りましたが、単純に条件を並べただけで(IFとAND使用)、式が長くなってしまいます。これを短く出来る式の方法はありますでしょうか?(他の関数を使用する方法など)また、エクセルの関数の数式を応用編まで詳しく調べられるサイトをご存知でしたら教えてください。 (条件の例)R1への式入力 (1)A1がに"A"か"B"かを入力 (2)A1がAで、B2の値がC3以下の時、R1には8、C3より大きい場合は、B2-C3の値を表示 (3)A1がBで、B2の値がC3以下の時、R1には5、C3より大きい場合は、(B2-C3)/2の値を表示 といった条件を満たすものが作成したいです。 ちなみに私が作成した式は、 =IF(AND(A1=A,B2<=C3),8),IF(AND(A1=A,B2>C3),B2-C3,・・・・)って感じです。こんな方法しか無いでしょうか?

  • EXCELの関数に関する質問です

    EXCELに関する質問です。あるセル(例えばA1)の値が80%以上が必要条件で、次のセル(例えばB1)が150%以上なら(C1に)○を。以下なら×を返したいのですが関数入力はどのようにしたらよいのでしょうか?どなたか教えていただけませんでしょうか?

  • エクセルの関数式に関してお願いします

    エクセルの関数式で A<Bの時B-Aの値、A>Bの時A-Bの値を返す式はどのようにしたら 良いのでしょうか? IF(AND(A<B),B-A,A-B) と入れたのですが、どうもうまくいきません。 よろしくお願いします。

  • エクセルでの関数の書き方

    セルA1からF1があります。 A1がC1かD1で同じでかつ B1がC1かD1で同じ場合に、 D1の値をF1にセットしたいのですが、 どのように書けばよろしいでしょうか? EX. A1が1でB1が2の場合は C1がD1が1,2または2,1の場合のみ E1の値をF1にセットします。 COBOLで書くとこんな感じになると思います IF (A1=C1 OR A1=D1) AND (B1=C1 OR B1=D1) THEN MOVE D1 TO F1 END-IF. IF関数かAND関数を使用するような気がしますが、 思いつきません。 よろしくお願いいたします。 エクセル2000です。

  • エクセルの関数について質問です。(IFかな?)

    エクセルの関数について質問です。(IFかな?) A1が×の時はB1に-、A1が○の時はB1に手入力で数字入れたいのですが どのような関数にすればよいのでしょうか? よろしくお願いします。

  • エクセル関数=IF(AND())で質問します。

     初めまして、よろしくお願いします。 エクセルで     A    B    C    D    E    F 1   1   10   5   3    4  2            ・ 3            ・ このような表にB1、C1、D1三つの値の内一つでもE1より2倍以上の値がある場合にA1の値を抜き出す関数をF1に入力したいのですが、関数式 =IF(AND((B1)>=E1*2),A1,"") までは解るのですが、B1のみではなく、B1からD1までの範囲をどのようにすればいいのか解りません。  解る方、よろしくお願いします。

  • エクセルのIF関数について

    エクセルIF関数について教えていただきたいのですが A    B   C   5    5 -5       -5 上記のようにIF関数を組みたいのですが Aの値がプラスならBへ表示 Aの値がマイナスならCへ表示したいのですが IF関数で表すならどう関数を組めばよろしいでしょうか?

  • EXCELの関数の使い方

    何度もすいません…。 EXCELの関数を用いて、以下の事をしたいのですが可能でしょうか? ____________________________ ≪質問内容≫ IFAND関数の使い方について 例) C1に「1」と記載をしたら「=IF(AND(A1>=1,A1<100),"1",)」 C1に「2」と記載をしたら「=IF(AND(A1>=1,A1<100),"2",)」 C1に「3」と記載をしたら「=IF(AND(A1>=1,A1<100),"10",)」 上記のように、他のセルの数値を参照して表示させる数値を変える事は可能でしょうか? その他の関数を用いても構いません。 ____________________________ 以上、よろしくお願いいたします。

  • IF関数でできますか?

    次のような条件でIF関数は使えますか? Aの値が50以上,Bの値は60以上,Cの値は150以上として3つとも条件をクリアしていれば○、A,B,C3つのうちどれか2つまでクリアしていれば△、1つもしくは3つともクリアしていなければ×をつけたいのですが、IF関数を使えばいいのでしょうか?○はANDを使えばいいと思うのですが、△、×はどうすればいいのでしょうか?

  • excelのand関数、IF関数について

    エクセルのand関数、IF関数について質問です。 非常に簡単なことで申し訳ないのですが、仮にセルA2が5でかつセルB2が0の時にtrueとしたいときの関数は=and(A2=5,B2=0)であっているでしょうか。また、これをIFの関数で表す場合、=IF(A2=5,IF(B2=0,1,0),0)で同じ意味になるでしょうか?(IFの方は条件を満たす場合を1、満たしていない場合を0としたつもりです) ANDの方の関数は、多分合っていると思うのですが…。エクセルに入力しても、正しい結果が得られなかったので、質問させていただきました。初心者です。つまらない質問で申し訳ないのですが、よろしくお願いします。 

専門家に質問してみよう