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

时间:2017-06-19 13:01:48

标签: excel excel-formula lookup

想象一下,我有两个电子表格,一个包含住在我的房产中的租户,另一个包含在房客离开后在房产中完成的修理。这是他们的样子。 租约:

 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'并且,如果'修复发布日期'落在“租约结束”之间的范围内。并且'下一个租赁的开始',分配'租户ID'。简单的例子,第一次修复属性' 1'是在08/03/2001,它介于Tenant' 2'的无效范围之间,因此将租户ID分配给下一列。

通常,如果每个属性只有一个租户,我可以进行简单的查找,但这会使我的情况变得复杂。

我尝试使用vlookup和日期函数,但无法弄清楚如何做到这一点。

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

您可以使用SUMIFS功能执行此操作。添加匹配的所有租户ID(前提是只有一个)将导致租户ID:

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

正如@Tom Sharpe所建议的那样,你可以测试多个匹配项和'错误'那些:

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

答案 1 :(得分:1)

您似乎正在寻找具有匹配行号的多个条件的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))

enter image description here