• ベストアンサー

エクセル関数

A1のセルに数字を入力して その数字が1~10であればA1*10 11~20であればA1*20 21~30であればA1*30の式を 作りたいと思いますが どうすればいいでしょうか?

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.7

#6のmshr1962です。 補足の通りなら =A1*ROUNDUP(A1,-1)-ROUNDUP(A1,-1)/2 または =(A1-0.5)*ROUNDUP(A1,-1) ですね。

rakuten55
質問者

お礼

回答ありがとうございました。 目的が達成できました。

その他の回答 (6)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.6

=A1*ROUNDUP(A1,-1) では如何ですか?

rakuten55
質問者

補足

回答ありがとうございました。 さらに1~10であればA1*10-5 11~20であればA1*20-10 21~30であればA1*30-15 という式を作る場合はどうでしょうか?

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

質問に出ている数字のパターンに依存しないでやるには、VLOOKUPのTRUE型が、最適です。 D1:E4に 1 10 11 20 21 30 31 と表を作り A列にデータがあるとして B1に=A1*VLOOKUP(A1,$D$1:$E$4,2,TRUE) と入れて下方向に式を複写する。 A列は正整数で、0でなしとします。 もっと場合が増えても表を増やせば大丈夫です。その点がメリット。

rakuten55
質問者

補足

回答ありがとうございました。 さらに1~10であればA1*10-5 11~20であればA1*20-10 21~30であればA1*30-15 という式を作る場合はどうでしょうか?

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.4

こんなのも有ります =C10*INT((C10+9)/10)*10 31以上でもok

回答No.3

簡単に =CEILING(A3,10) では、いかがですか。 ちなみにNo.1さんの回答は、R1C1参照形式(昔の表計算:マルチプランで)の表示方法で、エクセルでの形式に直すと =IF(A1>20,A1*30,IF(A1>10,A1*20,A1*10)) となります。

回答No.2

単純に考えれば、 =IF(A1>0,IF(A1>10,IF(A1>20,IF(A1>30,"",A1*30),A1*20),A1*10),"")

  • YNi2B2C
  • ベストアンサー率13% (21/156)
回答No.1

B1の位置にその回答が出るとするならば、B1セルに =IF(RC[-1]>20,RC[-1]*30,IF(RC[-1]>10,RC[-1]*20,RC[-1]*10)) のようにして、IFで条件を重ねていってはどうでしょうか?

rakuten55
質問者

補足

すいません。 式の意味がよくわからないのですが 解説していただけないでしょうか?

関連するQ&A