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

如何在Excel中用内置公式识别带拼写错误的自定义唯一值?

可以用Excel内置公式实现(适用于Excel 365/2021及以上版本)

假设你的数据存储在A列(比如A1:A7),可以通过组合动态数组函数实现需求:过滤掉那些存在"出现次数更多、字符差异小于3"的其他值的条目,最终保留正确的唯一值。

具体公式

=FILTER(UNIQUE(A:A),BYROW(UNIQUE(A:A),LAMBDA(x,LET(
    cntX,COUNTIF(A:A,x),
    otherVals,FILTER(UNIQUE(A:A),UNIQUE(A:A)<>x),
    otherCnts,COUNTIF(A:A,otherVals),
    charDiffs,BYROW(otherVals,LAMBDA(y,
        ABS(LEN(x)-LEN(y)) + SUM(--(MID(x,SEQUENCE(MIN(LEN(x),LEN(y))),1)<>MID(y,SEQUENCE(MIN(LEN(x),LEN(y))),1))
    )),
    NOT(OR((otherCnts>cntX)*(charDiffs<3)))
))))

公式逻辑拆解

  1. 获取原始唯一值:UNIQUE(A:A)提取所有不重复条目,包括拼写错误内容。
  2. 遍历每个唯一值:通过BYROW+LAMBDA逐个处理每个唯一值x:
    • cntX:计算x在原数据中的出现次数。
    • otherVals:提取除x外的其他所有唯一值。
    • otherCnts:计算这些其他值的出现次数。
    • charDiffs:计算x与每个其他值的字符差异数(长度差绝对值 + 对应位置不同字符数)。
    • 过滤判断:如果不存在"出现次数比x多且字符差异小于3"的其他值,就保留x;否则过滤掉x。

测试验证

针对你提供的示例数据:
{"Apple", "Applee", "Orange", "Orange", "Orang", "Banana", "Apple"}
公式会自动过滤掉Applee(存在出现次数更多的Apple,差异为1)和Orang(存在出现次数更多的Orange,差异为1),最终返回{"Apple", "Orange", "Banana"},完全符合需求。

注意事项

  • 该公式依赖Excel 365/2021及以上版本的动态数组和LAMBDA系列函数,旧版Excel(如2019及更早)无法直接使用。
  • 当前字符差异计算逻辑为"长度差+对应位置不同字符数",已能覆盖常见的拼写错误场景;若需要更精准的标准编辑距离(插入/删除/替换),可调整charDiffs的计算逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 05:25:05