比较2个单元格区域,并从Excel中第3个单元格区域返回一个值

我创build我的工作的员工时间表,我有麻烦。 我有一个一年的电子表格,每列是一天。 我有两行,我需要比较值在一定的一天(列)。 当find最新的匹配时,我希望单元格从最后一个匹配的列对应的第三行返回date。 这是我到目前为止:

{=INDEX($L$6:$NM$6, MATCH("X"&"DTP",$L$3:$NM$3&$L8:$NM8,0))}

其中"X"是条件值, "DTP"是工作分配,列L6-NM6是一年中的日子。 但是,这只能返回两个条件都是真实的,而不是最后一个。 所以我试了一下:

{=INDEX($L$6:$NM$6, 1, MAX(IF($L$3:$NM$3="X"&$L8:$NM8="DTP",COLUMN($L$3:$NM$3)-COLUMN($L$3)+1&COLUMN($L8:$NM8)-COLUMN($L8)+1)))}

但是,这仅在January 1, 2017才会返回。

这两种尝试仍然不包括date限制,以便在下个月的时间表之前给我最高的date。

如果我试图在上面的第二次尝试中joindate限制,我会提出:

{=INDEX($L$6:$NM$6<$B$1.....(with all the rest the same)

B1包含函数要查找和停止的date。 有了这个,整体function简单地返回TRUE

这个数组公式

=AGGREGATE(14,6,L6:NM6/((L3:NM3="X")*(L8:NM8="DTP")), 1)

将从row6中获取最大date,其中row3是“X”,row8是“DTP” 。 它应该工作,即使日子没有sorting。 但是既然是这样,预计会回到“最右边”的比赛。

该公式强制不符合条件的单元格中的div / 0,以便参数6 (忽略错误)将从searchmax(参数14)中删除它们。