Google Sheets:根据列名返回整列数据
解决方案
以下两种公式均可实现你所需的功能,假设你在Sheet2的A1单元格输入要查找的表头名称(比如"Sports"):
方法1:使用FILTER函数(推荐,更简洁)
在Sheet2的A2单元格输入以下公式,会自动返回对应列的所有数据(不含表头):
=FILTER(Sheet1!A2:Z,Sheet1!$1:$1=$A$1)
- 原理:
FILTER函数会筛选Sheet1中第一行等于A1单元格内容的列,同时只提取第二行及以下的数据。 - 注意:如果Sheet1的列范围不止A到Z,可根据实际情况调整(比如改成
Sheet1!A2:ZZ)。
方法2:使用INDEX+MATCH函数
如果需要更灵活控制行范围,也可以用这个组合公式:
=INDEX(Sheet1!A:Z,ROW(A2:A),MATCH($A$1,Sheet1!$1:$1,0))
- 原理:
MATCH($A$1,Sheet1!$1:$1,0)先定位目标表头在Sheet1第一行的列位置;INDEX则根据这个列位置,提取对应行的数据(ROW(A2:A)生成从第二行开始的行号,实现动态提取)。 - 注意:输入公式后按回车,新版谷歌表格会自动溢出所有结果;旧版则需要下拉公式覆盖所需行。
额外提示
- 确保Sheet1的表头无重复值,否则
MATCH和FILTER会返回第一个匹配列的数据。 - 如果要包含表头,可把FILTER公式里的
Sheet1!A2:Z改成Sheet1!A:Z,或是调整INDEX的行范围从1开始。
内容的提问来源于stack exchange,提问作者Ken
相关产品推荐
相关产品推荐

