- ベストアンサー
Excelの関数?について教えて下さい
Excelの表を作成しています。 A列の中に「0.1~100」迄数値を入れており、 B列にA列の数値が「0.1~5」迄は「5」,「5~10」迄は「10」,「10~20」迄は「20」, と言ったように,条件を設定した数値を返すようにしたいのですが、 いい方法はありますでしょうか? 宜しくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
B1=CEILING(A1,5) として下方にコピーしてください A1<0 → B1=#NUM!(エラー) A1=0 → B1=0 A1>0~A1<=5 → B1=5 A1>5~A1<=10 → B1=10 のように5の倍数に切り上げできます。 逆に切り捨てる場合はFLOOR関数が使えます。
その他の回答 (5)
- clar01
- ベストアンサー率0% (0/1)
5,10,20,30,40,50,60,70,80,90,100 と条件分けがあると仮定しておきます。 if文の入れ子は7つまでなので、普通にif文を組んだのでは足りませんね。しかし、if文でもう一工夫することで対応できそうです。 まず、大雑把には10刻みなので、まず元のデータを10で割って小数点以下を切り捨て、10倍して戻してその答えに1を足してあげればOKです。 それで対応できないのが、元のデータが100の時は答えが110になってしまうので、元のデータが100の時は100を答えとして出すようにしました。 さらに、元のデータが5以下の時には無条件に5を答えとして出すようにしました。 それを書いた関数を下に書いておきます。これをB1のセルに貼り付けて。B1セルの右下隅のフィルハンドルをドラッグして下にグ~ッと引っ張ってコピーすれば完了です。 =IF(A1=100,100,IF(A1<=5,5,(ROUNDDOWN(A1/10,0)+1)*10)) 私のところでは全て目的の数字が表示されています。うまくいかない場合にはまたお尋ねください。
お礼
頭書、IF関数を利用して出来ないかと考えておりました。 今回はCEILING関数で実施しましたが、今後の参考にしたいと思います。 ありがとうございました。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! すでに簡単な方法は回答が出ていますので、 参考程度で目を通してみてください。 他の方法の一例です。 ↓の画像のように表を作っておく方法もあります。 質問の中で「5」や「10」など境界部分が重複していますので、 勝手に表のように区切ってみました。 (区切り部分が違っていたら訂正してみてください) B2セルに =IF(A2="","",VLOOKUP(A2,$D$1:$G$12,4,1)) という数式を入れ、オートフィルで下へコピーしています。 尚、必要な表はD列とG列のみで良いのですが、 判りやすくするために「~未満」のE・F列も表示しています。 以上、参考になれば幸いです。m(__)m
お礼
VLOOKUPも利用出来たのですね。 今後の参考にさせていただきます! 画像付きの説明ありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
A1セルから下方に数値があるとしてB1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A1<=10,CEILING(A1,5),CEILING(A1,10))
お礼
CEILING関数で無事にリスト作成出来ました。 ありがとうございました。
- ahoyagi
- ベストアンサー率0% (0/1)
今思いついた解法で、全然スマートじゃないんですが if~then~elseの入れ子ができないので、else節における条件判断は他のセルに任せることにします。 値の入るセルをA1, 値を返すセルをB1とした場合、 まず [B1]=if(A1=0,0,C1) として、ゼロと非ゼロを分けます。非ゼロの場合はC1セル以降に任せます。 次に [C1]=if(A1<=5,5,D1) として、5以下の場合と5を超える場合とを分けます。後者の場合はD1セル以降に任せます。 以下同様に [D1]=if(A1<=10,10,E1) [E1]=if(A1<=20,20,F1) [F1]=if(A1<=30,30,G1) … and so on. こうすると、たとえば[A1]=21であった場合 [F1]=30 となり、それを受けて [E1]=30 [D1]=30 [C1]=30 [B1]=30 となって、[B1]に目的の値が入ります。
お礼
IF関数でもリスト作成出来るようですね! ありがとうございました。
- goo39
- ベストアンサー率36% (13/36)
20以上の条件が不明ですが B1=CEILING(A1,IF(A1<10,5,10)) でどうでしょうか?
お礼
CEILING関数で無事にリスト作成出来ました。 ありがとうございました。
お礼
CEILING関数で無事にリスト作成出来ました。 ありがとうございました。