先给结论:页数多于对象数,通常不是“多出来的都是重复”,而是同一对象被拆成了多行或多次出现。去重的第一步不是删行,而是给每个对象建立唯一标识,再判断这些行属于同一对象的哪种情况。缺少完整数据或权限时,仍可先做一轮“按标识归并”的最小动作,但它只能压缩明显重复,不能证明剩余行都对应独立对象。
报告页数与实际对象数量对不上,常见有两种方向。一种是页数偏多,比如一个词在报告里出现多次,原因是大小写、单复数、空格、标点、地区后缀或语言版本被当成不同对象;另一种是页数偏少,原因是导出被截断、筛选条件过滤掉部分行,或分页只取到了前若干页。两种情况的处理顺序完全不同:前者要归并,后者要补齐。
判断属于哪一种,可以看三个可观察证据:同一对象是否出现多行、每行是否带有可区分的属性列、报告总行数与导出上限是否接近。如果同一对象反复出现且属性列大多相同,偏向行数虚高;如果对象数量明显大于行数且缺少尾部数据,偏向对象缺失。请求量或抓取量归零也不能单独证明去重做对了,它还可能来自筛选条件、权限范围或导出时间窗的变化。
当你手里有完整的对象清单,去重可以做得比较确定。做法是给每个对象指定一个唯一标识,再把报告行映射到这个标识上。
这里的实际动作是“建立映射表并按标识分组”。它的结果会直接决定下一步:如果归并后数量与清单一致,说明去重规则够用,可以进入指标汇总;如果不一致,说明还有未识别的同义写法,需要补充规范化规则,而不是继续删行。
假设清单里有 3 个对象,报告却有 5 行:对象 A 出现 2 行(一行带地区后缀、一行不带),对象 B 出现 2 行(一行首字母大写、一行小写),对象 C 出现 1 行。按“去后缀 + 统一小写”规范化后,5 行归并为 3 组,与清单一致。这个例子只说明比较方法:先定标识,再看归并结果是否收敛,不代表任何具体工具的导出格式。
如果没有完整对象清单,或导出权限只覆盖部分数据,就不要追求“完全去重”。此时可执行的最小动作是:只对当前可见行做规范化归并,并明确标注这是局部结果。
这个动作的价值在于把明显的重复压掉,让剩余行更接近“一行一对象”。它的局限同样明确:如果缺失的是整段数据,归并只会让局部看起来更整齐,却不会补回缺失部分。下一步应当是申请更完整的导出范围或核对筛选条件,而不是把局部结果当成全量结论。
有几类行看起来像重复,实际上不应合并。一是同一对象的不同时间点数据,合并会掩盖变化;二是同一对象在不同渠道或不同语言下的独立表现,合并会丢失区分度;三是同一对象的不同指标口径,合并会导致口径混乱。遇到这些情况,正确做法是保留多行,但增加一个维度列来区分,而不是删到只剩一行。
另外,如果报告页数与对象数量的差异来自分页或导出上限,去重并不能解决问题,需要先确认导出是否完整。请求量、抓取量或某项统计归零时,也要先排除筛选条件和权限范围,再判断是否真的没有数据。
去重的核心不是减少行数,而是让每一行都能对应到一个可验证的对象标识。有完整清单时,按标识归并并以数量是否收敛作为验收标准;缺少清单或权限时,只做局部归并并标注局限,把补齐数据作为下一步。这样处理,页数与对象数量的差异会从“看起来乱”变成“知道差在哪里、还缺什么”。