Excel - 在数组列表中查找日期

时间:2017-02-21 19:41:16

标签: arrays excel

如果E2中的日期是某人作为年假的日期,我需要在单元格E3中输入文本“AL”。

单元格A3:B11列出某人作为年假的开始日期和结束日期。见下文。

enter image description here

我需要一种方法来检查日期是否介于(和包括)这两个日期的数组之间,每个日期都来自单元格A3:B11。

注意:单元格A5是有人作为年假而只需要开始日期的一天。

编辑:我可以对第一行使用以下算法(A3:B3)

=IF(SUMPRODUCT((ROW(INDIRECT(A3&":"&B3))=E3)*1)=1,"AL","")

但我仍然坚持申请所有可能的行

2 个答案:

答案 0 :(得分:1)

使用示例表,在单元格E3中使用公式

= IF(AND($ E $ 2 - ; = A3,$ E $ 2'= B3)" AL"" - &#34)

然后,您可以根据需要将其应用于尽可能多的行。如果你需要将它拖到右边,跨列,那么一定要切换单元格引用(即点击单元格F2,G2,H2等不同的日期,你会使用(= IF(AND($ F $ 2> = A3,$ F $ 2< = B3)," AL"," - ")

此方法的唯一问题是,您需要填写仅持续一天的树叶的结束日期。所以只需将7/7/2017复制到B列。

P.S。如果你的意思是" Array"在官方的excel数组公式意义上,那么解决方案就不同了。

答案 1 :(得分:0)

我相信我已经在Hoejanson的帮助下找到了解决方案。

=IF(SUMPRODUCT(((A3:A11<=E3)*1),((B3:B11>=E3)*1))=1,"AL","")

这意味着确保在只有一天的时间内填写开始日期和结束日期,因此单元格B5必须等于07/07/2018才能生效。

编辑:找到一种方法,只允许在开始列中添加日期。

=IF(SUMPRODUCT((A3:A11<=E3*B3:B11>=E3)+(A3:A11=E3*B3:B11=""))=1,"AL","")

这就是说,如果列A的日期小于E3中的值,则列C的日期大于评估的真或假。然后+表示'或',其中列A的日期等于E3,列C中的相应行为空。希望这有助于任何人搜索类似的答案。