Excel:查找一定时间范围内的值

想象一下,我有两张电子表格,一张住在我的房子里,另一张在租客离开后的房屋里修理。 这是他们的样子。 租赁:

Property ID | Tenant ID | Start of Tenancy | End of Tenancy | Start of next tenancy 1 | 1 | 01/01/2001 | 30/01/2001 | 15/02/2001 1 | 2 | 15/02/2001 | 28/02/2001 | 15/03/2001 1 | 3 | 15/03/2001 | 30/03/2001 | 15/04/2001 2 | 4 | 15/01/2001 | 30/01/2001 | 31/01/2001 2 | 4 | 31/01/2001 | 30/04/2001 | 05/05/2001 2 | 5 | 05/05/2001 | 05/06/2001 | 20/06/2001 3 | 6 | 03/05/2001 | 15/08/2001 | 30/08/2001 3 | 7 | 30/08/2001 | 15/10/2001 | 15/11/2001 4 | 1 | 31/01/2001 | 30/04/2001 | 15/05/2001 4 | 8 | 15/05/2001 | 30/08/2001 | 30/09/2001 

修理:

  Property ID | Repair Issued Date | 1 | 08/03/2001 | 1 | 10/04/2001 | 2 | 03/05/2001 | 2 | 15/06/2001 | 3 | 18/08/2001 | 4 | 10/05/2001 | 4 | 15/09/2001 | 

在修理完成之前,我需要找出谁是租客。 因此,我需要匹配“物业ID”,如果“维修发放date”落在“租赁终止”和“下一个租赁开始”之间的范围内,则分配“租户ID”。 一个简单的例子,第一个房产'1'的维修是在08/03/2001,在租户'2'的无效范围之间,因此将房客ID分配到下一列。

通常情况下,如果每个房产只有一个租客,我可以做一个简单的查询,但这使我的情况变得复杂。

我试图玩弄与查找和datefunction,但无法找出方法来做到这一点。

感谢帮助

你可以用SUMIFS函数来做到这一点。 加上所有匹配的租户ID,只要有一个,就会得到租户ID:

 =SUMIFS(B:B,A:A,G2,D:D,"<" & H4,E:E,">" & H2) 

正如@Tom Sharpe所build议的那样,您可以testing多个匹配项和“错误”项:

 =IF(COUNTIFS(A:A,G2,C:C,"<" & H2,E:E,">" & H2)>1,"#MULTIPLE FOUND",SUMIFS(B:B,A:A,G2,C:C,"<" & H2,E:E,">" & H2)) 

您似乎正在寻找具有多个匹配行号的条件的INDEX。 行号可以用AGGREGATE返回,通过强制所有不匹配的东西进入错误状态,同时丢弃错误。

 =INDEX(B:B, AGGREGATE(15, 6, ROW($1:$11)/((A$1:A$11=G2)*(D$1:D$11<=H2)*(E$1:E$11>=H2)), 1)) 

在这里输入图像说明