スポンサーリンク

Excelの計算が合わないのは作り方にある!~奥の深い端数処理 その1~

ひとり情シスサバイバルの教科書
この記事は約5分で読めます。

ニッポンの事務のライフラインとなった"Excel"ですが、21世紀に入って早幾年で、やれクラウドだDXだと新技術やら新潮流が生まれているにもかかわらず、ローカル、ロートルな企業で未だに繰り広げられている光景に

Excelの計算が信用できないので電卓で検算する

という行為があります。一番非効率な事務作業の一つです。

最近ではロボットなら絶対間違えない!ということでRPAの導入が一役買っていますが、いくらRPAが優れていても元のExcelが正しい計算をしてくれなければ元も子もないわけです。

けど勘違いしてほしくないのですが、「Excelは計算を間違えるときがある」のではなく、「Excelの計算式の組み方に間違いがあるから希望した結果が出ない」のです。

ExcelはMicrosoftの気質である「余計なお節介精神」が散りばめられていて、実はクセの強いソフトです。Excelのクセを掴むことでOfficeの使い勝手と計算の精度は格段に上がります。

RPAを使った業務自動化の詳細はこちら。

このExcelに掛けたら検算必要なし!くらいの精度を手に入れて、定時で帰りましょう。

スポンサーリンク

見せかけの四捨五入

数々のトラブルとクレームを経験した中で一番多いのが「1円合わない」というもの。この現象は、いとも簡単に起こります。単純な合計をしてみました。

こんな単純な計算もExcelはできないのか!?( ゚Д゚)!?

実は小数点以下に数字を持っています。

通貨、会計では小数点以下は四捨五入されて表示されます。「数値」の場合でも「小数点以下の桁数」を"0"に設定すると整数値で表示されます。

しかし、表の見かけ上丸められているだけで、実際のセルの値は小数点を持ったままです。

見せかけ03

いくら入力している数値が整数値しかないと言っても、計算結果いかんでしっかり小数点以下は発生します。

割り算、掛け算が入るだけで小数はいとも簡単に発生します。上の式でも売価を手計算で合計すると合計は629円で1円合っていません。

ちなみに、この計算式の場合はまた別の原因である「加重平均」が関わっているのですが。これはまた後日別記事でご紹介します。

外部リンクに発展すると更に困難

単体のExcelファイルで処理しているうちは自分で気を付けられるのですが、外部リンク先でこれをやられるとパニックと責任問題が発生してきて、トラブルの困難性が増します。

実験として先ほどの表を3つ準備して足し算してみました。

( Д ) ゚ ゚

もっとカオスな計算結果になっています。小数点以下をしっかり計算すれば「なるほどなー」となるのですが。

この3表それぞれが別の人が管理しているExcelからの外部リンクだとしたら、直すために人を巻き込むことになってきます。

私は外部リンクで数字を引っ張る方法を推奨していません。

壮大なExcelプロジェクトではなく、ミニマムなツールとして真価を発揮して欲しいと思います。

自社のルールに則って正しく端数処理をしましょう

書式設定を設定したら端数も四捨五入されてて「ラッキー!式組まなくてもいいじゃん!」と思ったらそこが罠です。見た目に騙されず、しっかりと端数は丸め処理しましょう。

但し、丸め方も切り捨て、切り上げ、四捨五入など様々です。

例えば消費税の端数処理については各社によって違います。

「税抜価格」に上乗せする消費税相当額に1円未満の端数が生じる場合がありますが、その端数をどのように処理 (切捨て、切上げ、四捨五入など)して「税込価格」を設定するかは、それぞれの事業者のご判断によることとなります。

出典:総務省

会社であれば社則の「経理規程」等で確認出来ると思いますので押さえておきましょう。フリーランスや個人事業主等の場合は端数処理のルールを決めて統一しておきましょう。

端数処理をするタイミングも重要です。

適格請求書等保存方式(インボイス方式)では、消費税の端数処理を1つの請求書につき、税率区分ごとに1回までと定めています。つまり、1取引全部の合計に消費税率を掛けて端数処理をするのが正解です。軽減税率が混ざっている場合は税率毎にまとめて1回ずつで端数処理します。1品目ごとに端数を丸めてはいけません。

今後はインボイス制度の下で会計処理が行われていくことになりますので、この方法で覚えておきましょう。

丸め処理の王道 ROUND関数

正しく丸め処理するにはROUND関数を使います。Excel関数の王道中の王道です。

丸め方関数書き方
四捨五入 ROUND=ROUND([丸めたい数字],0)
切り上げ ROUNDUP =ROUNDUP([丸めたい数字],0)
切り捨て ROUNDDOWN =ROUNDDOWN([丸めたい数字],0)
五捨六入元の数-0.1に ROUND =ROUND([丸めたい数字]-0.1,0)

ただ単にROUND関数を紹介して終わりだと少し寂しかったので見慣れない「五捨六入」なんてやり方も載せてみました。元の数字から0.1を引いて四捨五入する、というちょっとした応用です。

「五捨六入」は社会保険料や労働保険料の計算の時によく使われます。いわゆる「50銭超切り上げ」という計算方法です。

(1)事業主が給与(賞与)から被保険者負担分を控除する場合
控除額の計算において、被保険者負担分の端数が50銭以下の場合は切り捨て、50銭を超える場合は切り上げて1円となります。
例)
12,345.50円⇒12,345円を控除します。
12,345.51円⇒12,346円を控除します。

出典元:日本年金機構
保険料の計算方法について

更に0.5刻みで丸める「四捨六入」など丸める基準値が変則なパターンの場合はMROUND関数、CEILING関数、FLOOR関数などが役に立ってきます。こちらはまた別トピックで取り上げたいと思います。

まとめ:正しいルールと式で丸めて信用できる計算結果に!

元となる数字が正しく計算されていれば、その後に繋がる集計も精度が上がります。

仮に他に人に外部リンクを貼られてクレームがあっても、丸めの理屈さえわかっていれば論破できます。

正しい計算結果がしっかり出てくることでExcelの計算結果にも自信が持てるので、心配性の方でもだんだんに検算を辞めていく方向に持っていけるのではないでしょうか。

更にレベルアップしたい方へ

私が机の上に常備している本です。Excelでなんか作るときにアイディアやヒントが欲しい時にちらっと見るようにしています。Excelの使い方を人に教えられるようになってから読んでも「知らなかった!」という内容が結構ありました。この手の本は機能紹介の側面が多いのですが、「資料の見せ方」や「時短に繋がるちょい技」など、仕事が早くキレイに終わることを目的としていて、他の教則本とベクトルが違います。

タイトルとURLをコピーしました