AA 分账计算器

免费在线 AA 制计算器:记下谁付了什么,自动算出谁该给谁多少钱,而且转账次数最少。支持平均分、按份数、指定金额,聚餐 AA、旅游分账、合租分摊都能用;可以用分享链接发到微信群,无需注册,数据不上传。

  • 自动算谁该给谁
  • 转账次数最少
  • 平均・按份数・指定金额
  • 分享链接发到群里

成员

    先添加一起分账的人。

    账目

    分摊方式
    哪些人分摊

        还没有账目。

        结算

        成员已付应付差额

        差额为正表示别人要还他,为负表示他要付钱。

          账本自动保存在这个浏览器里,不会上传;分享链接会把整个账本(名字和金额)放在网址里,拿到链接的人都能看到。

          🔒 所有计算都在你的浏览器内完成,数据不会上传到任何服务器。

          什么时候会用到

          • 聚餐 AA:一桌人吃饭由一个人先买单,有人没喝酒、有人只吃了一半,用“按份数”或取消勾选就能算出每人该付多少,不用在饭桌上按计算器。
          • 旅游分账:几天行程里大家轮流付酒店、包车、门票,每笔记下谁付的,回程前看“结算”就知道谁该转给谁,转账笔数最少。
          • 合租分摊:房租、水电、宽带每月由不同的人交,房租可以按房间大小设份数(比如主卧 1.5、次卧 1),月底一次算清。
          • 团购分账:一个人先付了整笔团购款,每人买的数量不同,用“指定金额”填每个人的金额,合计会自动检查是否和总额一致。

          使用说明

          1. 在“成员”里输入一起分账的人,点“添加”;用逗号或顿号分隔可以一次添加多人。
          2. 每笔花费填写项目、金额、谁付的,选择分摊方式(“平均分”“按份数”“指定金额”)和要分摊的人,点“添加账目”。
          3. 下方“结算”会实时显示每个人的已付、应付、差额,以及谁该转给谁多少钱。
          4. 点“复制结算结果”粘贴到微信群,或者点“复制分享链接”,让大家打开就看到同一个账本。

          实际示例

          4 个人去“三亚四日游”:小王付酒店三晚 2,388.00 元,小李付包车一日游 1,899.90 元,小张付海鲜大排档 856.50 元(小张吃得多算 2 份,其他人各 1 份),小陈付潜水 1,000.00 元(小张没下水,只有 3 人分)。总支出 6,144.40 元。

          各笔分摊:酒店每人 597.00 元;包车 1,899.90 ÷ 4 = 474.975 元,先每人取 474.97 元,剩下 0.02 元给名单排在前面的小王、小李各 0.01 元;海鲜共 5 份,每份 171.30 元,小张 342.60 元;潜水 1,000 ÷ 3,小王 333.34 元,小李、小陈各 333.33 元。

          结算结果:应付小王 1,576.62、小李 1,576.61、小张 1,414.57、小陈 1,576.60 元;差额小王 +811.38、小李 +323.29、小张 −558.07、小陈 −576.60 元,加起来正好是 0。转账建议 3 笔:小陈 → 小王 576.60 元,小张 → 小李 323.29 元,小张 → 小王 234.78 元。

          结果怎么看

          • 差额 = 已付 − 应付。正数表示他先垫了钱、别人要还他;负数表示他要往外付钱。所有人的差额加起来一定是 0,不是 0 就说明算错了,可以用来核对。
          • 转账建议只是“怎么还最省事”:照着转完,每个人的差额都会归零,每个人实际花的钱就是表格里的“应付”,不会因为转给谁而改变。
          • 4 个人最多转 3 笔(人数 − 1);如果有人刚好持平,或者某几个人的差额正好互相抵消,笔数会更少。
          • 表格和转账金额都已按“金额精确到”的设置舍入(整数到 1,2 位小数到 0.01),照着转就行,不会差一分钱。

          原理与计算方法

          • 金额先换成最小单位的整数来计算(整数以 1 为单位,2 位小数以 0.01 为单位),避免电脑小数运算出现 0.1 + 0.2 ≠ 0.3 这类误差。
          • 每笔账的分摊用最大余数法:平均分每人权重 1,按份数用份数,指定金额用填写的金额作为权重。每人先按比例向下取整,剩下的零头按最小单位逐一分给被舍去最多的人;舍去一样多时,给成员名单排在前面的人。这样每笔分完正好等于原金额,所有人应付总和等于已付总和。
          • 结算求的是最少转账笔数:先找出能“互相抵消”的小团体(团体内差额加起来正好为 0),团体越多、笔数越少,因为每个团体只要在内部转“人数 − 1”笔就能结清;团体内再让要付最多的人付给要收最多的人。有差额的人在 18 人以内时保证最少,超过时改用快速配对(最多 人数 − 1 笔)。
          • 金额精确到:不区分币种,只选“整数”或“2 位小数”。默认保留 2 位小数,可以记到角、分(比如 12.50);只用整数金额的话可以改成整数。金额只显示数字和千位分隔符,不加货币符号。

          适用限制

          • 比如差额是 +6、+4、−4、−3、−3(百元):−4 和 +4 正好抵消自成一组,剩下三人一组,一共 3 笔;单纯“最大配最大”的做法会给 4 笔。有差额的人超过 18 人时只保证最多“人数 − 1”笔,不保证最少。
          • 金额不区分币种、不做换汇:同一个账本混用不同货币时(比如出境旅游时有人付人民币、有人付当地货币),请先换算成同一种货币再记账。
          • 零头固定给成员名单排在前面的人,每笔最多差 1 个最小单位(比如 0.01 元)。介意的话可以改用“指定金额”自己决定谁多付。
          • 分享链接里包含整个账本(名字和金额),拿到链接的人都能看到;对方修改后不会同步到你这边,需要再分享一次。账目非常多时链接可能太长,可以改用“复制结算结果”。

          常见问题

          怎么算出谁该给谁多少钱?

          先算每个人的差额(已付 − 应付),再找出能互相抵消的小团体,让每个团体内部结清,这样转账笔数最少;n 个人最多只要 n − 1 笔。

          除不尽的零头怎么处理?

          每笔账先按比例向下取整到 0.01(“金额精确到”选整数时到 1),剩下的零头依次给被舍去最多的人,一样多时给成员名单排在前面的人。每笔分完的总和一定等于原金额,不会多算也不会少算。

          需要注册吗?数据会上传吗?

          不用注册。所有计算都在你的浏览器里完成,账本只保存在这台设备的浏览器中;分享链接的内容放在网址 # 后面,不会发送到服务器。

          有人没参加其中一项怎么办?

          记那笔账时,在“哪些人分摊”里取消勾选没参加的人就行,他不分摊这一笔,其他账目照常计算。

          有人吃得多,可以让他多付一点吗?

          可以。分摊方式选“按份数”,吃了两份的人填 2、其他人填 1;也可以填 0.5 这样的小数。想直接指定每个人付多少,就选“指定金额”。

          发到微信群后,朋友能一起改吗?

          朋友打开链接会在他的浏览器里载入同一个账本,可以继续修改,但不会同步到你这边;谁改了就请他再点一次“复制分享链接”发回群里。

          能删除已经记过账的成员吗?

          不能直接删。这位成员如果付过钱或分摊过某笔账,删掉会让这些账的金额改变,所以会先提醒你修改或删除相关账目。只想改名字的话,直接在名字栏修改即可。

          参考来源