提问人:josephnumbers 提问时间:12/8/2022 更新时间:12/8/2022 访问量:263
excel 中是否有函数可以比较两个相似(但不相同)的单元格并输出“是”或“否”?
Is there a function in excel that compares two similar (but not the same) cells and outputs a yes or no?
问:
我建立了一个检查列,目的是确认两个公司名称相同。这两个公司名称来自不同的程序,因此显示不同的格式。
例如 - BLACKROCK TRUST, INC. 与 Blackrock trust 1156
它们都是同一家公司,所以我想要一个列来确认“是”它们是相同的,因为它们共享一定比例的相同字符。我尝试转换公司名称,但这个文件相当大,并且有数千家公司。
感谢您的帮助!
我尝试了许多基于 IF 的语句,但我觉得我缺少一些更容易的东西?我的 excel 技能相当中等,但还没有达到使用 VBA 或与宏相关的东西的地步。
答:
我以前不得不这样做。根据您可以隐藏的“帮助程序”列的繁琐程度,我建议使用中级 excel 技能来测试两个字符串的相似性,以提供以下答案。核心假设是名称的第一个字符通常相同,区别在于格式、后缀或非信息性字符
步骤 1:使用以下公式为每个名称创建一个帮助程序列: =SUBSTITUTE(LOWER(TRIM(CLEAN(A10))),“ ”,“”) 这将删除空格并使每个字符串都小写。如果数据中的其他不可区分的字符或字符串很常见,也可以用 “” 替换它们(例如,“,inc”“,llc” “)。“等)。
第 2 步:您现在有两个修改后的字符串(假设它们在单元格 C10 和 D10 中)。用依次递增的数字填充单元格 E9:V9,例如 3 4 5 6 ....
第 3 步:使用以下公式填充单元格 E10:V10,以比较每个字符串的前 N 个字符,其中 N 是单元格 E9:V9 中的值 =IF(EXACT(LEFT($C 10,E$9),LEFT($D 10,E$9)),E$9/MIN(LEN($C 10),LEN($D 10))) 这将告诉您两个字符串之间相同的前导字符的百分比
步骤 4:选择可能匹配的阈值,并使用以下内容填充列 W =最大(E10:V10)>0.8 对于与至少 80% 的前导字符匹配的任意两个字符串,这将指示 true。您的 blackrock 示例仅匹配 78%,因此 80% 的阈值可能太高,但您也可以标记接近的示例并手动检查它们
评论
上一个:比较大型 Excel 工作表
评论