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))