
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
ご質問者がお示しになった、A列に0~30の数値があって、
A列の数値が0~3の場合は0を表示
A列の数値が4~8の場合は2を表示
・・・・・・・・・
というような条件の示し方は好ましくありません。
何故なら、0~30には整数以外も含まれるからです。ご質問の表現だと3と4の間には数値がないかのような表現になっています。しかし、「3を超えて4未満」という範囲に整数は存在しませんが、整数以外の数値は無数に存在します。ですから仮にA列に「3.5」という値があったらどうするのかという問題が生じてしまいます。
No.1さんの回答の数式
=IF(A1<=3,0,IF(A1<=8,2,IF(A1<=15,3,IF(A1<=22,4,IF(A1<=30,5,"")))))・・・①
①では、3.5を「4~8の場合」と判断し、
No.2さんの回答の数式およびNo.3さんの回答の数式
=Vlookup(A1,閾値と表示の表、2)・・・②
=IF(A1>30,NA(),VLOOKUP(A1,{0,1;4,2;9,3;16,4;23,5},2))・・・③
②③では、3.5を「0~3の場合」と判断することになります。
このよう回答者の判断に委ねるような表現になっており、混乱を招くだけなので「好ましくない」と申し上げている訳です。
このような混乱を避けるには、
①が正しいとすると
A列の数値が0を超え3以下の場合は0を表示
A列の数値が3を超え8以下の場合は2を表示
A列の数値が8を超え15以下の場合は3を表示
・・・・・・・・
のような表現にすべきですし、
②③が正しいとすると、
A列の数値が0以上4未満の場合は0を表示
A列の数値が4以上9未満の場合は2を表示
A列の数値が9以上15未満の場合は3を表示
・・・・・・・・
のような表現にすべきです。
仮に、「A列には0以上の整数しか入れない」というのであれば、「3.5」という数値はあってはならない訳ですから、No.3さんの回答の注釈にある「※ 0より小さかったり、30より大きな値の場合は、#N/A となります」という説明と同様に何らかのエラーを返する必要があるということになります。
これを踏まえて、ご質問者の条件に忠実に数式を作るとすると、ご質問者のお示しになった条件の前に「(a)A列の数値が0以上30以下の整数であって」という前提がつくことになります。
その条件で数式を作るとして、数値でないもの、また(a)の条件から外れる場合は「空白」を返すものとします。この場合B1セルに、
=IFS(INT(A1)<>A1,"",A1>30,"",A1>22,5,A1>15,4,A1>8,3,A1>3,2,A1>=0,0,TRUE,"")・・・④
を入れて下方向へコピーすればよいと思います。
整数という条件は無視して②③と同じでよい場合は、B1セルに
=IFS(A1>30,"",A1>=23,5,A1>=16,4,A1>=9,3,A1>=4,2,A1>=0,0,TRUE,"") ・・・⑤
を入れて下方向へコピーすればよいことになります。
④⑤はIFを繰り返す数式よりはスマートだと思いますが③の数式の方がさらにスマートだと思います。ただし③の数式そのままではご質問の条件に合致しない気がします。③をご質問の条件に合致させるには
=IF(A1>30,NA(),VLOOKUP(A1,{0,0;4,2;9,3;16,4;23,5},2))・・・⑥
のように修正する必要があると思います。
No.3
- 回答日時:
こんにちは
スマートかどうかはわかりませんけれど・・
=IF(A1>30,NA(),VLOOKUP(A1,{0,1;4,2;9,3;16,4;23,5},2))
とかではいかが?
※ 0より小さかったり、30より大きな値の場合は、#N/A となります。
No.2
- 回答日時:
閾値と表示、と言う別表を作ってください。
閾値-表示は、イカになります。
0-0,4-2,9-3,16-4,23-5,31-over,999-over
B列の関数は以下になります。
B1=Vlookup(A1,閾値と表示の表、2)
例えば、A1=15では、
「閾値と表示の表」の16の前段の「3」が表示されます。
もう一つの方法
> A列の数値が0~3の場合は0を表示
これを「1を表示」に変更すれば、B列の関数は以下になります。
B1
=(A1>0)
+(A1>4)
+(A1>9)
+(A1>16)
+(A1>23)
ただ、Aが30超の時の判断はありません。
No.1
- 回答日時:
B列の1行目から順に以下の式を入力してください。
1. =IF(A1<=3, 0, IF(A1<=8, 2, IF(A1<=15, 3, IF(A1<=22, 4, IF(A1<=30, 5, “”)))))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
エクセルで文字が混じった数字...
-
エクセルのセル内の文字の一部...
-
「B列が日曜の場合」C列に/...
-
2つのエクセルのデータを同じよ...
-
エクセル 文字数 多い順 並...
-
エクセルの並び変えで、空白セ...
-
EXCELで 一桁の数値を二桁に
-
オートフィルターをかけ、#N/A...
-
Excelで半角の文字を含むセルを...
-
Excel、市から登録している住所...
-
エクセル 時間帯の重複の有無
-
エクセル(勝手に太字になる)
-
Excel関数 該当する値を複数抽...
-
エクセルの列を範囲選択しての...
-
エクセルの項目軸を左寄せにしたい
-
文字を入力したら数値が自動入...
-
文字列に数字を含むセルを調べたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
Excelで半角の文字を含むセルを...
-
EXCELで 一桁の数値を二桁に
-
エクセル(勝手に太字になる)
-
エクセル 文字数 多い順 並...
-
エクセルで最初のスペースまで...
-
オートフィルターをかけ、#N/A...
-
エクセル 同じ数字を他の列に自...
-
エクセル 同じ値を探して隣の...
-
「B列が日曜の場合」C列に/...
-
エクセルで文字が混じった数字...
-
Excel、市から登録している住所...
-
エクセルの項目軸を左寄せにしたい
-
Excel 文字列を結合するときに...
-
エクセルの表から正の数、負の...
-
【VBA】特定列に文字が入ってい...
-
エクセルで、列の空欄に隣の列...
-
オートフィルターの絞込みをし...
おすすめ情報