- ベストアンサー
エクセルの関数についての質問です
エクセルで以下の関数を用いたところ、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")))))
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 境界がはっきり判らないのですが・・・ やり方だけ! VLOOKUP関数のTRUE型で対応できると思います。 ↓の画像のように区分けの表を作成しておきます。 (薄い緑の部分だけでOKなのですが、判りやすくするために「未満」の列を残しています) C3セルに =IF(AND(A3="○",B3<>""),VLOOKUP(B3,$E$2:$G$6,3,1),"") という数式を入れ、オートフィルで下へコピーすると 画像のような感じになります。 ※ お示しの数式では区分けに重複している部分があるような気がしますので、 こちらで勝手に画像のような区分けにしてみました。 参考になりますかね?m(_ _)m
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7941)
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」のようなメンドクサイ(今回間違えた原因の)判定をする必要が無いんだというところを是非マスターしてください。
お礼
なるほど、わざわざ区切らなくても「端から順に削っていく」でよかったんですね。 分かりました。ありがとうございました。
- imogasi
- ベストアンサー率27% (4737/17069)
>9>=$B3>=6 のようなの使い方は普通はしない。 初心者は我流の式を書いて質問するのでなく、データ実例でも挙げて、やりたいことを 文章で質問内容を表現せよ。 てんで意図がわからないことを書いて質問になっている場合がある。 多分エクセルの常識関数のVLOOKUP関数のTRUE型を知らないために IF関数をネストしているのだろうが、進歩もなく誤りも起こる。 もっとエクセル関数の主要50関数ぐらい勉強すること。 本件は「エクセルVLOOKUP関数 TRUE型」でWEB照会すること。 膨大な数の関連解説記事がある。
お礼
どこかのサイトを見たときに使ってあった気がしたんですが、どうやらそこが間違いのようですね。 実はVLOOKUP関数のTRUE型は、この質問を書いたあと見つけることが出来ました。 やっぱり基本的なことをしっかりと勉強しておかないといけませんね。 ありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
数式内の「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"}))
お礼
素早い回答ありがとうございました。 範囲の指定方法がまずかったみたいですね。 勉強になりました。 具体的な数式、ありがとうございました。
お礼
分かりにくい文章で申し訳ありません。 その境界が問題点だったみたいで。 確かにVLOOKUP関数のTRUE型でいけそうです。 わざわざ図までありがとうございました。 大変参考になりました。