使用方法
打开页面时文本域已经直出八行示例明细,覆盖交通、住宿、餐饮、办公四个类别,其中一条住宿费以美元结算。点击“生成报销单”或在文本域内按 Ctrl+Enter(Mac 为 Cmd+Enter),页面依次输出汇总卡、每日餐费上限校验表、类别小计表与价税分离明细表。文本域示例由服务端直出,JavaScript 只在检测到内容为空时才填入同一份兜底数据,不会覆盖用户已粘贴的账单。
六个配置项都是数字输入且带 min、max、step:四种外币的折合汇率、价税分离税率、每人每日餐费上限。汇率默认 1 USD = 7.1 CNY、1 EUR = 7.75 CNY、1 JPY = 0.0473 CNY、1 GBP = 9.15 CNY;税率默认 0.13;餐费上限默认 150 CNY。任一项超出范围都会给出具体提示,例如税率填 0.8 时会被告知应在 0 到 0.5 之间。明细表默认显示前 12 行,点击“加载更多”展开全部记录;复制按钮输出制表符文本,导出按钮下载带 BOM 的 CSV。全部计算在当前浏览器内完成,账单不上传。
输出顺序按汇总到明细排列:汇总卡先给条数、类别数、合计、税额合计与单条分布,让录入者第一眼确认总量没错;上限校验表与类别小计表接着指出异常与结构;最后的明细表按输入顺序逐行列出折合 CNY、不含税额与税额,便于和原始票据逐张核对。若某一行的说明文本里本身含逗号,请换成顿号或空格,否则该行字段数会变成 7 个而被拒绝。
能解决什么
报销单最常见的三类错误都可以在本页被定量发现。第一类是价税分离算错方向:把含税金额先乘税率再相减,得出不含税价偏小的结果,进项税随之多抵或少抵。第二类是多币种汇总顺序错误:先把各币种分别汇总再折算,中间舍入逐级累积。第三类是每日上限只按总额校验,没有按日期加类别聚合,导致单日餐饮超标被总额平均值掩盖。
本页在工具目录中的名称是 ExpenseReport生成器。它按“先折后汇总”的固定顺序计算:任何金额都先按币种折成 CNY,再做价税分离、类别小计与上限校验。上限校验只针对餐饮类别按日期聚合,其他类别不参与;如果公司的差旅政策把交通也纳入每日限额,需要把对应行的类别改成同一名称后再读校验表。
与手工台账相比,本页把三类容易互相掩盖的错误分开呈现:价税分离错误只影响税额与不含税两列,不影响合计;折算顺序错误只影响多币种混排时的合计;上限错误只影响校验表。任一类修正后另两类的结果不变,方便定位问题出在录入口径还是政策参数。示例中的八条明细同时包含整数金额、一位小数金额与外币金额,覆盖了日常账单的绝大多数写法。
原理与变量
价税分离的公式是:含税价 A、税率 r 时,不含税额 = A/(1+r),税额 = A×r/(1+r)。关键在于税率是“不含税价”的比例而不是“含税价”的比例,所以必须除而不是减。含税 1130 元、税率 13% 时,税额是 1130×0.13/1.13 = 130 元,不含税 1000 元;若误算成 1130−1130×13% 会得到 983.1 元一类的错误结果。
不含税 = A/(1+r);税额 = A×r/(1+r);折合 CNY = 金额 × 该币种汇率
多币种折算按可配置汇率执行:金额先乘该币种汇率得到 CNY,再进入后续所有汇总。类别小计按折合后的 CNY 累加,占比 = 类别小计 / 合计 × 100,保留两位小数。每日上限校验按“日期 + 餐饮类别”聚合当日金额,与上限比较后给出超额数;超额为负或零时该行不出现在校验表中。单条分布指标取折合 CNY 的最大值、最小值与均值。
汇率的方向是“1 单位外币折合多少 CNY”,与外汇市场常见报价方向一致,不要填成倒数。示例中 1 JPY = 0.0473 CNY,因此 30000 日元折 1419.00 元;若误填 21.14(倒数),同一条明细会变成六十四万元,汇总卡的最大单条一栏会立刻暴露这个错误。四个汇率输入相互独立,公司按币种分别维护入账汇率时,可以逐项改成实际值,页面所有折算列同步刷新。
完整示例
以默认八行走一遍。八条明细折合 CNY 后合计 5638.70 元,条数 8,类别数 4。类别小计为:交通 710.90 元占 12.61%,住宿 2343.80 元占 41.57%,办公 1130.00 元占 20.04%,餐饮 1454.00 元占 25.79%。其中 218 USD 按 7.1 折成 1547.80 CNY,占总额 27.45 个百分点,是最大单条;最小单条是 25.00 元的机场快轨,八条均值 704.84 元。
按 13% 税率做价税分离:含税 1130 元的打印装订费分离出不含税 1000.00 元、税额 130.00 元;218 USD 折成 1547.80 元后分离出不含税 1369.73 元、税额 178.07 元;八条合计税额 648.70 元。每日餐费上限按 150 元校验:2026-09-05 餐饮合计 486.00 元,超上限 336.00 元;2026-09-06 餐饮合计 968.00 元,超上限 818.00 元。其余日期的餐饮金额未超限,不出现在校验表中。
把税率从 0.13 改成 0.06 再跑一次,可以看到不含税与税额两列同步变化而合计不变:1130 元分离出 1066.04 元与 63.96 元,796 元分离出 750.94 元与 45.06 元。把 218 USD 那一行的币种改成 EUR、金额保持 218 不变,折合值变为 1689.50 元,住宿小计、合计与占比全部联动。这两组改动可以用来确认页面没有把某一列写死。
对照表
价税分离的自检用例全部能凑成整数:含税 1130 按 13% 分离出 1000 与 130,含税 1060 按 6% 分离出 1000 与 60,含税 1010 按 1% 分离出 1000 与 10,含税 113 按 13% 分离出 100 与 13,含税 339 按 13% 分离出 300 与 39。换税率后仍可用同一组数字验证页面是否在除而不是在减。
| 含税金额 | 税率 | 不含税 | 税额 |
|---|---|---|---|
| 1130 | 13% | 1000 | 130 |
| 1060 | 6% | 1000 | 60 |
| 1010 | 1% | 1000 | 10 |
| 113 | 13% | 100 | 13 |
| 339 | 13% | 300 | 39 |
多币种折算用例:218 USD 按 7.1 折 1547.80 CNY,120 EUR 按 7.75 折 930.00 CNY,30000 JPY 按 0.0473 折 1419.00 CNY,90 GBP 按 9.15 折 823.50 CNY。改任一汇率输入,这四个折算值会同步变化,可用来核对财务实际入账汇率。
结果边界与舍入
所有金额列按两位小数显示,折合 CNY、不含税额、税额、小计、合计、超额均如此;占比同样保留两位小数。内部计算使用双精度原值,不在每条明细上做四舍五入后再汇总,避免逐条舍入累积成总额偏差。合计 5638.70 元与八条明细的两位小数之和一致,可直接与银行流水对账。
输入边界方面:日期必须是 YYYY-MM-DD 且是真实日历日;金额必须大于 0;币种只支持 CNY、USD、EUR、JPY、GBP,填 SEK 之类的代码会被拒绝并列出可用币种;是否含税只接受“是”或“否”。字段数不是 6 个时会指出行号与当前字段数。汇率下限为 0.01(JPY 为 0.0001),填 0 会被拒绝,因为零汇率会让折算结果失去意义。
餐费上限填 0 表示不设限,此时校验表显示“没有日期超过餐费上限”。上限填得很大时同理。若同一日期出现多条餐饮记录,页面先按日期聚合再比较上限,不会逐条比较,因此拆成两笔 300 元的午餐仍然会被合计 600 元判超。
常见问题
为什么税额是除出来而不是减出来?
税率是“不含税价”的比例。含税 1130 元、税率 13% 时,税额 = 1130×0.13/1.13 = 130 元,不含税 1000 元;用 1130−1130×13% 会得到错误的不含税价。
多币种为什么要先折后汇总?
先按币种分别汇总再折算,会在每个类别上各自产生一次舍入,累积后总额对不上。本页先把每条明细折成 CNY,再做小计与合计。
每日上限校验按什么维度?
按“日期 + 餐饮类别”聚合当日餐饮金额,与上限比较给出超额数。示例上限 150 元时,09-05 餐饮 486.00 元超 336.00 元,09-06 餐饮 968.00 元超 818.00 元。
218 美元怎么变成 1547.80 元?
按 1 USD = 7.1 CNY 折算:218×7.1 = 1547.80 CNY,占示例总额 5638.70 元的 27.45 个百分点,也是八条中的最大单条。
不含税的票怎么处理?
把该行“是否含税”列改成“否”,页面不再做价税分离,不含税额等于折合 CNY,税额记 0,其余汇总口径不变。
汇率可以改成公司实际入账汇率吗?
可以。四个汇率输入框都可以修改,范围分别是 0.01 到 100(JPY 为 0.0001 到 10)。修改后所有折算值、小计、合计与占比同步刷新。
导出的 CSV 包含哪些列?
包含日期、类别、说明、金额、币种、折合 CNY、不含税、税额八列,顺序与明细表一致,带 BOM,Excel 打开中文表头不乱码。
八条示例的合计为什么是 5638.70?
交通 710.90 加住宿 2343.80 加办公 1130.00 加餐饮 1454.00 等于 5638.70,其中住宿含 218 USD 折出的 1547.80。均值 704.84 元,最大单条 1547.80 元,最小 25.00 元。
相关工具
报销汇总之后往往还要处理电费测算、账单拆票与发票查验。以下入口均使用站内实际分类路径: