Google Sheets:基于K列多实例提取B列数据至指定区域
提取指定类别第N个匹配项至目标区域
方法1:INDEX+SMALL+IF(兼容所有版本)
在N4单元格输入公式,向右拖动至AA4,再向下拖动到第10行:
=IFERROR(INDEX($B:$B, SMALL(IF($K:$K=$N$3, ROW($K:$K)), COLUMN()-COLUMN($N$4)+1)), "")
公式解析:
$K:$K=$N$3:筛选K列中与当前类别(如N3的GT1)完全匹配的行ROW($K:$K):获取匹配行的行号SMALL(..., COLUMN()-COLUMN($N$4)+1):按出现顺序提取第1、2、3...个匹配行的行号(COLUMN()部分自动计算当前是第几个匹配项)INDEX($B:$B, ...):根据行号提取B列对应的车型名称IFERROR(..., ""):无匹配项时显示空值,避免错误提示
方法2:FILTER+INDEX(更简洁直观)
同样在N4输入,拖动填充即可:
=IFERROR(INDEX(FILTER($B:$B, $K:$K=$N$3), COLUMN()-COLUMN($N$4)+1), "")
公式解析:
FILTER($B:$B, $K:$K=$N$3):直接筛选出对应类别的所有B列数据INDEX(..., n):提取筛选结果中的第n个元素(n由COLUMN()自动计算)
方法3:动态数组一键生成(Google Sheets新版推荐)
在N4单元格输入以下公式,无需手动拖动,自动向右填充所有匹配结果:
=TOCOL(FILTER($B:$B, $K:$K=$N$3), 1)
公式解析:
FILTER筛选对应类别的数据TOCOL(..., 1)将筛选结果转为横向排列并忽略空值,自动填充至目标区域
注意事项
- 建议将引用范围改为精确数据区域(如
$B$5:$B$100),避免全列引用带来的计算冗余 - 确保类别名称(如N3的
GT1)与K列文本完全一致(大小写、空格无差异)
内容的提问来源于stack exchange,提问作者Steve MB
相关产品推荐
相关产品推荐

