您可以根据另一个单元格中的值在公式中引用表名称吗?

问题描述 投票:0回答:1

我正在创建一个工作簿来跟踪曲棍球队的统计数据。在第一张纸上,我列出了所有球队及其球员。每个队伍都是一张表,表名就是队伍的名字

(https://i.stack.imgur.com/24pOw.png)

在第二张表上,当我输入球队名称时,我想要一个公式,根据我输入的球队名称来引入该球队的所有球员

(https://i.stack.imgur.com/dEr65.png)

这是我用于 I6 的公式 (https://i.stack.imgur.com/pQq6l.png)

我尝试过使用 INDIRECT,它适用于 INDEX,但不适用于 MATCH

预先感谢您提供的任何帮助

excel excel-formula dynamic reference tablename
1个回答
0
投票

我能想到的最简洁的方法是使用 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 行中拉出数组。

© www.soinside.com 2019 - 2024. All rights reserved.