如何在 Google 表格中使用动态范围填充 VLOOKUP?
How to populate a VLOOKUP with a dynamic range in Google Sheets?
我有一个文件需要在名为 "Roster" 的选项卡上查找员工的团队名称(在名为 "Parse" 的选项卡上)。这可以通过一个简单的数组 Vlookup 来完成,但是,问题是每周我们都会在 Roster 选项卡中添加一行,因为员工有时会四处走动。
我已经通过使用 MAX/FILTER/COLUMN、LEN 公式来确定花名册选项卡中的最后一列是什么来完成大部分跑腿工作。我还创建了一个范围,它将为我提供 VLookup 所需的实际范围。例如:如果 Roster 中的最后一列是 "G",我已经有一个填充“'Roster'!A2:G”的公式,这是我的 Vlookup 需要的范围。如果 Roster 中的最后一行是 "P",则公式显示“'Roster'!A2:P”。
如我在示例中所述,给出范围的公式位于“解析”选项卡上的单元格 F2 中。
那么困难的部分就完成了。我现在需要知道的是,在编写 Vlookup 时,如何让公式引用“解析”选项卡中单元格 F2 的实际内容,而不是认为查找范围是单元格 F2。这是视觉效果:
“解析”选项卡中的单元格 F2 显示:'Roster'!A2:G(因为截至目前,G 列是包含数据的最后一列。这是正确的)。
我的 VLookup 是 VLOOKUP($A2,$F,7,FALSE)
。但是,我希望我的 Vlookup 显示 VLOOKUP($A2,'Roster'!A2:G,7,FALSE)
.
是否可以让公式引用单元格 F2 中的内容而不是仅引用 "F2"?
我希望这是有道理的。一天的工作结束了,我很累。
试试这样的东西:
=VLOOKUP(A2, INDIRECT("Roster!A2:"&
SUBSTITUTE(ADDRESS(1, MAX(IF(Roster!1:1<>"", COLUMN(Roster!1:1), )), 4), 1, )),
MAX(IF(Roster!1:1<>"", COLUMN(Roster!1:1), )), 0)
我有一个文件需要在名为 "Roster" 的选项卡上查找员工的团队名称(在名为 "Parse" 的选项卡上)。这可以通过一个简单的数组 Vlookup 来完成,但是,问题是每周我们都会在 Roster 选项卡中添加一行,因为员工有时会四处走动。
我已经通过使用 MAX/FILTER/COLUMN、LEN 公式来确定花名册选项卡中的最后一列是什么来完成大部分跑腿工作。我还创建了一个范围,它将为我提供 VLookup 所需的实际范围。例如:如果 Roster 中的最后一列是 "G",我已经有一个填充“'Roster'!A2:G”的公式,这是我的 Vlookup 需要的范围。如果 Roster 中的最后一行是 "P",则公式显示“'Roster'!A2:P”。
如我在示例中所述,给出范围的公式位于“解析”选项卡上的单元格 F2 中。
那么困难的部分就完成了。我现在需要知道的是,在编写 Vlookup 时,如何让公式引用“解析”选项卡中单元格 F2 的实际内容,而不是认为查找范围是单元格 F2。这是视觉效果:
“解析”选项卡中的单元格 F2 显示:'Roster'!A2:G(因为截至目前,G 列是包含数据的最后一列。这是正确的)。
我的 VLookup 是 VLOOKUP($A2,$F,7,FALSE)
。但是,我希望我的 Vlookup 显示 VLOOKUP($A2,'Roster'!A2:G,7,FALSE)
.
是否可以让公式引用单元格 F2 中的内容而不是仅引用 "F2"?
我希望这是有道理的。一天的工作结束了,我很累。
试试这样的东西:
=VLOOKUP(A2, INDIRECT("Roster!A2:"&
SUBSTITUTE(ADDRESS(1, MAX(IF(Roster!1:1<>"", COLUMN(Roster!1:1), )), 4), 1, )),
MAX(IF(Roster!1:1<>"", COLUMN(Roster!1:1), )), 0)