2017-05-05 161 views
1

我创建了我的工作的员工时间表,但遇到了问题。我有一个一年的电子表格,其中每一列都是一天。我有两行,我需要比较值在某一天(列)。当找到最新的匹配时,我希望单元格返回与最新匹配列对应的第三行的日期。以下是我迄今为止:比较excel中的第2个单元格区域并返回第3个单元格区域的值

{=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

这两种尝试仍然不包括日期限制,以便在下个月的日程安排之前给我最高的日期。

如果我尝试包括在上面的第二次尝试的日期限制,我把:

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

B1包含的功能是仰望和停止日期。这样,整个函数返回TRUE

回答

1

数组公式

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

去给你拿从ROW6其中ROW3是 “X” 和ROW8最大的日期是 “DTP”。它应该工作,即使日子没有排序。但是,既然它们是,它预计会返回“最右边”的比赛。

该公式在不符合条件的单元格中强制使用div/0,因此参数6(忽略错误)将从搜索max(参数14)中删除它们。

+0

这美丽的工作。非常感谢,我花了好几天的时间。 –

+0

@MatthewSechrist欢迎你,很乐意帮助。 –

相关问题