【インボイス】Accessでも使用できる関数でExcelを使用して消費税の計算を検証してみました!

こんにちは! イマジネットPCサポートの橋崎です。

皆さんインボイスってご存知ですが?

ご存知ない方がほとんどだと思いますが、今年の10月からインボイス制度が開始される予定です。このインボイスについては専門家でもある税理士の方を中心に多くの人々が記事を書いています。内容はそちらを参考にして頂いた方が良いのでこの記事では詳しい解説は省きます。

簡単に言えば消費税にまつわる新ルールですが、税率の変更がある訳ではないので一般の方にはほとんど関係がありません。

今回はそれに関連したご依頼を頂き、Accessでの消費税計算をExcelで検証してみようと思い記事にしました。

インボイスとは適格請求書の事!

ここではインボイスの言葉の意味をご説明します。

日本では「適格請求書」の意味で使用しています。

「適格請求書」とは何ぞや?

インボイス登録業者は現在使用している請求書を適格請求書に変更する必要があります。それには登録事業者へ発行される登録番号や消費税率ごとの課税対象金額と消費税を現在使用している請求書に追加記載する必要があります。

当店のサービスにMicrosoft Accessを使用してデータベースを作成するサービスがあります。件数はそれほどありませんが、請求書を発行しているシステムもあり、今回はその適格請求書に合わせた内容に変更する依頼を受けました。

インボイス制度・適格請求書についてはお調べください。

この記事のインボイス説明、また適格請求書はこの他にも色々ルールがあるので、詳しく知りたい方はお調べください。

消費税の計算方法をご紹介します。

上で説明したように適格請求書にはそれに合わせた消費税の記載が必要です。ここでは外税、内税と税率ごとの基本的な消費税の計算をご紹介します。

外税の計算(10%の場合)

式:【価格】×0.1

価格を1000円で計算してみます。

1000円×0.1=消費税は100円となります。

外税の場合は合計する事をお忘れなく

内税の計算(10%の場合)

式:【価格】×10÷110

価格を1100円で計算してみます。

1100円×10÷110=消費税は100円となります。

単純に11で割ってもいいですね!

外税の計算(8%の場合)

式:【価格】×0.08

今回は価格を930円で計算してみます。

930円×0.08=消費税は74.4円となります。

外税の場合は合計する事をお忘れなく

内税の計算(8%の場合)

式:【価格】×8÷108

価格を1000円で計算してみます。

1000円×8÷108=消費税は74.07407円となります。

端数処理が必要ですね!

それぞれ計算してみましたが、どうでしょうか?

何か実用的ではありませんね!

外税計算(8%の場合)で確認すると商品価格930円を計算通り行うと消費税額が74.4円になり、足すと1004.4円になります。

皆さん経験ありますか?

会計時「お会計は1004.4円になります。」

言われた事ありませんよね!

また内税ですが、8%の74.07407円も現在の貨幣単位では対応できません。

上の計算方法では課税価格によって小数点以下の端数が発生します。消費税計算はこの端数がつきもので処理が必要となり、またこの処理方法は複数あり、以下のような処理方法があります。

  • 切り上げ
  • 切り捨て
  • 四捨五入

しかしExcelには便利な関数があり、これを使用する事で簡単に端数処理ができてしまいます。それぞれに対応する関数は以下です。

  • ROUNDUP関数・・指定した桁数を切り上げします。
  • ROUNDDOWN関数・・指定した桁数を切り捨てします。
  • ROUND関数・・指定した桁数を四捨五入します。

では実際に見てみましょう!

Excel関数で消費税計算してみよう!

端数が出やすいように課税対象額を1234円にしましょう。この金額についてはこれ以降、統一で使用する事にします。

と、その前にExcel関数の記述を復習しておきましょう。今回ご紹介する関数の記述方法は以下です。共通なので今回はROUNDUPを使用します。

=ROUNDUP(数値,桁数)

文字おこしすると「イコール・ROUNDUP・かっこ・数値(数値、または数値が入力されている対象のセル)・コンマ・切り上げ対象の桁数(数値の整数の一桁目を含む小数点以下の切り上げしたい桁数を指定する)・かっこ閉じる」です。

Excel関数を始め、どのプログラミング言語を使用して記述する場合でもルールを元に記述しなければコンピューターは動作してくれません。それはコンマひとつ抜けてもダメです。(コンピューターには、「まぁ ええやろ」は通用しません。)すべてが必要なので文字で表現しました。

本来であれば、Excelには更にこのような細かい事を気にしなくても大丈夫な便利機能の入力補助がありますが、今回は直接、関数式を数式バーに記述するので、説明を追加しました。

外税の計算(10%の場合)ROUNDUP(切り上げ)

先に消費税の計算式をご覧下さい。

式:【価格】×0.1

1234円×0.1=消費税は123.4円となります。

案の定、端数が0.4出ましたね。

では次にExcel関数のROUNDUPを使用して切り上げ処理をしてみましょう。

先に従来の計算結果を見てみましょう。
C2には価格「1234」が入力され、D2には計算式「=C2×0.1」が入力されていますね。結果は「123.4」となり、小数点第一位まで表示されています。

    数式バーに先ほどご説明したROUNDUP関数を設定します。設定するセルは計算式を設定した「D2」です。

    =ROUNDUP(C2*0.1,0)

    C2×0.1の計算結果「123.4」の桁数「0」を切り上げしたので「124」となりました。

    ここでは桁数について解説します。

    今回の計算結果123.4の桁数「0」は整数の位置になり、整数の位置は「3」ですから「4」に切り上げされました。結果もそのようになっています。

    ではこの桁数を「0」から「1」に変更してみましょう。

    桁数の指定はあくまで小数点以下が対象です。4が対象のはずですが、数値に変化はありません。

    これは今回の数値が小数点第一位までなので変化がないのです。ちなみにこれを「123.45」と数値を変更すると(数値「123.45」は直接入力しました。)結果は「123.5」と小数点第一位が切り上げされていますね。

    今回は参考のためにこのような実演をしましたが、基本的にはこの切り上げ、切り捨てを行う時は整数にする事が目的だと思うので、ここは整数にする桁数「0」を覚えるだけで大丈夫だと思いますよ。

    もうひとつ注目してほしい点

    もう一度、今回の数式を見て下さい。

    =ROUNDUP(C2*0.1,0)

    確認すると数値(赤色の字)がおかしくありませんか?

    数値ではなく「C2*0.1」とセルC2を含む計算式になっていますよね!

    実はこの数値と言うのはこのような計算式の結果でも対応してくれるのです。

    「ルールを元に記述しなければコンピューターは動作してくれません。」と「さっきと言っている事が違うじゃないか!」

    お気持ちはわかりますし、ここでは文法等の細かい事は解説しませんが、コンピューターの勉強はこだわり過ぎない事も重要です。ここでは「ヘー そんな使い方もあるんだー」ぐらいでスルーして次に進んで下さい。

    ただ、コンピュータープログラミングを勉強する場合に、この応用がすんなり頭に入る事は重要だと当店は思っています。

    内税の計算(10%の場合)ROUNDUP(切り上げ)

    ここからは数式の書き換えと結果だけ表示します。入力セルの位置が同じであればコピペできるのでご自身でも確認してください。
    ※価格は1234円で計算しています。

    式:【価格】×10÷110

    1234円×10÷110=「112.1818182」です。

    =ROUNDUP(C2*10/110,0)

    これを切り上げすると「113」になります。

    外税の計算(10%の場合)ROUNDDOWN(切り捨て)

    式:【価格】×0.1

    1234円×0.1=「123.4」です。

    =ROUNDDOWN(C2*0.1,0)

    これを切り下げすると「123」になります。

    内税の計算(10%の場合)ROUNDDOWN(切り捨て)

    式:【価格】×10÷110

    1234円×10÷110=「112.1818182」です。

    =ROUNDDOWN(C2*10/110,0)

    これを切り下げすると「112」になります。

    外税の計算(10%の場合)ROUND(四捨五入)

    式:【価格】×0.1

    1234円×0.1=「123.4」です。

    =ROUND(C2*0.1,0)

    四捨五入すると「123」になります。

    内税の計算(10%の場合)ROUND(四捨五入)

    式:【価格】×10÷110

    1234円×10÷110=「112.1818182」です。

    =ROUND(C2*10/110,0)

    四捨五入すると「112」になります。

    一旦まとめます。

    ここまで消費税の端数処理について解説しました。

    8%については同じ事の繰り返しになるので計算のご紹介はしていませんが、簡潔にご説明すると10%の外税計算がこれです。

    式:【価格】×0.1

    8%の外税がこれになります。

    式:【価格】×0.08

    0.1から0.08に変更するだけです。

    続いて内税の10%がこれです。

    式:【価格】×10÷110

    8%の内税がこれになります。

    式:【価格】×8÷108

    こちらも一目瞭然で違いが分かると思います。あとは関数を書き換えるだけですから8%については検証のご紹介を省きます。

    もしよければご自身で数値を変更して色々確認してください。

    Accessで消費税計算しましょう!

    お断り

    この記事は消費税の計算を検証している内容です。Access使用方法の解説はしていません。

    さて、ここから本題のようなものですが、最初に残念な事をお伝えしないといけません。

    AccessではExcelで使用していた「ROUNDUP」「ROUNDDOWN」が使用できません。また「ROUND」は使用できますが、Excelと同じような機能ではないのでこれまた使用できません。

    同じMicrosoftのアプリですが、全ての関数が共通で使用できないのです。

    ではどのように端数処理をするのでしょうか、今回は一般的に知られている方法をご紹介します。

    Int関数

    Access検証では

    Access検証では端数処理を見て頂きたいので消費税の外税・内税計算の処理は省きます。

    Accessでは「Int関数」を使用して小数点以下の端数を処理します。この「Int関数」の働きは小数点以下の数値を切り捨てる処理をします。

    記述方法は

    Int(数値)

    では実際にどのような処理をするのか、今回はExcelを使用して確認してみましょう。

    セルC2に「1234.666」が入力されD2で「Int関数」で処理をしています。

    結果は「1234」となっており、小数点以下が省かれています。既にこの処理は「切り捨て」になっていますね!

    ではこのInt関数を使って切り上げ等の処理を見ていきましょう。

    この記事では小数点の指定は行いません。

    関数の勉強であれば小数点第何位の指定までも考えるべきでしょうが、この記事では基本的に消費税計算を目的にしており、整数で表現すればよいので、それについてのご紹介は致しません。

    興味のある方はお調べ下さい。

    Int関数の切り上げ処理

    まず前提としてInt関数は小数点を全て切り捨てます。切り上げは端数がある場合、整数の一桁目に必ず「1」を足す必要があるので小数点第一位が最低「0.1」でも繰り上がるように「0.9」を足します。また小数点第一位が最高「0.9」でも「2」繰り上がりませんから大丈夫ですね!

    では切り上げは数値に「0.9」を足して処理します。

    式:=Int(C2+0.9)

    「1234.666」に「0.9」を足すと「1235.566」になります。これから小数点以下を切り取ると「1235」になりますが、そうなっているかExcelで確認してみます。考える点は「0.6」+「0.9」=「1.5」です。

    なってますね! 数値を色々変更しても問題なさそうです。ちなみにROUNDUP関数でも確認してみましたが、数値は同じでした。

    整数であれば、数値に「0.9」を足す事で切り上げが実現できました。

    Int関数の切り捨て処理

    切り捨て処理はInt関数そのままの処理で実現していたので説明は省きます。

    Int関数の四捨五入処理

    こちらも切り上げと同じ考えで大丈夫そうです。小数点第一位を四捨五入するので、数値に「0.5」を足します。すると「0.1~0.4」までの数値に「0.5」を足しても「0.6~0.9」までと「1」にはなりませんから整数が一桁が繰り上げる事はありません。

    では「0.5~0.9」に「0.5」を足すとどうでしょう。「1~1.4」になり「1」以上になるので整数の一桁が繰り上がりますね!

    四捨五入を実現するには数値に「0.5」を足して処理します。

    式:=Int(C2+0.5)

    「1234.666」に「0.5」を足すと「1235.166」になります。これから小数点以下を切り取ると「1235」になりますが、Excelで確認してみます。

    次に数値を「1234.333」に変更してみましょう。

    結果は「1234」となり繰り上がっていませんね!

    ExcelでROUNDUP・ROUND関数を使用して動作を確認しましたが、結果は同じでした。

    Int関数を使用しても同じ結果が得られたので、Aceessでも同じ端数処理を行えそうです。

    あとがき

    今回は少し長くなってしまいました。

    実はインボイスに関係なく消費税の計算は以前から請求書に表示する設定は行っていました。但し、適格請求書のフォーマットには適用させていませんでしたが、今回は久しぶりにAccessのカスタマイズをするので復習になると思ったので記事にしてみました。

    少し現実的な事を言ってしまいますが、ほとんどの事業者では消費税の端数処理は切り捨てを採用していると思います。なので消費税に関しては切り捨てと整数の確認で良いと思いますね。

    話は変わりますが

    最近ではこんなめんどくさい事をせずにAIに任せればよいのではと、思う方は多いでしょうが、機械でも何でもそうですが、頭も使わないとドンドン劣化してきますよ!

    たまにはめんどくさい事もしてみませんか!

    それでは

    ご注意

    記事内容についてのご質問の受付は時間が取れませんので行っておりません。

    使用しているパソコンの状態・状況や周辺機器の環境等もトラブルに関連している場合もあるので記事に書かれている内容を行う事で必ずトラブルが解消されるとは限りません。またこの記事を参考に作業される場合は自己責任でお願いします。作業された場合での損害や障害が発生しても当店は一切責任は負いませんのでご了承下さい。

    この記事の内容は投稿日時点での内容です。時期によっては仕様などの変更により、この記事のとおりではない場合もございます。