dimesum

首页 / 博客 / 金钱

金钱

分账计算器的四步方法:把清单变成净额

· 阅读约 7 分钟 · · 审阅 Jagadeep Sai

四笔支出、四个人、一个周末:分账计算器用这套方法把杂乱清单变成每个人的净额和清账所需的最少转账

你手里有一份支出清单,付款的人不止一个。你想知道每个人的净额,而且不想把账算两遍。分账计算器一次就能算完,而它背后的方法值得了解,因为大多数人一直做对,直到第三步才出错。下面是我们在 Dimesum 分账的方式,一个数字一个数字来,并附上一个你可以照着页面上的数字自己重算的示例。

四个步骤

一共四步,顺序就是全部诀窍。先合计每个人付了多少。再合计每个人该分摊多少。用前者减去后者,得到每个人的净额。

然后,也只有到这时,才算出谁该付给谁。那些先急着转账的人,最后会把钱倒来倒去两遍,因为他们在知道净额之前就开始结算。算净额是慢的部分,结算是快的部分,所以按这个顺序来,最后一步几乎自己就写好了。如果你想单独看清最后这一步的全貌,我们在 群组结算 里从头到尾走了一遍。

第一步:每个人付了多少

把每个人实际掏出来的钱加起来。这里没有什么花哨的:就是给每个人做一笔流水合计,群组支出计算器会随时帮你记着这笔账,所以那趟没人记得坐过的出租车,仍然会记到付钱的人头上。诀窍是在花钱的当下就记下每一笔,而不是三天后凭记忆。

看看我们的示例。

示例:四个人的一个周末。Lucas 付了 ¥320 的房费。Aiko 付了 ¥96 的餐费。

Sofia 付了 ¥48 的油费。Tomas 什么都没付。加起来这一组一共花了 ¥464:¥320 加 ¥96 加 ¥48 就是 ¥464。

记住这个数,它后面还会出现两次。Tomas 什么都没付并不是需要解决的问题。那只是他"已付"一栏里的一个零,方法对待它就和对待任何其他数字一样。

第二步:每个人该分摊多少

现在决定每笔支出怎么分,再把每个人在所有支出上该分摊的数目合计起来。可以平均分,可以按确切金额分,可以按比重分,也可以像餐厅账单那样一项一项分,比如有人没喝酒时常常需要这样。这个选择在你。我们按你选的方式来算;我们不替你决定怎样才算公平。

在我们的周末里,三笔支出大家都平均分摊。所以 ¥464 分成四份:¥464 除以 4 就是 ¥116。每个人分摊 ¥116,Tomas 也一样,因为房子、吃的和油他都一起用了,尽管这些他一分钱都没付。

这就是平均分摊时该怎么算分账:把花的钱合计起来,除以人数,你就得到了每个人在任何人结算之前应分的份额。房租也是同样的算法,直到有人住了更大的房间,那时份额就按设计不再相等了;这种情况我们在和室友分摊房租里讲了。

第三步:算净额,以及大家都会在这里犯的错

出错就出在这里。用每个人已付的钱减去他该分摊的钱。这个差额就是他的净额,也是唯一决定谁转账的数字。

Lucas 付了 ¥320,该分摊 ¥116,所以别人欠他 ¥204。Aiko 付了 ¥96,该分摊 ¥116,所以她欠 ¥20。Sofia 付了 ¥48,该分摊 ¥116,所以她欠 ¥68。Tomas 付了 ¥0,该分摊 ¥116,所以他欠 ¥116。

*四个人的一个周末,算完净额。*

四个人的一个周末,算完净额
成员已付应摊净额
Lucas¥320¥116别人欠他 ¥204
Aiko¥96¥116欠 ¥20
Sofia¥48¥116欠 ¥68
Tomas¥0¥116欠 ¥116
合计¥464¥464¥0

问题不在减法。而在太早开始下一步。有人在还没算完净额时就试图把付钱的和欠钱的两两配对,或者一笔一笔地各算各的净额,然后再试着把这些碎片拼起来。

两种做法都带来更多工作和更多错误。先把整份清单算完净额,得到每个人的一个数字,这样每一个数字都保持可核对:Lucas 别人欠他 ¥204,而 Aiko、Sofia、Tomas 欠 ¥20、¥68 和 ¥116,加起来正好回到 ¥204。

第四步:谁付给谁,用最少的转账

只有到这时才动钱。目标是用最少的转账把每一笔余额清掉,而不是每一笔欠款都转一次。转账越少,要输入的金额越少,要记的越少,出错能藏身的地方也越少。

笨办法是让每个人和每个人都结清。四个人有六对,所以"每个人跟每个人都结算"的做法会用上六次转账,其中大多数彼此抵消。你不需要它们。

在这个周末里,所有欠钱的人都欠着那唯一被欠钱的人,所以整组只用三次转账就清了:Tomas 转给 Lucas ¥116,Sofia 转给 Lucas ¥68,Aiko 转给 Lucas ¥20。三笔付款,一共 ¥204,每一笔余额都归零。这就是一次好的群组结算所追求的样子:用最少的一组转账让谁都不再欠谁,一次性从净额算出,而不是当场讨价还价。

核对你的答案:那些必须为零的合计

当三个合计都如它们应有的那样得出结果时,分账就是对的。已付总额等于应摊总额:¥464 和 ¥464。净额加起来为零:别人欠 Lucas 的 ¥204,对上其他人欠的 ¥20、¥68 和 ¥116,是 ¥0。

而转账加起来等于所欠的钱:¥116 加 ¥68 加 ¥20 就是 ¥204,正好是别人欠 Lucas 的数。如果这三项里有任何一项对不上,就是某个数字错了,你该回头去找的是那个数字,而不是那段友情。

这就是为什么我们底层保留一份复式记账账本。在复式记账里每一笔金额都记两次,一次是它离开时,一次是它到达时,所以只有算术对得上,账才平得了。我们的账本是只追加的,也就是说更正是一条新记录,绝不是悄悄覆盖。当一笔分账有变动时,这条修改会完整重述它的分法,所以你总能看到什么变了、什么时候变的,而不是发现旧的总额被擦掉了。

当清单里有两种货币时

有时出租车是 ¥30,拉面那顿是 $40,现在清单里就有了两种货币。规则很短:绝不要把不同货币加到一起。为每种货币各留一笔余额,用上面的四步各自算净额,只在有人结算的那一刻才换算。

所以这一组并排带着一笔人民币余额和一笔美元余额,各自单独算净额,各自对照它自己的零来核对。你可以各用各的货币结算,或者约定一个汇率,在结算时换算一次。汇率会变,所以你今天用来换算的数字,和上周的数字不一样:汇率按小时变动,而 ISO 4217 下的标准货币代码之所以存在,正是为了让 CNY 和 USD 永远不会被悄悄搞混。把它们混进一个总额里,正是多货币金额错误开始的地方。

让分账计算器替你记账

方法就是四步,现在你可以为任何一个周末、任何一顿饭、任何一间合租房亲手算一遍。分账计算器只是每一次都替你跑一遍,还帮你记着那顿拉面,省得你自己记。如果你在权衡各种选择,我们比较了各款分账应用,还为合租房比较了房租分摊应用,看每一款做什么、不做什么。

这一切背后的数字也值得一看:这是我们一再回看的分账统计数据。当你准备好让别的东西来记账时,打开 Dimesum

常见问题

一群人怎么算分账?

分四步走,顺序不要乱。先合计每个人付了多少。选定每笔支出怎么分之后,再合计每个人该分摊多少。用前者减去后者,得到每个人的净额。然后再动钱,只按这些净额来结算。先把账算完再结算,才不会让你付两遍。

怎么算出每个人的净额?

用那个人已付的钱减去他该分摊的钱。结果为正,说明这一组欠他;结果为负,说明他欠这一组。在我们的周末里,Lucas 付了 ¥320、该分摊 ¥116,所以别人欠他 ¥204,而 Tomas 付了 ¥0、该分摊 ¥116,所以他欠 ¥116。结算只看这个,别无其他。

结清一组账最少要转几次账?

就是能清掉每一笔净额的最小一组付款,通常远少于每笔欠款各转一次。四个人能凑成六对,但我们的周末只用三次转账就结清了,因为所有欠钱的人都欠着同一个人:Tomas 转 ¥116,Sofia 转 ¥68,Aiko 转 ¥20,合起来正好是别人欠 Lucas 的 ¥204。

怎么核对分账算得对不对?

三个合计必须算得干净。已付总额应等于应摊总额:在我们的周末里,两者都是 ¥464。净额加起来应为零:别人欠 Lucas 的 ¥204,对上其他人欠的 ¥204。转账加起来应等于所欠的钱:¥116 加 ¥68 加 ¥20 就是 ¥204。任何一项对不上,就是某个数字错了。

支出涉及两种货币时怎么分账?

把它们分开。绝不要把不同货币加进一个总额;为每种货币各留一笔余额,用同样的四步各自算净额。只在有人结算时才换算,用一个约定好的汇率,因为汇率天天在变。所以一趟 ¥30 的出租车和一顿 $40 的晚餐,在真正动钱的那一刻之前,一直放在各自独立的账上。