You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets中提取全局重复邮政编码的函数问题求助

Google Sheets 提取全局重复邮政编码的解决方法

问题分析

你原公式=filter(split(B2,","),arrayformula(countif(split(B2,","),B2)>1))无效的核心原因:COUNTIF的统计范围仅局限于当前行拆分后的邮政编码,而非整个B列所有单元格拆分后的全局邮编列表,因此只能检测当前行内的重复,无法识别跨行的全局重复。

正确公式(C2单元格输入,下拉填充)

=TRANSPOSE(FILTER(TRIM(SPLIT(B2,",")), COUNTIF(FLATTEN(SPLIT(TEXTJOIN(",",TRUE,B:B),",")), TRIM(SPLIT(B2,",")))>1))

公式拆解

  1. 构建全局邮编列表:FLATTEN(SPLIT(TEXTJOIN(",",TRUE,B:B),","))

    • TEXTJOIN(",",TRUE,B:B):将B列所有单元格的邮政编码用逗号连接成一个字符串,自动忽略空单元格
    • SPLIT(...,","):把连接后的长字符串拆分成多列数据
    • FLATTEN(...):将多列数据转换为单列,得到覆盖所有行的全局邮政编码列表
  2. 清理当前行邮编:TRIM(SPLIT(B2,","))

    • 拆分当前行的邮编后,用TRIM去除可能存在的首尾空格,避免因空格导致匹配失败
  3. 统计全局出现次数:COUNTIF(全局邮编列表, 当前行单个邮编)

    • 逐个统计当前行内每个邮编在全局列表中的出现次数
  4. 过滤并横向输出:TRANSPOSE(FILTER(..., 出现次数>1))

    • 筛选出全局出现次数大于1的邮编,用TRANSPOSE将纵向结果转为横向,自动填充到C列及后续列

示例效果

假设B列数据如下:

B2: 100001,100002,100003
B3: 100002,100004
B4: 100001,100002

则:

  • C2:D2 显示 100001、100002
  • C3 显示 100002
  • C4:D4 显示 100001、100002

内容的提问来源于stack exchange,提问作者JeffSasse

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:36:18