Excel中按代码重复出现次数匹配返回对应值的实现问询
解决方案
问题说明
需在表格2的「查找」列,按代码出现顺序匹配表格1中同代码对应次数的数值:
- 表格2中某代码第1次出现 → 匹配表格1中该代码第1次出现的数值
- 表格2中某代码第2次出现 → 匹配表格1中该代码第2次出现的数值
- 以此类推
表格1数据
| 代码 | 数值 |
|---|---|
| qwe | 2 |
| asd | 3 |
| zxc | 8 |
| rty | 12 |
| fgh | 14 |
| vbn | 15 |
| qwe | 16 |
| zxc | 18 |
| rty | 20 |
| qwe | 23 |
错误公式分析
你之前使用的公式逻辑有误:CONT.SE($A$2:$A$10; F2)统计的是表格1中该代码的总出现次数,而非到当前行的累计次数,无法定位到第N次出现的具体行,导致匹配失败。
正确公式(西班牙语函数版本)
假设表格1的代码列是A2:A11,数值列是B2:B11;表格2的代码列是F2:F,在「查找」列(如G2)输入以下公式,下拉填充即可:
=ÍNDICE($B$2:$B$11; PEQUEÑO(SI($A$2:$A$11=F2; FILA($A$2:$A$11)-FILA($A$2)+1); CONT.SE($F$2:F2; F2)))
注:旧版Google Sheets需按
Ctrl+Shift+Enter触发数组计算;新版可直接按Enter。
公式逻辑拆解
SI($A$2:$A$11=F2; FILA($A$2:$A$11)-FILA($A$2)+1):筛选表格1中所有与当前代码匹配的行,返回它们的相对行号(从1开始计数)PEQUEÑO(..., CONT.SE($F$2:F2; F2)):从筛选出的行号中,取第k个最小的行号(k为表格2中当前代码的累计出现次数)ÍNDICE:根据这个行号,提取表格1中对应的数值
内容的提问来源于stack exchange,提问作者Lucas Góes
相关产品推荐
相关产品推荐

