Excel (一般機能)

Excelの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(指定なし : 指定なし)
セルの値に応じて、数式を変更したい
投稿日時: 23/01/20 16:46:50
投稿者: Jasmine809

お世話になります。
 
下記のようなEXCEL表において、
D列の通貨とE列の値によって、数式を変更したいのですが、EXCELの数式で可能でしょうか。
IF分を利用すると、かなり長文になるため、他に良い代替機能がないか確認したいです。
 
D列:USDの場合、小数点以下2桁(第3桁を計算)
     JPYの場合、小数点以下はなし(小数点以下1桁目で計算)
E列:四捨五入区分(1:ROUNDUP、2:ROUNDDOWN、3:ROUND)
 
例)USD、1:ROUNDUPの場合、 E列:=ROUNDUP(数量×単価、2)
  JPY、2:ROUNDDOWNの場合、E列:=ROUNDOWN(数量×単価,0)
 
 A列   B列  C列  D列  E列 F列
1. 品番  数量  単価  通貨  四捨五入区分 合計金額(数量×単価)
2. A   100  123 USD 1 = *** 
 
よろしくお願いいたします。
 

回答
投稿日時: 23/01/20 17:34:00
投稿者: taitani
投稿者のウェブサイトに移動

switch もしくは、IFS を利用すると少しは短い?見やすくなるかもです。
 
http://officetanaka.net/excel/function/function/ifs.htm

回答
投稿日時: 23/01/20 20:33:50
投稿者: んなっと

こんな感じ。
F2
=CHOOSE(E2,ROUNDUP(B2*C2,IF(D2="JPY",0,2)),ROUNDDOWN(B2*C2,IF(D2="JPY",0,2)),ROUND(B2*C2,IF(D2="JPY",0,2)))
  
※これは桁数が大きくなると誤差が出ます。
=ROUND(B2*C2+(0.5-10^-9)*(MOD(E2-2,3)-1)/10^IF(D2="JPY",0,2),IF(D2="JPY",0,2))

投稿日時: 23/01/23 11:01:43
投稿者: Jasmine809

taitani様
 
ご返信頂きありがとうございます。
SWITH関数の用途を知りませんでした。勉強になりました。
 
 
んなっと様
 
いつもお世話になっております。
前回もご回答頂き、大変助かりました。
今回もご教示頂いた数式で解決できました!
 
本当にいつもありがとうございます。