[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『二重の割引率をかけたい』(くるみ)
A列に元値、B列に割引率(%表示)、C列にAからBの割引をしたあとのの価格を出したいです。
今はC列に
=A2*(1-B)
と入力しています。
基本的にはB列は20%であったり、10%であったりするのでその時は問題ないのですが
(Aが100でBが10%だった場合Cに90とでます)
たまにB列が20%*30%と二重の割引率になることがあります。
たとえばAが100だった場合でBが20%*30%だった場合はCには56を表示したいです。
今は#VALUEになります。
(ちなみにB列は数字が伝わればいいので表示のしかたは20*30%でもいいし20%+30%などの表記にかえることも可能です)
解決方法はありますでしょうか?
よろしくお願いいたします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
>Bが20%*30%だった場合はCには56を表示したいです。 >今は#VALUEになります。
「20%*30%」は文字列と言うことですね?
以下、一案です。
C2セル =IFERROR(A2*(1-B2),A2*(1-LEFT(SUBSTITUTE(B2,"*"," "),3))*(1-RIGHT(SUBSTITUTE(B2,"*"," "),3)))
下にコピー
<結果図> 行 _A_ ___B___ __C__ 2 100 20%*30% 56 3 100 20% 80 4 100 10%10% 81 5 100 5%*5% 90.25 6 100 10%*5% 85.5
(半平太) 2017/03/16(木) 07:41
お礼が遅くなり申し訳ありません。ありがとうございました!
私なりに組み立ての理解を試みて、もしよければ質問なのですが、
1)Substituteをする意味は何かあるのでしょうか?
2)もし50%*40%*30%となった場合はどうしたらいいでしょうか?
(こればほぼないので手作業でできるのですが、、)
おわかりでしたら教えていただけると嬉しいです。
よろしくお願いいたします。
(くるみ) 2017/03/23(木) 08:48
5%*5% の * を 空白3つに置き換えると
5% 5% となって、LEFTで左から3つ取り出すと 「5% 」 RIGHTで右から3つ取り出すと 「 5%」 となる。
空白に置き換えないと
5%*5%のままで LEFTで左から3つ取り出すと 「5%*」 RIGHTで右から3つ取り出すと 「*5%」 となって 計算に不具合が出る。
ってことですな。 桁を考慮っすね。
>もし50%*40%*30%となった場合はどうしたらいいでしょうか?
逆に質問。 掛け算は最大何回やるの? (もし・・・が増えるのがヤなので) (GobGob) 2017/03/23(木) 09:13
早速のご回答ありがとうございます。
桁の考慮ですね、なるほどです。
掛け算は最大3回です。基本1回か2回で、まれに3回が発生することがある、という感じです。
よろしくお願いいたします。
(くるみ) 2017/03/23(木) 10:15
掛け算は最大3回です。 ならば、数式を仕込むセルを最初から用意しておけばいいのでは?
セルを分ければ考え方も数式も簡単になるかと。。。
(まっつわん) 2017/03/23(木) 11:00
半平太さん案を元に。
=IFERROR(A2*(1-B2),A2*(1-LEFT(SUBSTITUTE(B2&"*0","*"," "),3))*(1-MID(SUBSTITUTE(B2&"*0","*"," "),4,6))*(1-MID(SUBSTITUTE(B2&"*0","*"," "),10,6))) (GobGob) 2017/03/23(木) 11:27
=A2*(1-LEFT(SUBSTITUTE(B2&"*0 *0","*"," "),3))*(1-MID(SUBSTITUTE(B2&"*0 *0","*"," "),4,6))*(1-MID(SUBSTITUTE(B2&"*0 *0","*"," "),10,6))
*0を付加するのでこっちでもいいかも。 (GobGob) 2017/03/23(木) 11:31
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.