# 汇总大表:软件输出 与 手工定稿 差异清单(2026-08) > 比对日期:2026-09-21 比对方式:openpyxl 逐格读取(同时读公式与缓存值),按「块 + 行标签 + 列头」语义对齐后逐格比对 > - **程序(软件输出)**:`D:\桌面\生成数据\生成_道路运输量汇总表_2026-08 (2).xlsx`(2026-09-21 16:49,1,204,461 字节) > - **手工(手工计算/定稿)**:`D:\05_数据分类\汇总表\8月汇总定稿\2026年8月客运量、货运量定稿.xlsx`(2026-09-13,1,276,005 字节) > - 两份文件均 19 个页签、页签名一致,但**多处行/列布局不同**。本清单已先做列偏移(+1 列等)与行错位抵消,只保留实质差异。 > - 明细全量见同目录 `汇总大表_差异明细_2026-08.csv`(943 条)。 > - 判定口径:相对差 ≤1e-12 视为同值;1e-12~1e-6 记为「取整差异」;>1e-6 记为「数值差异」。 ## 结论速览 | 类别 | 条数 | 是否需要处理 | | --- | ---: | --- | | 数值差异(>1e-6) | 315 | 需关注,其中 304 条是同一个母版问题(U 列) | | 文本型数字(格式差异,值相同) | 286 | 建议统一为数值格式 | | 取整差异(≤1e-6) | 207 | 可不处理(手工取整/浮点残差) | | 仅程序有值 | 129 | 需确认(程序多出的列/块) | | 错误值差异(#REF!/#DIV/0!) | 4 | 需确认 | | 文本不同 | 2 | 按手工措辞改 | | **合计** | **943** | | 完全一致(逐格比对 0 差异)的页签/区域:`公路总客运`、`2025年城市客运量`、`中口径客运量`、`中口径计算过程`、`城市分市州`(共有部分)、`中口径分析`(共有部分)、`中口径排名`(数据)、`道路运输周转量`(数值)、`货运量排名`/`货运周转量排名`(数值)、`城市汇总`(共有部分)、`公交`/`出租`/`网约车`(除 U 列)、`轨道、轮渡`(数值)、`中口径明细`(除 U 列)、`城市客运`(数值)、` 货运`(除下文所列)。 --- ## 一、数值差异(需要关注) ### 1.1 「去年累计」列口径不一致 —— 304 格(母版自身前后矛盾) | 页签 | 单元格范围 | 程序(软件输出) | 手工定稿 | 程序公式 | 手工公式 | | --- | --- | --- | --- | --- | --- | | 公交 | `U5:U76`(72 格) | U5 = 88908.91 | U5 = 114285.68 | `=V5+X5+Z5+AB5+AD5+AF5`(2025 年 1-6 月) | `=V5+X5+Z5+AB5+AD5+AF5+AH5+AJ5`(1-8 月) | | 出租 | `U5:U76`(72 格) | U5 = 39797.94 | U5 = 52461.16 | 同构 | 同构 | | 网约车 | `U5:U76`(72 格) | U5 = 16384.07 | U5 = 22474.11 | 同构 | 同构 | | 中口径明细 | `U99:U188` 区间内 88 格 | U99 = 1102278.385724 | U99 = 1256684.215724 | `=V99+…+AH99`(到 7 月) | `=V99+…+AH99+AJ99`(到 8 月) | - 根因:程序沿用母版公式,只累加到 6 月(公交/出租/网约车)或 7 月(中口径明细);手工补足到 8 月。 - 该列在母版里与同页「累计同比」的分母口径自相矛盾(母版 `T5` 的分母是 1-8 月)。 - **业务口径已确认:该列可清空、留空白** → 程序侧按清空处理即可,无需补 7、8 月。 ### 1.2 ` 货运` 2022 年累计同比(4 个市州)—— 10 格 | 位置(程序 → 手工) | 行 | 程序 | 手工 | | --- | --- | ---: | ---: | | `EA92 → EB64` | 仙桃|规上+规下周转量 | -0.014716890 | +0.086175944 | | `EA94 → EB66` | 仙桃|规下货物周转量 | -0.014716890 | +0.086175944 | | `EA96 → EB67` | 潜江|规上货运量 | +0.179275525 | +0.282164376 | | `EA98 → EB68` | 潜江|规上+规下周转量 | -0.058086590 | +0.024805503 | | `EA100 → EB70` | 潜江|规下货物周转量 | -0.113561229 | -0.036970886 | | `EA102 → EB71` | 天门|规上货运量 | +0.076149971 | +0.197304029 | | `EA104 → EB72` | 天门|规上+规下周转量 | -0.042328172 | +0.059261693 | | `EA106 → EB74` | 天门|规下货物周转量 | -0.062562255 | +0.035500853 | | `EA110 → EB76` | 林区|规上+规下周转量 | -0.047784436 | +0.095158141 | | `EA112 → EB78` | 林区|规下货物周转量 | -0.222848165 | -0.106185416 | 另有 2 格:`EA93→EB65`(仙桃|规上货物周转量)、`EA111→EB77`(林区|规上货物周转量)——程序留空,手工为 `#DIV/0!`。 → **此前业务已确认「软件对」,以程序为准。** ### 1.3 ` 货运`「2021 年累计」列 —— 74 格(程序有值,手工全空) - 范围:程序 `EO5:EO112`(全省 6 行 + 17 市州 × 4 行 = 74 行),手工对应列 `EP` 全空。 - 示例:全省货运量 `EO5 = 161309.53`(= 2021 年 1-12 月合计),手工 `EP5` 为空。 - 注:手工该列的**表头「累计」在 `EP4` 是有的**,只是数据区为空;同页 2021 年 12 个月的数据两边一致。 ### 1.4 `班线包车` IL 列(2019 年累计同比)—— 34 格 | 情况 | 条数 | 示例 | | --- | ---: | --- | | 程序有值、手工为 `#REF!` | 2 | `IL4` 程序 -0.016421275,手工 `#REF!`(手工公式 `=(IK4-#REF!)/#REF!`) | | 程序有值、手工空白 | 31 | `IL8` 程序 -0.089568043,手工空 | | 手工为杂字符 | 1 | `IL50`(仙桃|客运量)程序 0.007785888,手工为「\`」 | → 手工定稿该列引用已断(`#REF!`),程序计算正常。 ### 1.5 ` 货运` 历史月份数值的小数尾数差异 —— 139 格(手工取整) - 范围:`BA5:EF15`,集中在**全省 6 行**的 2021-2024 年各月值/同比/环比列(另有 2 格在武汉行)。 - 相对偏差最大 7.7e-7、中位 2.7e-9,即手工把值取整到约 12 位有效数字。 - 示例: | 单元格 | 含义 | 程序 | 手工 | | --- | --- | ---: | ---: | | `BA5→BB5` | 全省货运量 2 月与去年同比 | -0.3259271574 | -0.3259269996 | | `CA5→CB5` | 全省货运量 2023 年 2 月 | 11992.2900 | 11992.2872 | | `CE5→CF5` | 全省货运量 2023 年 4 月 | 14303.6000 | 14303.6042 | | `DM5→DN5` | 全省货运量 2022 年 1 月 | 10709.5234 | 10709.5265 | | `DZ5→EA5` | 全省货运量 2022 年累计 | 144979.2825 | 144979.2854 | → 数量级在 1e-7 以下,**不影响结论**。 ### 1.6 ` 货运` 尾部核算块 —— 63 格(全是浮点残差) - 程序 `114-118` 行 / 手工 `80-84` 行(因上文行数差而整体下移)。 - 两边都是 `±1e-10` 量级的浮点残差(相当于 0),仅是残差不等于 0 的写法不同 → **无实质差异**。 ### 1.7 其他单点 | 位置 | 程序 | 手工 | 说明 | | --- | --- | --- | --- | | 中口径明细 `S1`/`S2`/`AT1` | 2.9e-11 / -2.3e-10 | 0 | 页内「校验行」残差,无意义 | | 城市客运 `S1` | -9.3e-12 | 5.2e-12 | 页内校验行残差 | | 货运周转量排名 `J5→J26` | 0.0141585262850 | 0.0141585262863 | 全省规下增速,相对差 8.7e-11 | | 轨道、轮渡 `M7/M9/E14/E15/E16` | 数值 | 文本型数字,值相同 | 见 2.13 | --- ## 二、结构/版式差异(非数值,但影响逐格对齐) ### 2.1 ` 货运` - **行**:程序每市州 6 行,手工 4 行 → 程序多 **34 行**(17 市州 × 「规上+规下货运量」「规下货运量」2 行)。 - **列**:从 V 列起手工整体右移 1 列——手工在 `V` 列多一个**无表头**的辅助列,内容是「2025 年 1-8 月累计」(74 格,如 `V5=127907.75`);程序没有这一列,直接用公式求和。 - 尾部历史核算块位置随之不同(程序 114-118 行 / 手工 80-84 行)。 ### 2.2 `货运量排名` / `货运周转量排名` - 两个块的**顺序相反**:程序先「1-8 月累计」后「8 月」;手工先「8 月」后「1-8 月累计」。 - 手工的「8 月」块市州名带「市」后缀,程序的「8 月」块不带。 - 手工 `货运周转量排名` 44-51 行为空行。 ### 2.3 `城市汇总` - 程序多一个「2026 年 8 月全省完成城市客运量情况」块(`A12:E20`,共 41 格:标题 1 + 表头 5 + 数据 35);手工该页只有 1-8 月累计块 + `G12:O20` 的 2025 年 1-12 月块。 ### 2.4 `城市分市州` - 程序多两个「8 月」块(第 45-89 行);手工只到第 44 行(两个 1-8 月累计块)。程序 89 行 / 手工 44 行。 ### 2.5 `中口径分析` - 程序多「8 月中口径客运量及周转量」块(第 9-16 行);手工只到第 7 行(1-8 月累计块)。程序 16 行 / 手工 7 行。 ### 2.6 `中口径排名` - 布局完全不同:程序把「1-8 月累计」和「8 月」两个块**纵向排列**在 `J:R`(第 1-20 行 / 22-41 行);手工把「8 月」放在 `A:H`(**没有市州名列**)+「1-8 月累计」放在 `J:R`,同一行区间(第 1-20 行)。 - **数据完全一致**(按块对齐后 0 差异)。 ### 2.7 `城市客运` - 手工多一列 `AJ`「2025 年 1-7 月累计」(37 格,公式 `=V+X+Z+AB+AD+AF+AH`);程序没有该列 → 从 `AJ` 起手工整体右移 1 列。 ### 2.8 `班线包车` - 手工多 1 列(共 288 列 vs 程序 287 列)。 - 2015/2016 历史区列布局不同:程序 `JL`/`JM` = 「累计」/「同比」(有值);手工 `JL` = 「2015 全年」、「JY」= 「2015 年全年」、「JZ」= 「预估2016 年全年」(`JZ4=88020`、`JZ5=4896760`),且手工 `JY`/`KA`/`KB` 为 `#REF!`。 ### 2.9 `道路运输周转量` - 手工多 2 列(`AA`/`AB`,内容为空);表头与数值一致。 ### 2.10 错误值统计对比 | 页签 | 程序 | 手工 | | --- | --- | --- | | ` 货运` | `#DIV/0!` 38、`#REF!` 3 | `#DIV/0!` 40、`#REF!` 1 | | `班线包车` | `#DIV/0!` 228、`#REF!` 8 | `#DIV/0!` 228、`#REF!` 14 | | `中口径明细` | `#REF!` 2、`#DIV/0!` 64 | 同程序 | | `中口径客运量` | `#DIV/0!` 26 | 同程序 | ### 2.11 文本型数字(值相同,存储为文本) | 页签 | 程序 | 手工 | 备注 | | --- | ---: | ---: | --- | | 班线包车 | 0 | 196(`FV8:IX57`,`FV/FW/FX/FY/GA/GC/IT/IV/IX` 列) | 形如 `'374.0000'`、`'33,437.0000'` | | 公交 | 68(`AF` 列) | 153(`M` 68 + `G` 17 + `AF` 68) | 手工多 `M`、`G` 两处 | | 轨道、轮渡 | 0 | 5(`M7`、`M9`、`E14`、`E15`、`E16`) | 形如 `'227.80'` | → 与「班线包车页签文本格式数值改数值格式」的整改方向一致,建议手工定稿也一并清理。 --- ## 三、纯文字差异 | 位置 | 程序(软件输出) | 手工定稿 | | --- | --- | --- | | `道路运输周转量!A23` | 2026年8月全省完成交通周转量情况 | 2026年8月全省**累计**完成交通周转量情况 | | `轨道、轮渡!R2`、`R11` | 8月与去年同比 | 同比 | | `货运量排名!A22←→A1`(8 月块标题) | 2026年8月全省分市州完成公路货运量情况 | 2026年8月各市州货运量排名 | | `货运量排名` 8 月块表头 `B/G/L` | 完成(万吨) | 规上货运量(万吨)/规下货运量(万吨)/合计货运量(万吨) | | `货运周转量排名!A24←→A1`(8 月块标题) | 2026年8月全省分市州完成公路货物运输周转量情况 | 2026年8月各市州货物周转量明细表 | | `货运周转量排名` 8 月块表头 `B/G/L` | 完成(万吨公里) | 规上周转量(万吨公里)等 | | 市州名后缀 | 武汉 / 黄石 / 恩施 / 天门(无后缀) | 武汉市 / 黄石市 …;且「恩施**市**」(应为恩施州)、「天门」(无后缀) | | `班线包车` 2015 区表头 | 2015全年 | 2015年全年 / 预估2016年全年 | --- ## 四、按页签汇总 | 页签 | 数值差异 | 取整差异 | 文本型数字 | 仅程序有值 | 错误值差异 | 文本不同 | 合计 | | --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | | ` 货运` | 10 | 202 | 0 | 74 | 2 | 0 | 288 | | `公交` | 72 | 0 | 85 | 0 | 0 | 0 | 157 | | `出租` | 72 | 0 | 0 | 0 | 0 | 0 | 72 | | `网约车` | 72 | 0 | 0 | 0 | 0 | 0 | 72 | | `中口径明细` | 88 | 3 | 0 | 0 | 0 | 0 | 91 | | `班线包车` | 1 | 0 | 196 | 31 | 2 | 0 | 230 | | `城市汇总` | 0 | 0 | 0 | 24 | 0 | 0 | 24 | | `轨道、轮渡` | 0 | 0 | 5 | 0 | 0 | 2 | 7 | | `城市客运` | 0 | 1 | 0 | 0 | 0 | 0 | 1 | | `货运周转量排名` | 0 | 1 | 0 | 0 | 0 | 0 | 1 | | 其余 9 个页签 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | | **合计** | **315** | **207** | **286** | **129** | **4** | **2** | **943** | > 另:`城市汇总`、`城市分市州`、`中口径分析`、`中口径排名` 存在块级结构差异(见第二节),未计入本表的逐格数。 --- ## 五、比对方法(可复现) 1. 用 openpyxl 分别读 `data_only=True`(缓存值)与 `data_only=False`(公式)。 2. 逐页签确定「行标签列 / 表头行」,按块标题(累计 / 当月)切块。 3. 列对齐:以表头文本序列做序列比对求列偏移(` 货运` 从 V 列起 +1、`城市客运` 从 AJ 起 +1、`班线包车` 尾部 2015/2016 区 −3 等),` 货运`/`班线包车`/`城市客运` 表头校验 0 处不一致。 4. 行对齐:按「市州(列 A 前向填充)+ 指标(列 B)」匹配;市州名去除「市/州」后缀后比对。 5. 逐格判定:数值按相对容差分档,文本/错误值/文本型数字单独分类。 6. 标签列(A/B)单独做文字差异核对,避免合并单元格造成的假差异。