确定日期是否在excel中的其他日期之间

时间:2017-03-02 22:40:52

标签: excel date excel-formula vlookup

我想比较并确定日期是否在单独表格中的日期之间。

Start          End  Project Employee
1-Jan-13    31-Dec-13   10      2
1-Jan-14    31-Dec-14   10      2
1-Jan-15    31-Dec-15   12      2
1-Jan-16    31-Dec-16   12      2
1-Jan-17    31-Dec-17   14      2
1-Jan-16    31-Dec-16   10      5
1-Jan-17    31-Dec-17   20      5

我正在寻找员工将该日期与同一员工的第二个表中可用日期相比较的项目ID。

Employee    Date     projectid
2         1-Jul-16      ?
2         1-Dec-16      ?
2         1-May-17      ?
5         1-Jul-16      ?
5         1-Dec-16      ?

请帮忙。我尝试了LOOKUP公式,但无法动态控制单元格范围。 =LOOKUP(Date,start:end,project:project)

2 个答案:

答案 0 :(得分:0)

由于projectid是数字,您可以使用:

=AGGREGATE(14,6,(I2=Employee)*(J2>=Start)*(J2<=End)*Project,1)

其中

Employee    refers to:  =Sheet1!$D$2:$D$8
End         refers to:  =Sheet1!$B$2:$B$8
Project     refers to:  =Sheet1!$C$2:$C$8
Start       refers to:  =Sheet1!$A$2:$A$8

如果项目是文本,您可以修改公式以返回表格的行号,以便使用INDEX函数进行查找。

例如:使用第1行中的表列标题:

=INDEX(Project,AGGREGATE(14,6,(I2=Employee)*(J2>Start)*(J2<=End)*ROW(Project),1)-1)

如果您的Excel版本较旧,但没有AGGREGATE功能,则可以使用:

=LOOKUP(1E+307,1/((I2=Employee)*(J2>=Start)*(J2<=End))*Project)

enter image description here

哦,如果你的桌子不断扩大,你可以设定各种范围大于最大预期范围;或者你可以创建一个表并使用结构化参考。

答案 1 :(得分:0)

这是另一个解决方案,一点手动但仍然有效。

如果您使用 AND 功能比较两个不同单元格之间的单元格,您将获得 TRUE FALSE

考虑到您的开始和结束列是B和C列,A列是您的数字列(标题位于第1行):

ID  Start   End Project Employee
1   1-Jan-13    31-Dec-13   10  2
2   1-Jan-14    31-Dec-14   10  2
3   1-Jan-15    31-Dec-15   12  2
4   1-Jan-16    31-Dec-16   12  2
5   1-Jan-17    31-Dec-17   14  2
6   1-Jan-16    31-Dec-16   10  5
7   1-Jan-17    31-Dec-17   20  5

另一张表位于B C和D列(标题位于第11行。)

如果将此公式复制到某处,您将获得项目ID号或0(任何人)

=IF(AND(C12>$B$2,C12<$C$2),1,IF(AND(C12>$B$3,C12<$C$3),2,IF(AND(C12>$B$4,C12<$C$4),3,IF(AND(C12>$B$5,C12<$C$5),4,IF(AND(C12>$B$6,C12<$C$6),5,IF(AND(C12>$B$7,C12<$C$7),6,IF(AND(C12>$B$8,C12<$C$8),7,0)))))))

只需将细胞填充到下方,其他细胞就会自动弹出。