Formia

計算と条件 5 / 8

税の計算

消費税の計算を式で設定する方法を説明します。税抜から税込、税込から税抜、端数の切り捨て・四捨五入・切り上げ、税率ごとの集計を、見積アプリの式を例に紹介します。端数処理の違いも整理します。

約4分で読めます

Formia マニュアルの目次(章と記事の一覧)
はじめに
アプリを使う
アプリをつくる
入力項目ガイド
計算と条件
一覧とビュー
ワークフロー(承認)
自動化
帳票(PDF・印刷)
権限とユーザー
公開フォームと連携
現場・オフライン
運用・管理
この記事の内容

見積書や請求書では、消費税の計算と端数の処理が欠かせません。Formiaの数値は10進で計算するので、0.1 + 0.2が0.3になるなど、金額で困る誤差が出ません。この記事では、税の計算を式で設定する方法を説明します。

端数を処理する関数

関数はたらき例(2.5と -2.1)
ROUND(x, 桁)四捨五入2.5は3
FLOOR(x, 桁)切り捨て(小さいほうへ)2.7は2、-2.1は -3
CEIL(x, 桁)切り上げ2.1は3
TRUNC(x, 桁)0に向かって切り捨て-2.1は -2
ROUND_HALF_EVEN(x, 桁)偶数丸め(銀行丸め)2.5は2、3.5は4

桁は「小数点以下の桁数」です。省略すると0(整数)です。ROUNDは0.5を切り上げる、ふつうの四捨五入です。マイナスの金額(値引きなど)を扱うときは、FLOORとTRUNCの向きの違いに気をつけてください。

税抜から消費税と合計を出す

見積アプリでは、明細の小計から消費税(10%・切り捨て)と合計を、次のように計算しています。

小計        =SUM(items[].amount)
消費税      =FLOOR(SUM(items[].amount) * 0.1, 0)
合計金額    =SUM(items[].amount) + FLOOR(SUM(items[].amount) * 0.1, 0)
見積・受注管理のフォーム設計画面。左のロジックタブに、小計、消費税(10%)、合計金額の計算式が並ぶ
見積・受注管理のフォーム設計画面。左のロジックタブに、小計、消費税(10%)、合計金額の計算式が並ぶ

四捨五入にしたいときは、FLOORをROUNDに、切り上げならCEILに替えます。

税込から税抜と消費税を出す

税込の金額から逆算するときは、税率で割ります。

税抜金額    =FLOOR(total / 1.1, 0)
消費税額    =total - FLOOR(total / 1.1, 0)

税抜を先に端数処理し、消費税額を「税込 - 税抜」で出すと、両方を足したときに税込とぴったり合います。

税率ごとに集計する

標準税率(10%)と軽減税率(8%)が混ざる明細では、明細の各行に「税率」の列(8または10)を持たせ、税率ごとに合計してから税を計算します。

8% 対象の税抜合計   =SUMIF(items, @item.rate == 8, @item.amount)
8% の消費税         =FLOOR(SUMIF(items, @item.rate == 8, @item.amount) * 0.08, 0)
10% の消費税        =FLOOR(SUMIF(items, @item.rate == 10, @item.amount) * 0.1, 0)

行ごとに税を計算して足すのではなく、税率ごとに合計してから1回だけ端数を処理する形にしておくと、請求書の書き方と合わせやすくなります。

税率を1か所にまとめる

税率が将来変わっても直しやすいように、税率を入れる項目(例: tax_rate、値は0.1)を1つ作り、各式からそれを呼ぶ方法もあります。

=FLOOR(subtotal * tax_rate, 0)

この項目を「読み取り専用」にして、既定値に0.1を入れておくと、入力する人が間違えて変えることを防げます。

関連する記事

Formia マニュアルの一覧へ

Formia

ノーコードで、業務アプリを作ろう。

どんな業務をアプリにしたいか、お聞かせください。ひな形から、Formia でどんなアプリになるかをその場で試作してお見せします。

資料請求・デモのご相談