会計を終えて、その場で1人分を出す。ところがレシートの合計と数十円ずれる、同じ数字を入れたのに別のアプリだと答えが違う、精算のあとで1人だけ端数を多く払っている——割り勘でよく起きるこの手のずれは、計算間違いではなく足す順序の違いであることがほとんどです。
税、チップ、カード手数料、自分用の買い物、誰かの立て替え。会計に混ざるこれらを「どの土台に、どの順で乗せるか」で結果は変わります。ここでは割り勘アプリ SplitBill_EX の計算式を材料に、順序が効く場面と効かない場面を切り分けます。式そのものの話なので、電卓や表計算で割り勘する場合にもそのまま当てはまります。
同じ料率でも、どこに乗せるかで答えが変わる
自分用の買い物を抜くと、その分の税も一緒に抜ける
立て替えは頭数で割らない
誰が誰に払うかは、金額が決まっても一通りではない
途中で丸めないほうが、最後に合う
為替は入力した時点で固まらない
早見表
1,000円の会計に外税10%とチップ20%が付くとします。税もチップも税抜きの1,000円に並べて掛ければ、100円と200円で合計1,300円。チップを税込みの1,100円に重ねると220円になり、合計は1,320円です。料率はどちらも同じなのに、20円ずれます。
このアプリは前者、つまり税とチップを同じ土台に並べて掛け、チップには税をかけない方式です。一方で「クレカ(換金)手数料」だけは、税とチップを両方乗せたあとの合計に掛けます。カード会社が実際に請求する順序に合わせているためで、チップなしの1,000円・外税10%・カード3%なら、3%は1,100円に掛かって33円、合計1,133円。チップが付いていれば、その手数料はチップ分にも掛かります。なお、カード手数料と両替手数料は同じ土台に同じように掛かり、明細でも1行で届くことが多いため、このアプリでは1項目に統合されています。
ここで大事なのは、パーセント同士なら順序は結果を変えないということです。10%を掛けてから3%を掛けても、3%を掛けてから10%を掛けても1,133円。掛け算は順番を入れ替えても同じだからです。金額が動くのは二つの場合だけです。ひとつは土台をずらしたとき(先ほどの1,300円と1,320円)、もうひとつは定額が混ざったときです。
定額の手数料は、土台がいくらであっても金額が変わりません。5,000円・外税10%・カード定額300円なら、税を計算したあとに300円を足して5,800円。もし300円を先に足してから税を計算すると、300円にも税が掛かって5,830円になります。定額は最後に足すのが実際の請求に近く、この方式では定額の手数料に税が掛かることはありません。
同じレシートに、自分だけが買った土産が混ざっている。そのぶんを割り勘から外すのは当然ですが、ここに落とし穴があります。外した瞬間、その品は税の計算からも抜けるからです。
5,000円の会計、外税10%、自分用の買い物が1,000円だとします。まず1,000円を引き、残り4,000円に10%を掛けるので、割り勘の対象は4,400円、2人なら1人2,200円。ここに外した1,000円をそのまま足すと、支払総額は5,400円になります。ところが実際のレシートは5,000円の10%増しで5,500円。差の100円は、外した1,000円に本来かかっていた税です。
だからこの手の除外欄には「その品にかかる税やサービス料」を入れ直す欄が付いています。加算率に10%と入れると外した分は1,100円になり、支払総額は5,500円でレシートと一致します。同じ10%を二度打つのは冗長に見えますが、外した品と共有分で税率やサービス料が違う場面(酒だけ税率が違う、持ち帰りだけ軽減される)があるため、別々に持つ必要があります。表計算で自作するときも同じで、除外分は「税込みの実額」で引くのが安全です。
なお、除外額を打ち間違えて会計より大きくしても、割り勘の対象は0で止まります。マイナスの割り勘が生まれないようにするための処理です。
「電車代を立て替えた」「先にホテル代を払った」といったお金は、割り勘の計算を一切通りません。貸した人にそのまま足し、借りた人からそのまま引くだけです。10米ドルを立て替えて日本円で精算し、1ドル150円なら、貸した人に+1,500円、借りた人に−1,500円が動きます。人数では割りません。
理屈は単純で、立て替えは「割り方の話」ではなく「すでに動いたお金の付け替え」だからです。小計にも税にも触らせない位置に置くことで、税や手数料の土台を汚さずに済みます。立て替えにも加算率を付けられ、計算式は除外分とまったく同じです(1,000円の立て替えに10%なら1,100円、500円に8%なら540円が動きます)。
全員の過不足が出たあと、送金を減らす定番のやり方が「いちばん多く受け取る人と、いちばん多く払う人を突き合わせる」方法です。差し引きして残った側を次の相手に回します。素直で人が読んで納得しやすい反面、最少の送金件数であることが保証された手順ではありません。
そして、金額が同点で並ぶと組み合わせが決まりません。+2,000が2人、−2,000が2人という状況で同じ計算を8回走らせると、支払い2件・各2,000円という結果は毎回同じでも、誰が誰に払うかは5回と3回に分かれました。並べ替えの決め手が金額しかないためです。
実用上の判断としては、合計と件数が同じなら、誰が誰に払うかは好きに決めてよいと考えて差し支えありません。アプリが出した相手と手元のメモが食い違っても、どちらかが間違っているとは限らないということです。
1,000円を3人で割ると333.333…。3倍しても1,000円には戻りません。だからこの計算では途中で一切丸めず、丸めるのは送金1件ごとと、画面表示やCSV書き出しといった出力のときだけで、方式は四捨五入です。表計算で1人分を四捨五入してから人数倍すると合計が合わなくなるのは、これと逆のことをしているからです。
小さすぎる差は送金にしません。しきい値は精算通貨の最小単位の半分で、米ドルなら0.005、円なら0.5です。+0.004ドルと−0.004ドルのずれは、送金0件として消えます。
もうひとつ、金額を小数として持つと壊れる、という問題があります。1234.56という値は保存と読み出しを経ると1234.55999999999979…のような値に化けることがあり、旅行1回分の会計を重ねるとずれが表に出ます。金額は小数ではなく文字列として持ち、10進数のまま計算するのが対策です。
海外での割り勘は、明細を現地通貨のまま保存し、精算のたびに換算します。つまりレートが変われば過去の明細の円換算も変わります。レートの取得は起動時に1回と、設定画面の更新ボタンだけ。取得に失敗しても計算は止まらず、前回取れた値で続け、表示だけが「最新」から「保存済みレート」に下がります。一度も取得できていなければ「内蔵レート」で動きます。
レートが本当に焼き付くのは最終精算で締めた瞬間ですが、締めた記録を復元するときは、手元が「内蔵レート」のときだけ保存されたレートに戻り、それ以外は今日のレートが優先されます。旅行中の割り勘では、いつのレートで締めたのかを金額と一緒に書き残すのが安全です。
| 条件 | 出る答え | 順序や条件を変えたら | なぜ |
|---|---|---|---|
| 1,000/外税10%/チップ20% | 1,300 | 1,320(チップを税込1,100に重ねた場合) | 税とチップを同じ土台に並べるか、重ねるかの違い |
| 1,000/外税10%/チップなし/カード3% | 1,133(3%は税とチップを乗せた1,100に掛かる=33) | 1,133(カードを先に掛けても同額) | パーセント同士は掛け算なので順序で変わらない |
| 5,000/外税10%/カード定額300 | 5,800(5,000+税500+300) | 5,830(300を税の前に足した場合) | 定額は土台を無視するので、先に足すと課税対象が増える |
| 5,000/外税10%/除外1,000/加算率0% | 支払総額 5,400 | 実際のレシートは 5,500 | 除外を先に引くので、外した1,000に税が掛からない |
| 5,000/外税10%/除外1,000/加算率10% | 支払総額 5,500/割り勘対象 4,400/1人 2,200 | レシート 5,500 と一致 | 外した分の税を除外側で入れ直したため |
| 会計1,000/除外5,000(打ち間違い) | 割り勘対象 0/1人 0 | 制限がなければ負の割り勘対象 | 除外額は会計額で頭打ちにしている |
| 10米ドルを立て替え/精算は円/1ドル150円 | 貸した人 +1,500/借りた人 −1,500 | 頭数では割られない | 立て替えは割り勘の計算を通らない付け替え |
| 1,000を立て替え/加算率10% | 1,100 が動く | 除外分とまったく同じ式 | 立て替えと除外は同じ加算のしかた |
| +0.004米ドルと−0.004米ドル | 送金 0 件 | 円ならしきい値は0.5円 | 最小単位の半分未満は送金にしない |
| 1,000を3人で割る | 333.333… | 3倍しても1,000には戻らない | 途中は丸めず、送金1件ごとと出力時だけ丸める |
| +2,000/+2,000/−2,000/−2,000 | 送金2件・各2,000(毎回同じ) | 誰が誰に払うかは実行ごとに入れ替わる(8回中5回と3回) | 並べ替えの決め手が金額だけで、同点の順位が決まらない |
割り勘でもめる原因の多くは、金額そのものではなく「どの土台に乗せたか」の食い違いです。税とチップを並べたのか重ねたのか、除外した品の税を入れ直したのか、立て替えを割ってしまっていないか。この三つを揃えれば、誰が計算しても同じ数字になります。