Google Sheets中基于INDEX(MATCH())的横向查询:提取训练组次数据
Google Sheets 多条件匹配提取组次训练数据方案
核心思路
同时匹配运动员组别、训练周次、训练课名称三个维度,从「master plan」工作表定位对应行,再提取目标组次的多列数据。以下是两种高效实现方式:
方式1:INDEX+MATCH 精准定位单单元格
适合单个单元格的独立查询,以「athlete」表E11(第一组次组数)、F11(第一组次强度)为例:
- E11单元格公式:
=INDEX('master plan'!$D:$D, MATCH(1, ('master plan'!$A:$A=$B$2)*('master plan'!$B:$B=$C$2)*('master plan'!$C:$C=D11), 0))
- F11单元格公式:
=INDEX('master plan'!$E:$E, MATCH(1, ('master plan'!$A:$A=$B$2)*('master plan'!$B:$B=$C$2)*('master plan'!$C:$C=D11), 0))
- **H11(第一组次时长)**同理,把公式中的
$E:$E替换为$F:$F即可。
参数说明:
$B$2:「athlete」表中存储运动员组别的固定单元格$C$2:「athlete」表中存储当前执行周的固定单元格D11:当前行的训练课描述单元格'master plan'!$D:$D:目标组次数据所在的列(根据实际调整)
方式2:FILTER 批量提取整组数据
适合一次性提取某组次的所有指标(比如F11:H11对应第一组的3项数据),效率更高:
- 提取第一组次数据(F11单元格输入):
=FILTER('master plan'!$D:$F, ('master plan'!$A:$A=$B$2)*('master plan'!$B:$B=$C$2)*('master plan'!$C:$C=D11))
输入后横向拖动填充至H11,会自动匹配「master plan」中D、E、F列的对应数据。
- 提取第二组次数据(M11单元格输入):
=FILTER('master plan'!$G:$J, ('master plan'!$A:$A=$B$2)*('master plan'!$B:$B=$C$2)*('master plan'!$C:$C=D11))
同理横向拖动至P11,即可获取第二组的4项数据。
注意事项
- 确保「master plan」与「athlete」表中组别、周次、训练课名称的文本完全一致(无空格、大小写差异),否则会匹配失败
- 若存在多条匹配结果,
FILTER会返回所有结果;如需仅取第一条,可嵌套INDEX:=INDEX(FILTER(...), 1) - 可将重复的匹配条件定义为命名范围,简化公式,例如将
('master plan'!$A:$A=$B$2)*('master plan'!$B:$B=$C$2)*('master plan'!$C:$C=D11)命名为TrainingMatch,公式可简化为=INDEX('master plan'!$D:$F, MATCH(1, TrainingMatch, 0), COLUMN()-4)
内容的提问来源于stack exchange,提问作者user2968674
相关产品推荐
相关产品推荐

