旅行 AA 轮流垫付,回来怎么算:从几十笔账到最少几笔转账

· 约 3 分钟 💸 AA 分账

旅行 AA 算不清,几乎从来不是因为谁想占便宜,而是账太碎:

  • 机票是一个人统一订的
  • 民宿是另一个人付的,但有人晚到了一天
  • 吃饭轮流买单,有一顿有人没去
  • 酒水只有一半人喝
  • 打车谁顺手谁付

回来一看,十几个人情账缠在一起。下面用一个完整例子走一遍。

一个例子:五个人,六笔账

A、B、C、D、E 五个人出去玩四天三晚。E 晚到一天,只住了两晚;C 不喝酒,也没去那个收费景点。

账目谁付的金额算谁的
机票A5000五人均分,各 1000
民宿 3 晚B2800按人晚:ABCD 各 600,E 400
几顿饭C1500五人均分,各 300
酒水D400除 C 外四人,各 100
打车E300五人均分,各 60
景点门票A800除 C 外四人,各 200

民宿那一行值得多说一句:3 晚 × 4 人 + 2 晚 × 1 人 = 14 个人晚,2800 ÷ 14 = 每人晚 200。按人头均分的话 E 要摊 560,等于为一晚没住的房多付了 160。

笨办法:每笔账各转各的

最直觉的做法是每一笔都让参与的人转给付款人:机票 4 个人转给 A,民宿 4 个人转给 B,吃饭 4 个人转给 C……

这样算下来是 22 笔转账,而且 A 给 C 转、C 又给 A 转,互相抵消的钱来回走了好几趟。

正确的办法:先轧净额

对每个人算一个数:净额 = 自己垫付的 − 自己该摊的。

垫付该摊净额
A58002260+3540
B28002260+540
C15001960−460
D4002260−1860
E3002060−1760

正数是别人欠他的,负数是他欠别人的。所有人的净额加起来一定是 0:+3540 + 540 − 460 − 1860 − 1760 = 0。这是一个免费的校验,加起来不是 0,说明有一笔账记错了。

到这一步,谁欠谁的具体来源已经不重要了。D 欠的 1860 是欠「这个团」的,不是欠某个具体的人。

再配对:欠得最多的先还给被欠得最多的

  1. D 欠 1860,A 被欠 3540 → D 转 A 1860,A 还剩 1680 没收回
  2. E 欠 1760,A 还被欠 1680 → E 转 A 1680,A 清零,E 还欠 80
  3. C 欠 460,B 被欠 540 → C 转 B 460,B 还剩 80
  4. E 还欠 80 → E 转 B 80,全部清零

4 笔,结清。 22 笔变 4 笔。

为什么一定能在「人数 − 1」笔之内结清?每转一笔,至少有一个人的净额变成 0,五个人最多 4 笔就全清了。

这个算法的两个边界

它不保证是数学上最少的。 如果恰好有几个人的欠款加起来正好等于某一个人的应收(比如 D 和 E 加起来正好等于 A),本可以少转一笔,而按大小顺序配对的办法未必能找到这种组合。真正求「最少笔数」是一个组合搜索问题,人多了算不动。实践中贪心配对已经能把二十几笔压到四五笔,剩下那一笔的差别不值得在意。

它会改变「谁给谁转」。 上面例子里 C 的机票钱明明是 A 垫的,最后却转给了 B。有人会觉得别扭:「我欠的是 A,凭什么给 B」。这时候要解释的是:净额一样,转给谁都一样,每个人付出的总数和按笔转完全相同,只是少转了很多趟。

三个最常见的争执点

晚到早走。 住宿按人晚分,交通按实际乘坐的段分。原则是「没享受到的不摊」。

不喝酒、没去某个项目。 每一笔只摊给参与的人。不要事后在总账上「给他减个两百」:减多少说不清,而且会引出下一个人的「那我呢」。

零头。 100 元三个人分是 33.33 × 3 = 99.99,差 1 分。约定好让付款人或某个人吸收,保证每笔账各人摊的加起来恰好等于总额,否则净额加起来不是 0,最后总有人收不齐。

什么时候该用工具

两三个人、三五笔账,手算或者群里接龙就够了。下面几种情况建议用专门的分账工具:

  • 人数 ≥ 4,或者账目超过十几笔
  • 有人晚到、有人不喝酒,需要按笔调整参与人
  • 有几笔是多个人凑钱付的
  • 行程跨好几天,需要当天记、最后统一算

这时候工具的价值不在于算法有多高明,而在于每一笔当场记下来:付款人、金额、参与人三项当时都清楚,隔一天就开始模糊了。

❓ 常见问题

几个人轮流垫钱,最后最少要转几笔?

最多「人数 − 1」笔就一定能结清,经常还能更少。做法:(1) 先算每个人的净额 = 自己垫付的总额 − 自己该摊的总额,正数是别人欠他、负数是他欠别人,所有人的净额加起来恰好等于 0;(2) 欠钱最多的人先转给被欠最多的人,转到一方清零为止;(3) 重复,直到所有人都是 0。每转一笔至少让一个人清零,所以 5 个人最多 4 笔。对比:如果每一笔账都各转各的,5 个人一周下来很容易是二十多笔。

有人晚到一天、早走一天,住宿怎么分?

按「人晚」分,不按人头分。例:民宿 3 晚共 2800 元,4 个人住满 3 晚、1 个人只住 2 晚,合计 4×3 + 2 = 14 人晚,每人晚 200 元。住满的摊 600,晚到的摊 400。为什么不按人头均分:均分是每人 560,晚到的人为一晚没住的房多付 160——行程越长、晚到越久,差距越大。例外:如果房间是按整套订的、多一个人少一个人价格不变,也可以约定「订了就均摊」,但这句话要在订房前说。

有人不喝酒、有个景点没去,要单独算吗?

要,这是旅行 AA 最常见的争执来源。原则:每一笔账只摊给真正参与的人。不喝酒的人不摊酒水,没进那个景点的人不摊那张门票。操作上:记账时每一笔都勾一下「这笔算谁的」,默认全员,有例外就去掉。不建议事后在总账上「给他减个两百」——减多少说不清,而且下一个人会问「那我那天没坐缆车怎么不减」。

用公共钱包(大家先凑一笔钱)是不是更省事?

人少、行程短、消费均匀时更省事;否则轮流垫付 + 最后结算更准。公共钱包的问题:(1) 有人不喝酒、有人没去某个景点时,公共钱包很难照顾到,只能全员均摊;(2) 钱不够要追加、剩了要退,又是一轮转账;(3) 拿钱包的那个人压力很大。轮流垫付的问题:账多了容易乱,所以必须当天记。折中做法:餐饮、打车这类全员均摊的小额走公共钱包,机票、住宿、门票这类参与人不一样的大额单独记、最后统一结算。

算出来有几分钱除不尽怎么办?

事先定一个规则,让某个人吸收零头。例:100 元 3 个人分,每人 33.33,还差 0.01。常见约定:(1) 零头算给付款人(他少收 1 分);(2) 零头轮流算给参与人中的某一个。关键是总数必须对得上——每个人摊的钱加起来必须正好等于这笔账的金额,否则所有人的净额加起来不是 0,最后一定有一个人收不齐或者多收了。用工具算时,这一步应该自动完成。

换汇、刷外币卡的账怎么记?

统一按实际扣了多少人民币记。理由:(1) 刷卡当天的汇率和换汇的汇率不同,再加上手续费,用「标价 × 汇率」算出来的数和实际扣款总差一点;(2) 大家最后用人民币结算,记人民币最不容易扯皮。操作上:当时先记外币金额和备注,回国后对着信用卡账单把人民币金额补上。现金换汇的部分,按当初换汇的实际汇率折算。

💸 打开 AA 分账 聚餐/旅游账单分摊·按选定参与人均摊·智能合并转账·一键复制结算清单 →
猫猫牛分账微信小程序码

微信小程序 猫猫牛分账 · 多人 AA 记账

一起出去玩、合租、聚餐,谁垫了钱随手记一笔。自动算出谁该给谁多少、最少转几笔就能结清,没装小程序的人也能记进来。

📷 微信「扫一扫」左侧小程序码即可打开

👆 长按上方小程序码,识别打开「猫猫牛分账」

看看它能做什么 →

📖 同一工具的其他教程

垫付的钱怎么催才不尴尬:时间点、群里还是私聊、只发账单不提钱
替朋友垫了钱,开口要比垫钱难得多。这篇讲清为什么多数人不是赖账而是忘了、什么时候催最自然、群里催和私聊各适合什么情况、为什么「发账单」比「说钱数」体面,以及对方说转了你却没收到时怎么核对。
几个人凑钱付了一笔,AA 账怎么记:多人合付为什么不能拆、不能先私下转
民宿房费三个人一起刷、包车两个人凑、给朋友的礼物大家分头出——一笔钱有好几个付款人时,最常见的两种记法(拆成几笔、先私下转一轮再记成一个人付)都会埋雷。这篇用完整例子讲清多人合付怎么记、净额怎么算,以及它和「一个人代付」的区别。
合租怎么分钱才不伤和气:房租按面积、水电按人天,有人中途搬走怎么算
合租的账难在「不均匀」——主卧次卧大小不一样、有人常出差、有人月中搬走又有人月中搬进来。这篇讲清房租按面积加公摊怎么拆、水电网费按人还是按房间、搬进搬出按天折算,以及押金和冰箱路由器这类公共物品离开时怎么处理。
有人不装 App、不进群,AA 账怎么把他算进来:代记、按家庭算份数、事后认领
多人分账最常卡住的一步不是算法,是「总有一个人不肯装」——长辈、小孩、只来一天的朋友、嫌麻烦的同事。这篇讲清不在线的人怎么记、一家人按户还是按人算、谁替他收钱付钱,以及代记的账怎么做才让人信得过。