Excel查找同位置重复数字匹配值 公式失效问题求助
解决Excel中匹配同位置重复数字的数值筛选问题
问题分析
你需要为A列中含重复数字的数值,在H列筛选出同位置重复数字完全匹配的数值,并用逗号分隔填入B列。例如:
- A列是
022(位置2、3为重复的2),需提取H列中所有位置2、3为2的数值(如022、122、222) - A列是
313(位置1、3为重复的3),需提取H列中所有位置1、3为3的数值(如313、323、333) - A列是
2722(位置1、3、4为重复的2),需提取H列中所有位置1、3、4为2的数值(如2122、2222、2722)
你原公式的问题在于仅判断了前两位或中间两位的重复,未覆盖所有可能的重复位置(比如1、3位的重复),导致筛选结果不准确。
解决方案
根据Excel版本不同,提供两种适配的公式:
1. Excel 365/2021(支持动态数组)
使用FILTER+BYROW+MODE组合,自动识别重复数字及其位置,适配任意长度的文本数值(需确保A、H列为文本格式,避免前导0丢失):
=TEXTJOIN(",",TRUE,FILTER(H:H, BYROW(H:H,LAMBDA(y, AND(MID(y,XMATCH(MODE(MID(A1,SEQUENCE(LEN(A1)),1)),MID(A1,SEQUENCE(LEN(A1)),1)),1)=MODE(MID(A1,SEQUENCE(LEN(A1)),1)) )) ))
公式逻辑:
MID(A1,SEQUENCE(LEN(A1)),1):将A1拆分为单个字符的数组(如022拆为{"0","2","2"})MODE(...):提取A1中重复次数最多的数字(即目标重复数字)XMATCH(...):定位该重复数字在A1中的所有位置AND(...):验证H列数值的对应位置是否都等于目标重复数字FILTER+TEXTJOIN:筛选符合条件的数值并以逗号连接
2. 旧版Excel(非365/2021)
针对3位数值,使用数组公式(需按Ctrl+Shift+Enter触发):
=TEXTJOIN(",",TRUE,IF( (MID(H:H,IF(MID(A1,1,1)=MID(A1,2,1),{1,2},IF(MID(A1,1,1)=MID(A1,3,1),{1,3},{2,3})),1)=MID(A1,IF(MID(A1,1,1)=MID(A1,2,1),{1,2},IF(MID(A1,1,1)=MID(A1,3,1),{1,3},{2,3})),1))*1=2, H:H, "" ))
公式逻辑:
- 先判断A1的哪两个位置数字重复,再检查H列数值的对应位置是否匹配该重复数字
- 用
*1=2确保两个位置的条件都满足(乘积为2表示两个判断均为TRUE)
注意事项
- 确保A列和H列的数值为文本格式:选中列 → 右键「设置单元格格式」→ 选择「文本」,避免前导0被自动去除。
- 若H列数据范围明确(如
H1:H1000),建议替换公式中的H:H为具体范围,提升计算效率。
内容的提问来源于stack exchange,提问作者Cristina Estudante
相关产品推荐
相关产品推荐

