消費税などの計算を行うと、小数点以下の端数が生じることがある。請求書などに記載する場合、この端数を適切に処理しなければならない。Excelで、こうした端数を「四捨五入」「切り捨て」「切り上げ」する方法を紹介する。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
対象:Office 2013/2016/2019/365
請求書の消費税計算などで計算結果を切り捨てたり、四捨五入したりするなどして、「きりのいい数字(例えば、100.4円を100円にするようなもの)」にしなければならないことは意外と多い。
このような「四捨五入」や「切り捨て」「切り上げ」のような処理のことを一般的に「端数処理」という。「Microsoft Excel(エクセル)」には、多数の端数処理の関数が用意されている。というのは、端数処理には、さまざまなルールがあり、それぞれに適した関数を使う必要があるからだ。
ここでは、主に小数点以下の数値を持つ数値を整数にするような端数処理をExcelで行う方法を説明する。
なおExcelには、小数点以下の数値を持たない整数などから「きりのいい数字(98円を100円にするようなもの)」を作る関数もある。これについては別の機会に解説することとして、本記事には含めない。
金額計算などでは、計算方法によって、小数点を持つ数字が出てしまうことがある。だが、実際のお金のやりとりでは、1円以下の金額を支払うことはできないため、何らかの方法で1円よりも小さい部分を処理する必要がある。
例えば、98円の食品は、消費税(軽減税率)を計算すると7.84円になる。しかし、実際の買い物では、0.84円を払うことはなく、消費税7円を加えた105円を支払う。消費税計算では、1円未満は切り捨てすることが一般的だ。
他の例としては、ケーブルや布など、販売単位が1メートルと決まっているものでは、1.5メートルが必要な場合には2メートルを購入することになる。このときに行われるのが切り上げ処理だ。
Excelには、小数点以下の数値を端数処理する関数として下表のようなものがある。
方法 | 関数 | 説明 | |
---|---|---|---|
四捨五入 | ROUND(<対象>, <位置>) | <対象>を小数点以下<位置>桁目で四捨五入 | |
YEN(<対象>, [<位置>]) DOLLAR(<対象>, [<位置>]) |
<対象>を小数点以下<位置>桁目で四捨五入して金額表示。結果は文字列となる | ||
FIXED(<対象>, [<位置>], [区切り]) | <対象>を小数点以下<位置>桁目で四捨五入を行い、書式設定した文字列を返す | ||
切り捨て | ROUNDDOWN(<対象>, <位置>) | <対象>を小数点以下<位置>桁目で切り捨て | |
TRANC(<対象>, [<位置>]) | <対象>を小数点以下<位置>桁目で切り捨て | ||
INT(<対象>) | <対象>の小数点以下を切り捨て | ||
切り上げ | ROUNDUP(<対象>, <位置>) | <対象>を小数点以下<位置>桁目で切り上げ | |
小数部を切り出し | MOD(ABS(<対象>),1) | <対象>の小数点以下のみを取り出す | |
整数部を切り出し | INT(<対象>) | <対象>の整数部分のみを取り出す | |
小数点以下の数値を端数処理する関数 |
小数点以下を四捨五入する処理は、比較的頻度の高い処理だ。例えば、正確な長さが12.345ミリメートルだとしても、実際に材料などを切る場合には、ミリ程度の精度でしか工作できない機械があったとする。この場合、人間が利用する数値としては、1ミリメートル以下を略して「12ミリ」と表示されてくれた方がありがたい。このような場合に利用する「四捨五入」は、こうした桁の省略時に誤差を小さくする方法として広く使われている。
Excelでは、四捨五入は、専用の「ROUND関数」で行うことができる。また、書式設定でも、表示桁数を実際の数値よりも短くすることで四捨五入処理を行わせることができる。表示される結果を見るとどちらも同じだが、セルに保持される値には違いがあるので注意が必要だ。
例えば、四捨五入した数値を合計するときなど、違いが出る場合がある。書式設定で四捨五入させた場合、あくまでもセルに記録されている数値は、端数を含む正確な値なので、合計すると「見えない」端数も合算されてしまう。結果として、ROUND関数での合計値と食い違いが生じてしまい、「合計値がおかしい」ということになりがちだ。
このように書式を使う方法は簡易な半面、場合によっては、ROUND関数で四捨五入した値を作り、これを合計して表内の数値と合計を一致させた方がよいことがある。コンピュータの数値計算誤差について知らない人に無用な詮索をさせないためにも、できれば積極的に使った方がよい。
ROUND関数は、以下のような書式で使う(切り上げのROUNDUP、切り捨てのROUNDDOWN関数も引数の指定は同一)。
=ROUND(<対象>,<位置>)
<対象>には、四捨五入を行う数値やセル参照、あるいは数式を置く。<位置>は四捨五入を行う、小数点以下の桁数であり、小数点以下を全て四捨五入するには「0」を置き、小数点第1位で四捨五入するときには「1」とする。なお、この「位置」は省略できない。
Excelには、他にも四捨五入を行う関数がある。1つは一般数値を扱う「FIXED関数」、もう1つは金額計算専用の「YEN関数」「DOLLAR関数」だ。どちらも、結果には書式設定が行われた「文字列」を返すものだ。
これらの関数は、結果が文字列となるため、Excel自体の設定や書式設定に左右されないという特徴を持つ。つまり、シートを開いたユーザーが設定を変えて数値の表示形式を変更したり、あるいはセルに違った書式を設定したりしたとしても、この2つの関数の結果は影響を受けない。金額関連の関数があることから分かるように、表示される値が重要な場合に利用することで、シートの利用者(シートの作成者とは同一とは限らない)の操作で表示が変更されてしまうことを防ぐことができる。ただし、文字列を返す関数であるため、SUM関数を使うときには注意が必要だ。
その一方で、FIXED関数やYEN関数/DOLLAR関数を数式に記したセルをSUM関数で合計しても、正しい合計値は得られない。SUM関数は、これらの関数が返す文字列を数値として扱えないからだ。
切り捨て処理は、消費税の登場とともに比較的よく使われるようになった処理だ。Excelには、切り捨て処理を行う関数として、「ROUNDDOWN関数」「TRANC関数」「INT関数」の3種類がある。
小数点以下の処理を行う場合、一般的にはROUNDDOWN関数を使うべきとされている。しかし、TRANC関数でも実用上の問題はなく、さらに小数点以下を全て切り捨てる場合には、関数の第2引数である<位置>を省略できるというメリットがある。これに対して、ROUNDDOWN関数で小数点以下を切り捨てる場合、関数の第2引数として必ず「0」を指定しなければならない。ROUNDDOWN関数の使い方は、前述のROUND関数と同じである。
もう1つのINT関数は、意味としては対象の数値に最も近い整数を返す関数で、事実上小数点以下の数値を全て切り捨てる。後述するように負数のときに人間の直感に反すると感じる人が多いので注意が必要だ。
切り上げ処理は、必要量から商品の購入単位を決めるような処理で使われることが多い。例えば、1.4メートルのケーブルが必要な場合、販売単位が1メートルなら2メートル購入する必要がある。これを四捨五入して1メートルにしてしまうと必要量を満たすことができない。
Copyright© Digital Advantage Corp. All Rights Reserved.