我正在尝试更改以下公式,以根据列中的值自动更改查找表
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)).
我的另一个想法是使用间接,但我无法理解它。
如果我理解正确,您将需要如下所示的公式,尽管我不是
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
表: