跳转至主要内容
Donget
下载
全部文章

旅行结束后谁欠谁多少钱?AA 算账的三步法(附例子)

算谁欠谁:先给每个人算出一个净余额(已付减去应摊),再让欠得最多的人付给被欠得最多的人,重复到所有人归零。

The Donget team 2 分钟阅读

旅行结束了。大家都回了家,照片也发进了群里,随之而来的还有没人想手算的那个问题:到底谁该给谁多少钱?小雅付了民宿,阿伟付了租车,莉莉付了一顿晚饭,子豪没去那顿晚饭,却买了一大堆吃的。在脑子里加,不出一分钟就会乱。

有一个方法永远管用,只需要减法,而且不管谁来算,答案都一样。算谁欠谁,先把每个人付出的钱和他应摊的份额各自加起来,相减得到每人一个净余额。所有净余额之和永远是零。然后让欠得最多的人付给被欠得最多的人,重复,直到每个人归零。

AA 算账,先从一张清单开始

每一笔共同支出,你需要知道四件事:这是什么、谁付的、付了多少、谁分摊。最后一列最容易被忘记。有个朋友没去的那顿晚饭,不是五个人分;只有三个人坐的游船,也不是全组分。

把它们写在同一个地方:备忘录、表格,或者一个 App。如果支出涉及不同的币种,先把每一笔换成同一种货币,用付款当时适用的汇率;跨币种分摊账单解释了为什么。

第 1 步:算出每个人的应摊份额

对每一笔支出,在分享它的人之间分。大多数旅行开销在这些人之间均分,不过同一个方法也适用于任何分法:指定金额、百分比或份数,分摊开支的五种方式里都有。关键在于,每笔支出的各份加起来要等于这笔钱。

然后,对每个人,把他在整趟旅行里的各份加起来,这就是这趟旅行花了他多少。

第 2 步:净余额 = 已付 − 应摊

对每个人,把他替大家付的钱全部加起来,再减去他的应摊总额:

净余额 = 已付总额 − 应摊总额

正数表示大家欠他钱,负数表示他欠大家,零表示他已经两清。

现在检查一下:**所有余额加起来必须正好是零。**每一元有人付了,就是有人的一份,所以付出的总额和所有份额的总额是同一个数。如果加起来不是零,就是哪笔支出或哪一份错了,没改好之前不要结算。

第 3 步:让欠得最多的人付给被欠得最多的人

这就是“谁欠谁”的计算本身,也是真正把群里的账结清的一步:

  1. 找出余额最负的人和余额最正的人。
  2. 欠款的人付给被欠的人两个数里较小的那个。至少有一个人因此归零。
  3. 用剩下的人重复,直到每个余额都是零。

每笔转账至少让一个人归零,所以 n 个人的群最多需要 n − 1 笔转账。这样为什么行得通、为什么钱可能要付给一个从没替你付过钱的人,债务简化是怎么运作的里讲了。下面是实际操作。

算一笔账:厦门之行结束后谁欠谁

小雅、阿伟、莉莉、子豪和欣怡去厦门玩了个长周末。欣怡晚到一天,错过了第一天的自驾;子豪没吃海鲜晚餐;只有小雅、莉莉和欣怡坐了游船。

支出付款人金额分摊的人每人份额
民宿,3 晚小雅3,750 元五人750 元
租车和油费阿伟1,600 元小雅、阿伟、莉莉、子豪400 元
海鲜晚餐莉莉1,300 元小雅、阿伟、莉莉、欣怡325 元
买吃的子豪750 元五人150 元
游船欣怡825 元小雅、莉莉、欣怡275 元
景点门票阿伟375 元五人75 元
合计8,600 元

**第 1 步和第 2 步一起算。**小雅的份额是 750 + 400 + 325 + 150 + 275 + 75 = 1,975 元。子豪的是 750 + 400 + 150 + 75 = 1,375 元,因为他没吃那顿晚餐,也没坐游船。其他人同样算下来:

人已付应摊净余额
小雅3,750 元1,975 元+1,775 元
阿伟1,975 元1,700 元+275 元
莉莉1,300 元1,975 元−675 元
子豪750 元1,375 元−625 元
欣怡825 元1,575 元−750 元
合计8,600 元8,600 元0 元

检查:1,775 + 275 − 675 − 625 − 750 = 0。小雅和阿伟合计被欠 2,050 元,莉莉、子豪和欣怡正好欠 2,050 元。

五个朋友旅行后的净余额柱状图,两根在线以上,三根在线以下,演示怎么算谁欠谁:绿色柱和珊瑚色柱的总量相同,所以余额之和为零

**第 3 步。**欣怡欠得最多(−750 元),小雅被欠得最多(+1,775 元):欣怡付给小雅 750 元,小雅还被欠 1,025 元。接着莉莉(−675 元)付给小雅 675 元;小雅还被欠 350 元。轮到子豪(−625 元),小雅仍是最大的债权人:子豪付给小雅 350 元,子豪还剩 −275 元。现在只有阿伟还被欠着:子豪付给阿伟 275 元。

四笔转账,每个人都归零。如果写成一张张单独的欠条,从每个分摊了某笔支出的人到付款的人,这趟旅行有二十张欠条,把每一对朋友之间互相抵销以后,也还有十张。

五个朋友旅行后的四笔转账箭头:三个人付给订了民宿的朋友,其中一个人还付给租车的朋友

普通方法比最少笔数多出转账的时候

“最大配最大”快,而且从不需要超过 n − 1 笔转账,但它可能错过更短的路。假设五个朋友的余额是:阿杰 +200 元,小凯 +150 元,乐乐 −100 元,美琪 −100 元,小诺 −150 元。

最大配最大要四笔:小诺付给阿杰 150 元,乐乐付给小凯 100 元,美琪还得付给小凯 50 元、付给阿杰 50 元。但小诺欠的钱恰好等于小凯被欠的钱。先把他们配成一对,剩下的就简单了:小诺付给小凯 150 元,乐乐付给阿杰 100 元,美琪付给阿杰 100 元。三笔转账。

所以在第 3 步之前,先找有没有恰好吻合的组合,也就是某个欠款人欠的钱正好等于某个债权人被欠的钱,先把这些对子结掉。在朋友的小群里,这一个检查通常就能走到最少的转账笔数。

会让计算出错的几个错误

  • **把付款人从他自己付的那笔里漏掉。**小雅付了民宿,但她也住了;她那 750 元的份额要算。
  • **所有东西都在所有人之间分。**没去那顿晚饭的人,在那一笔里的份额应该是零,而不是五分之一。
  • **把还款记成一笔新支出。**两个朋友之间的转账只改变这两个人的余额,它不是大家共摊的费用。
  • **在加起来不是零的总数上结算。**先把清单改对。

转账列出来以后,转钱是容易的部分;怎么开口,结清账目时怎么不尴尬讲了。

Donget 在其中的位置

每当有人添加一笔支出,Donget 就把这三步做一遍。付钱的人设好付款人,选出谁分摊,分法有均分、金额、百分比或乘数,没去那顿晚饭的人直接不选就行。余额页签显示每个成员的净额,合计已经是零。支出可以用任何币种,并按每笔上保存的汇率换算成群组的货币。

最后,结算给出最少的转账笔数,把债务合并起来,所以你付钱的对象可能不是替你付过钱的那个人,已付把每笔转账在发生时记下。App 不转钱,它只保存一份人人都能核对的清单,而记清谁欠我钱说的也就是这回事。如果你还在挑 App,旅行分账 App 哪个好把选项摆了出来。

常见问题

旅行结束后怎么算谁欠谁多少钱?

把每一笔支出连同付款人和分摊的人列出来。对每个人,用已付的钱减去应摊总额得到净余额。然后让欠得最多的人付给被欠得最多的人,重复到所有人归零。

朋友没有全程参加,费用怎么分?

每笔支出只在分享它的人之间分。没去那顿晚饭的朋友在那一笔里份额是零;他的净余额仍然是已付减去实际承担的份额。

为什么所有人的余额加起来永远是零?

每一元有人付了,就是有人的一份,所以付出的总额等于份额的总额。如果余额加起来不是零,说明有笔支出录错了,或者漏了一份。

一个群组最多需要几笔转账才能结清?

最多比余额不为零的人数少一笔。五个朋友最多四笔转账,常常更少。

我一定要还给替我付过钱的那个人吗?

不一定。只有你的净余额算数,所以你可能要付给一个从没替你付过钱的人。两种方式下你最后领先或落后的数目是一样的。

如果大家用不同的币种付款怎么办?

先把每笔支出都换算成同一种货币,按付款当时适用的汇率,然后再走同样的三步。

结论

算谁欠谁就三步:份额、净余额,然后从欠得最多的人配到被欠得最多的人。付款前先检查余额之和是不是零,先找恰好吻合的组合,五个人的群四笔或更少的转账就能结清。

免费下载 Donget,趁旅行还在继续,让余额自己加起来。

几秒结清账目,多年还是朋友。

加入那些已经甩掉表格的小群。免费下载 Donget。