我正在创建一个工作簿来跟踪曲棍球队的统计数据。在第一张纸上,我列出了所有球队及其球员。每个队伍都是一张表,表名就是队伍的名字
在第二张表上,当我输入球队名称时,我想要一个公式,根据我输入的球队名称来引入该球队的所有球员
我尝试过使用 INDIRECT,它适用于 INDEX,但不适用于 MATCH
预先感谢您提供的任何帮助
我能想到的最简洁的方法是使用 let 语句来避免复制代码(假设团队列表位于 Sheet1 上)。它还取决于您支持动态数组的 Excel 版本。
玩家:
=LET(cols, XMATCH($C$3, Sheet1!$B$2:$J$2), target_range, INDIRECT("Sheet1!R6C" & cols+1 & ":R1000C" & cols+1, FALSE), valid_rows, NOT(ISBLANK(target_range)), FILTER(target_range, valid_rows))
数字:
=LET(cols, XMATCH($C$3, Sheet1!$B$2:$J$2), target_range, INDIRECT("Sheet1!R6C" & cols+1 & ":R1000C" & cols+1, FALSE), valid_rows, NOT(ISBLANK(target_range)), FILTER(OFFSET(target_range, 0, 2), valid_rows))
它的作用:
cols
:在包含所有团队名称的行中查找团队名称(从 $C$3 起)。
target_range
:抓取所选列中的第 6-1000 行(可以根据需要更改边界)。需要 cols+1
,因为 Sheet1 上的数据从 B 列开始。
valid_rows
:返回 target_range
中包含玩家姓名的值。
输出:将
target_range
过滤为所需的值并返回动态数组。
返回玩家编号的公式对游戏名称范围执行所有检查,然后从 2 行中拉出数组。