- ベストアンサー
エクセル関数
A1のセルに数字を入力して その数字が1~10であればA1*10 11~20であればA1*20 21~30であればA1*30の式を 作りたいと思いますが どうすればいいでしょうか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
#6のmshr1962です。 補足の通りなら =A1*ROUNDUP(A1,-1)-ROUNDUP(A1,-1)/2 または =(A1-0.5)*ROUNDUP(A1,-1) ですね。
その他の回答 (6)
- mshr1962
- ベストアンサー率39% (7417/18945)
=A1*ROUNDUP(A1,-1) では如何ですか?
補足
回答ありがとうございました。 さらに1~10であればA1*10-5 11~20であればA1*20-10 21~30であればA1*30-15 という式を作る場合はどうでしょうか?
- imogasi
- ベストアンサー率27% (4737/17069)
質問に出ている数字のパターンに依存しないでやるには、VLOOKUPのTRUE型が、最適です。 D1:E4に 1 10 11 20 21 30 31 と表を作り A列にデータがあるとして B1に=A1*VLOOKUP(A1,$D$1:$E$4,2,TRUE) と入れて下方向に式を複写する。 A列は正整数で、0でなしとします。 もっと場合が増えても表を増やせば大丈夫です。その点がメリット。
補足
回答ありがとうございました。 さらに1~10であればA1*10-5 11~20であればA1*20-10 21~30であればA1*30-15 という式を作る場合はどうでしょうか?
- ASIMOV
- ベストアンサー率41% (982/2351)
こんなのも有ります =C10*INT((C10+9)/10)*10 31以上でもok
- SAKURAMYLOVE
- ベストアンサー率30% (162/533)
簡単に =CEILING(A3,10) では、いかがですか。 ちなみにNo.1さんの回答は、R1C1参照形式(昔の表計算:マルチプランで)の表示方法で、エクセルでの形式に直すと =IF(A1>20,A1*30,IF(A1>10,A1*20,A1*10)) となります。
- shikisaito
- ベストアンサー率52% (257/491)
単純に考えれば、 =IF(A1>0,IF(A1>10,IF(A1>20,IF(A1>30,"",A1*30),A1*20),A1*10),"")
- YNi2B2C
- ベストアンサー率13% (21/156)
B1の位置にその回答が出るとするならば、B1セルに =IF(RC[-1]>20,RC[-1]*30,IF(RC[-1]>10,RC[-1]*20,RC[-1]*10)) のようにして、IFで条件を重ねていってはどうでしょうか?
補足
すいません。 式の意味がよくわからないのですが 解説していただけないでしょうか?
お礼
回答ありがとうございました。 目的が達成できました。