(GAS) プロレスファンプログラミング

ノンプログラマーが書く、プログラミングブログ。 Google Apps Script を使ったプロレスファン向けツール作成

税抜価格を計算する関数

税抜価格を計算する

プロレスグッズを通販やメルカリ等で販売する場合は、通販システムやメルカリの管理画面で価格を入力する。ほとんどの通販システムでは税込価格を入力するが、たまに税抜価格を入力する通販システムがある。
税抜価格を入力すると自動で「小数点切り捨て」の税込価格が設定される通販システムを利用する際に、使える関数のサンプル。

プロレスファン向きというより、運営向きか。

サンプル

税込の価格が決まっている場合に、税抜価格を計算する。

//税抜き価格を入力すると、小数点以下を切り捨てした税込み価格が設定される通販システム用の関数
//税込み価格から、通販システムに入力すべき価格を計算する
function 入力する価格(Price_with_TAX){

  var TAX_RATE           //消費税率
  var Price_without_TAX; //税抜き価格

  TAX_RATE = 1.08;

  //税抜き価格を計算。小数点以下を切り捨てる。
  Price_without_TAX = Math.floor( Price_with_TAX / TAX_RATE );

  //上で計算した税抜き価格を通販システムに入力した場合、問題が発生しないか確認
  if ( Math.floor( Price_without_TAX * TAX_RATE ) == Price_with_TAX ){
    //OKならそのままの価格をreturn
    return Price_without_TAX;
  } else if ( Math.floor(( Price_without_TAX + 1 ) * TAX_RATE ) == Price_with_TAX ){
    //+1したものがOKなら、+1した価格をreturn
    return ( Price_without_TAX + 1 );
  }
}

Mathで使って切り捨て、切り上げ

Math.ceil() で切り上げ
Math.floor() で切り捨て
正の値の場合はこれでOK。販売価格は正の値になる。

スプレッドシートの入力例

f:id:otani3:20180220230754j:plain
B列に税込価格。C列に入力する価格を計算する関数を入力。

結果

f:id:otani3:20180220230803j:plain
通販システムに入力すべき価格が表示される。
Tシャツを税込3000円で売るためには、通販システムに税抜の2778円を入力する。
税込107円のところが空欄なのは、この通販システムでは設定できない事を示している。
小数点以下を切り捨てる場合、絶対に税込107円にできない。
99円を設定すると税込106円になり、100円を設定すると税込108円になる。間の107円にはできない。

まとめ

いったん税抜価格にしたものに、税率(1.08)をかけて元に戻るか確認する。OKならその数値を返す。
設定できない価格(107円等)の場合は、何も返さない。
税率が変わった場合、変数TAX_RATEに代入する値を変える以外にも手直しが必要になる。税率が8%の現在は、+1での確認が通用する。

消費税が上がったら、その時にどうするか考えよう。