先给直接结论:页数与对象数不一致,通常不是“多出来的页要删”,而是同一批查询对象在报告里被拆成了多行、多页或多段快照。去重前要先确认报告以什么为唯一对象单位,再决定是合并页、合并行,还是保留多行但只统计一次。如果直接按页去重,可能把同对象的不同状态误删;如果直接按对象去重,又可能漏掉真正需要跟进的差异。
第一种解释是分页假象。报告按行数分页,一页容纳固定行数,但一个查询对象可能产生多行:不同匹配形式、不同地区、不同时间快照、不同指标列被拆开。此时页数大于对象数是正常的,报告并没有重复对象,只是排版单位与统计单位不同。
第二种解释是对象重复。同一对象因词表清洗不彻底、大小写或空格差异、同义写法、导入时重复粘贴,被当成多个对象分别查询,于是报告里出现多行且每行都对应一个独立结果。此时页数大于对象数,是真实的重复,需要合并或剔除。
区分这两种解释的关键证据,不是页数本身,而是对象标识列。如果报告里存在一个稳定的对象标识(如原始词条、ID、规范化后的字符串),就按该列去重;如果只有页码和行号,没有对象标识,就需要回到查询前的输入表核对。
去重前先回答:这次查询里,什么算“一个对象”。常见口径有三种,选择不同,去重结果完全不同。
动作上,可以先在报告里新增一列“对象键”,用原始词条或规范化词条填充,然后按该列排序,人工或脚本标记重复。标记完成后,下一步不是立刻删除,而是检查重复行的其他列是否完全一致。如果其他列也一致,属于纯重复,可以合并;如果其他列不同,说明同一对象存在多个结果,需要保留并注明差异来源。
下面是一组假设例子,仅用于说明比较方法,不是真实项目结果。假设输入表有 200 个词条,报告导出 260 行、13 页。先按规范化词条去重,得到 200 个唯一对象,说明多出的 60 行是同一对象的多行结果。再检查这 60 行:如果它们只是分页造成的重复行,其他列完全相同,就合并为 200 行;如果它们在其他列上不同,比如匹配形式不同,就保留 260 行但把统计口径改为“200 个对象、260 条结果”。
能区分两种解释的证据包括:
如果上述证据仍不能判断,最稳妥的动作是保留原始报告,另建一张去重后的对象表,两表并存。后续如果要核对某个对象,先去重表定位,再回原始报告查该对象的全部行。这样既不丢信息,也能让页数与对象数的分歧变成可核对的项目,而不是靠印象争论。
执行到第三步时,如果发现重复组数量很大,先不要继续逐组处理,而是回到输入表检查规范化规则是否遗漏。输入阶段修一次,比在报告阶段逐行删更省事,也能避免下一批查询再次出现同样分歧。
不同工具对“对象”“结果”“页”的定义可能不同,导出列名和分页方式也会变化。涉及具体品牌工具时,应核对其当前文档或界面说明,确认它把什么算作一条记录、是否提供对象标识列、分页是按行还是按对象。没有核对之前,不要假设页数等于对象数,也不要把某一批报告的列结构当成通用规则。
去重不是把数字改小,而是把统计单位说清楚。只要对象键、口径和统计结果三者能对上,页数与对象数的差异就从矛盾变成了可解释的差异。