Excel跨工作表提取极值对应整行数据的公式实现咨询
Excel跨工作表提取极值对应整行数据的公式实现咨询
嗨Neil!看起来你需要在另一个工作表里自动提取步行数据中各项极值对应的整行记录,我这就给你分情况讲清楚公式怎么写,适配不同版本的Excel:
前提说明
假设你存储步行数据的工作表名叫Walks,数据从第2行开始(第1行是表头),用来展示结果的目标工作表叫Summary。
一、用动态数组公式(Excel 365/2021及以后版本推荐)
这个版本的Excel支持溢出数组,输入一次公式就能自动填充整行,非常方便:
提取最长步行(D列最大距离)的整行:
在Summary表的任意空白单元格(比如A2)输入:=FILTER(Walks!A:H, Walks!D:D=MAX(Walks!D:D))回车后,公式会自动溢出显示对应整行的所有数据。
提取最高海拔(E列最大总 elevation)的整行:
同样在目标单元格输入:=FILTER(Walks!A:H, Walks!E:E=MAX(Walks!E:E))提取最快步行(I列平均速度最大)的整行:
公式如下:=FILTER(Walks!A:H, Walks!I:I=MAX(Walks!I:I))如果你想用「平均移动速度(J列)」作为判断标准,把公式里的
Walks!I:I改成Walks!J:J就行。
二、兼容旧版Excel(2019及以前版本)
旧版不支持动态数组,需要逐列设置公式后拖动填充:
比如要提取最长步行的整行,在Summary表的A2单元格输入:
=INDEX(Walks!A:A, MATCH(MAX(Walks!D:D), Walks!D:D, 0))
输入完成后,按住单元格右下角的填充柄,向右拖动到H列,就能得到整行数据。
其他极值的公式只需要修改MAX和MATCH里的列引用:
- 最高海拔:把
Walks!D:D改成Walks!E:E - 最快步行:把
Walks!D:D改成Walks!I:I或Walks!J:J
额外注意事项
- 如果有多条记录都是极值(比如两次步行距离相同且都是最大值):
- 动态数组的
FILTER会返回所有符合条件的行 - 旧版的
MATCH只会返回第一个匹配的行
- 动态数组的
- 如果原始数据里有空值,可能会干扰MAX函数,你可以用这个公式排除空值:
(旧版需要按=MAX(IF(Walks!D:D<>"", Walks!D:D))Ctrl+Shift+Enter作为数组公式输入) - 表头可以直接从
Walks表复制,或者在Summary表的第1行输入=Walks!A1:H1来同步表头。
你的步行数据表格示例:
备注:内容来源于stack exchange,提问作者Neil Paling




