想象一下,我有两张电子表格,其中一张带有居住在我的房产中的租户,另一张带有在租户离开后在属性中完成的维修。这是他们的样子。 租赁: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',如果'修理签发日期'落在“租赁终止”和“下一个租赁开始”之间的范围内,则分配'租户ID'。一个简单的例子,房产'1'的第一次修复是在08/03/2001,属于Tenant'2'的无效范围,因此将租户ID分配到下一列。
通常情况下,如果每个属性只有一个租户,我可以做一个简单的查找,但这使我的情况变得复杂。
我试着玩vlookup和日期功能,但无法弄清楚它的方式。
感谢您的帮助
这是完美的,公式的工作原理完全符合我的需要。但有两个问题。首先,由于我有非常大的数据集(126000行和20000行),因此无法扩展。其次,在某些情况下,我会获得#NUM!错误,即使参考是正确的。 – Dalibor
如果我正在处理126K行,我将转移到VBA并完全在2-D变体阵列中工作,将值返回到工作表*集合*。使用原生工作表公式不会导致可观的计算滞后。 #REF!错误来自找不到匹配,并且可以通过IFERROR包装来避免。我无法进一步评论#REF!错误,因为我没有重现问题的数据。 – Jeeped