动态更改查找范围

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

我正在尝试更改以下公式,以根据列中的值自动更改查找表

work week

我有 3 张相同的桌子(Week1、Week2、Week3)

=INDEX(Week1[[Mon]:[Sun]],MATCH(CLS[@CLS],Week1[Agent],0),MATCH(CLS[@Day],Week1[[#Headers],[Mon]:[Sun]],0))

我想根据工作周列中的工作周更改查找表。

我尝试自己改变这一点,但我不断得到

#VALUE!
。我的尝试如下。

=INDEX(CLS[@[Work Week]]&"[[Mon]:[Sun]]",MATCH(CLS[@CLS],CLS[@[Work Week]]&"[Agent]",0),MATCH(CLS[@Day],CLS[@[Work Week]]&"[[#Headers],[Mon]:[Sun]]",0)).

我的另一个想法是使用间接,但我无法理解它。

excel excel-formula excel-2010
1个回答
0
投票

如果我理解正确,您将需要如下所示的公式,尽管我不是

INDIRECT()
函数的忠实粉丝,但是,由于您想使用
INDIRECT()
函数使其动态化,那么您可以尝试:


• 单元格中使用的公式 O3

=INDEX(INDIRECT([@[Work Week]]&"[#All]"),
  MATCH([@CLS],INDEX(INDIRECT([@[Work Week]]&"[#All]"),,1),0),
  MATCH([@Day],INDEX(INDIRECT([@[Work Week]]&"[#All]"),1,),0))

MS365

=LET(
     _source, INDIRECT([@[Work Week]]&"[#All]"),
     _cls, DROP(_source,1,-7),
     _day, TAKE(_source,1,-7),
     XLOOKUP([@CLS],_cls, FILTER(DROP(_source,1,1),[@Day]=_day)))

我对OP中的原始源数据做了一些更改,以表明该公式确实有效。如果按照我展示的方式应用。转介代理

AH
--> 周
1
2
3
Mon
Tue
Weds

Week1
表:


Week2
表:


Week3
表:


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