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

时间:2019-06-11 13:19:34

标签: excel indexing match formula

在主要工作表中,我在A列中有一个雇员列表,在D:ZZ列中我基本上在第11行有一个日历。在这些相交的地方,我给每个雇员分配了一个任务代码以说明他们是什么受雇做那天。我想根据第11行中的日期和所输入列中的代码为编码的单元格动态着色。在第二张工作表中,我沿着A列有一张代码表。在B:AM列的第2行(标题下),我还有另一个代码来说明它是在办公室,在路上,等等。这是我尝试使用“索引匹配”查找的代码。在包含任务代码的行中,每个标题下都有一个预定的日期,该特定作业可以是进出或无空。

我可以很容易地为任务列建立索引,我的问题是我该如何处理从中得到的行,然后仅搜索该行中我将代码应用于员工的日期以从第2行返回结果,然后该日期出现的列?

我对索引/匹配有很好的了解,可以查找多个项目以返回结果。我在根据结果创建范围以查找所需数据时遇到问题。

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

任务代码计划工作表

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  ...

主要工作表

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

该公式有效,但“易失”,我很乐意在条件格式函数中使用它。有没有办法使它不那么不稳定?

 =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代码行

期望根据日期和代码返回字母代码A,S或F

编辑:在代码计划中添加了标头,该标头是任务1、2、3 ...当天的唯一编号。

1 个答案:

答案 0 :(得分:0)

我认为这并不算太糟,您可以使用索引与row参数中任务代码的匹配项以及index参数中0的匹配项,从任务表中的2d数组B3:E5中获取整行,然后匹配其中的日期并再次使用索引以获取所需的字母代码。

这是我的公式:

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

这是我的主要工作表:

enter image description here

这是我的任务表:

enter image description here

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

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

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

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

具有适当的填充颜色。

enter image description here