我想比较并确定日期是否在单独表格中的日期之间。
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)
答案 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)
哦,如果你的桌子不断扩大,你可以设定各种范围大于最大预期范围;或者你可以创建一个表并使用结构化参考。
答案 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)))))))
只需将细胞填充到下方,其他细胞就会自动弹出。