如何给 Instagram Follower 列表去重并保留来源信息
建立 ID 优先、username 回退的键,标记重复行并保留来源信息,避免清理 Instagram 粉丝文件时发生错误合并。
本文目录
合并 Instagram Followers 或 Following 文件时,请保留原始文件,并在工作副本中建立 ID 优先的键。有 id 时就使用 ID;只有缺失 ID 时,才回退到去掉首个 @、清除首尾空格并转成小写的 username。
然后用 COUNTIF 标记首次出现和重复出现,审查冲突,并且只在保留来源信息后才删除重复行。
Web Tidy 默认已经在单次任务中按 id 去重。本工作流主要用于合并不同日期、来源主页或工具的导出文件。
先定义什么是“重复”
本页只处理数据清洗,不计算非互关、取关变化或共同粉丝。这些是清洗完成后的独立比较任务。
为什么 full name 和 profile URL 不适合作为键
fullName不唯一。profileUrl通常包含 username,username 改变时它也会改变。username可读但可变,因此只能作为回退键。id是首选匹配键,但必须先将长数字 ID 按文本导入,以免表格软件丢失精度。
Web Tidy 的 14 列输出中,A 列是 id,C 列是 username,J 列是 audience,K 列是 sourceProfile,M 列是 collectedAt,N 列是 rowIndex。以下公式使用 O 列存放 accountKey,P 列存放审查状态。
第 1 步:保留 Raw,创建 Working 副本
不要直接编辑下载的 CSV/XLSX 文件。把每个文件复制到 Raw_* 工作表,并在 Working 中追加数据行。加入来源文件名、来源工作表和原始行号,确保每个保留行都可以回溯。
第 2 步:将 ID 按文本导入
导入 CSV 时,把 A 列设置为文本。如果 ID 已经显示成科学计数法,之后再更改单元格格式未必能恢复丢失的数字。请从原始文件重新导入。
第 3 步:创建 ID 优先的 accountKey
在 O2 中输入:
=IF(A2<>"","id:"&A2,"user:"&LOWER(IF(LEFT(TRIM(C2),1)="@",MID(TRIM(C2),2,99),TRIM(C2))))A2 有值时,该公式生成 id:<id>;否则,它会清除 C2 的首尾空格、移除一个开头的 @、把 username 转成小写,并生成 user:<username>。
如果 ID 和 username 都为空,请将该行标记为 Missing key,不要把所有空键合并成一个假定的账号。
第 4 步:标记首次出现和重复出现
在 P2 中输入:
=IF(OR(A2<>"",C2<>""),IF(COUNTIF($O$2:O2,O2)=1,"Keep first","Review duplicate"),"Missing key")如需统计一个键的全部出现次数,请在 Q2 中输入:
=COUNTIF($O:$O,O2)向下填充公式,并在删除任何内容前筛选 Review duplicate。Microsoft 建议先复制原始范围,并在永久删除前检查唯一值和重复值。
来源:Microsoft 支持 — 筛选或删除重复值以及统计某个值的出现次数。
第 5 步:删除前审查冲突
对于每个重复键,请检查:
- ID 是否完全相同;
- 不同 username 是否是同一个 ID 在不同时点的观察值;
- 哪些
sourceProfile、audience和collectedAt值需要保留; - 哪一行的可选字段更完整;
- 哪些冲突需要人工审查。
审查后,在工作副本中使用 Data → Remove Duplicates,并且只选择 accountKey 列。如果需要保留最新观察值,请先按 collectedAt 排序并记录这条规则。
XLOOKUP 可以把保留键映射回原始行,并返回该行的字段。Microsoft 文档说明它默认使用精确匹配,但 Excel 2016 和 Excel 2019 不提供 XLOOKUP,因此本工作流不强制使用它。
第 6 步:在不同来源间保留同一账号的重复出现
如果只想在每个来源主页和 audience 方向内去重,请创建一个范围键:
=LOWER(TRIM(K2))&"|"&LOWER(TRIM(J2))&"|"&O2同一账号出现在不同来源主页,或同时出现在 Followers 与 Following 中时,会保留为不同行。这符合来源级观察的需求,但不适合计算全局唯一账号数。
核对行数
删除前请记录:
rawRows = keptRows + duplicateRows + missingKeyRows删除后,人工抽查 5–10 个重复组,并确认:
- 长 ID 没有被截断。
- 同一 ID 的不同 username 没有被拆成两个账号。
- 不同 ID 的同一 username 没有被静默合并。
- 所需来源和时间信息已转移到汇总表或来源信息表。
- 原始文件仍未修改。
误判与错误合并边界
- **ID 缺失:**username 回退键可以统一格式,但不能证明跨时间的两行属于同一账号。
- **Username 改名:**同一 ID 的不同 username 应使用同一个键,但显示值仍需遵循有记录的时间策略。
- **Username 重用:**不同时点的相同 username 可能并不代表同一账号。
- **不同 ID、相同 username:**保留两行并审查,不要自动合并。
- **跨来源出现:**一个账号出现在两个主页的 Followers 列表中不是错误。是否合并取决于你需要账号级并集还是来源级分析。
- **有界输入:**100、200、500 或 1,000 行上限以及 partial 任务都会限制覆盖范围。去重无法把有界子集变成完整列表。
- **权限:**出现在粉丝文件中不能证明身份、兴趣、营销同意或联系许可。
常见问题
为什么 ID 比 username 优先?
ID 是更稳定的匹配键,而 username 可以改变。请把长 ID 按文本导入,避免表格软件先破坏这个键。
单次 Web Tidy 导出还需要再去重吗?
产品默认按 id 去重。这个表格工作流用于合并多个文件、日期或来源。
可以只按 username 去重吗?
只有在 ID 缺失时才把 username 作为回退键,并将结果标记为较低置信度。
去重能识别取关者吗?
不能。历史变化需要两个可比的 Followers 快照,并且要单独审查覆盖范围。
用清洗后的数据进行正确的比较
- 当前 Following 与 Followers:谁没有在 Instagram 回关你。
- 两个日期的 Followers:如何使用两次导出查看谁在 Instagram 取关了你。
- 两个主页的 Followers:两个 Instagram 账号的共同粉丝。
- 导出方法基础:如何导出 Instagram 粉丝。