在这种情况下使用索引匹配的最佳方法是什么?

What is the best way to use Index Match in this case?

在主要工作sheet中,我在 A 列中有一份员工列表,来自列 D:ZZ 我基本上在第 11 行中有一个日历。在这些相交的地方,我分配了一个任务给每位员工编写代码,说明他们当天受雇做什么。我想根据第 11 行中的日期和输入的列中的代码动态地为编码单元格着色。在我的第二个 sheet 中,我有一个 table 沿 A 列的代码。从第 B:AM 列,在第 2 行(在 header 下)我有另一个代码说它是什么类型的工作,在办公室,在路上等。这是我试图使用索引匹配查找的代码。在带有任务代码的行中,在每个 header 下,我有一个预定日期,该特定作业要么完成,要么完成,要么什么都不做。

我可以很容易地为任务列编制索引,我的问题是如何从中获取行,然后仅搜索该行以查找我将代码应用于员工的日期 return第 2 行和出现该日期的列的结果?

我非常了解 Index/Match 查找多个项目以 return 结果。我在从结果创建范围以查找我想要的数据时遇到问题。

我已经尝试了间接和地址以及偏移量,但我不希望它是不稳定的,因为它被用于数千个单元格的条件格式。

任务代码安排工作sheet

DAY     1   2   3   4   ...
CODE    A   S   A   F   ...
96T003  03 May  04 May  05 May  06 May  ...
96T004  05 May  06 May  07 Jun  10 Jun  ...
96T005  05 May  19 Jul  22 Jul  23 Jul  ...

主要作品sheet

            SAT SUN MON TUE WED
     DATE   01  02  03  04  05                  
     JONES  OFF OFF 96T003  96T003  96T004
     DAVIS  OFF OFF 96T003  96T003  96T005

这个公式有效,但是 "volatile" 我不太愿意在条件格式函数中使用它。有没有办法让它不那么不稳定?

 =INDEX(CMP_FLYCODE,1,MATCH(F11,INDIRECT("'CMP'!"&ADDRESS(MATCH(F19,CMP_ADP,0),1)&":"&ADDRESS(MATCH(F19,CMP_ADP,0),40)),0))

CMP_FLYCODE 仅引用 A、S 和 F 代码行

期望 return 基于日期和代码的字母代码 A、S 或 F

编辑:将 header 添加到代码表中,它是任务 1、2、3 当天的唯一编号...

我不认为这太糟糕了,您可以从任务 B3:E5 中的二维数组 B3:E5 中使用索引和行中任务代码的匹配来获取整行参数和列参数中的0,然后匹配其中的日期并再次使用索引获取所需的字母代码。

这是我的公式的样子:

=IF(C3="OFF","",INDEX(Tasks!$B:$E,MATCH(C,INDEX(Tasks!$B:$E,MATCH(C3,Tasks!$A:$A,0),0),0)))

这是我的小学 sheet:

这是我的任务sheet:

因此,要在条件格式中使用它,您需要使用自定义公式的三个规则

=INDEX(Tasks!$B:$E,MATCH(C,INDEX(Tasks!$B:$E,MATCH(C3,Tasks!$A:$A,0),0),0))="A"

=INDEX(Tasks!$B:$E,MATCH(C,INDEX(Tasks!$B:$E,MATCH(C3,Tasks!$A:$A,0),0),0))="S"

=INDEX(Tasks!$B:$E,MATCH(C,INDEX(Tasks!$B:$E,MATCH(C3,Tasks!$A:$A,0),0),0))="F"

使用适当的填充颜色。