我想看看人们在某些街区之间停留了多少天。
例如,第一个表格(A1:C5)中列出了人们和他们周围的日子,第二个表格(A6:A10)中列出了块,而我试图在它旁边找到正确答案的公式(B6:B10)
╔═══╦══════════╦══════════╦══════╗
║ ║ A ║ B ║ C ║
╠═══╬══════════╬══════════╬══════╣
║ 1 ║ 15/01/14 ║ 24/04/14 ║ dave ║
║ 2 ║ 24/01/14 ║ 04/02/14 ║ jim ║
║ 3 ║ 25/01/14 ║ 20/02/14 ║ gary ║
║ 4 ║ 10/01/14 ║ 08/02/14 ║ ted ║
║ 5 ║ 19/01/14 ║ 10/02/14 ║ sid ║
╚═══╩══════════╩══════════╩══════╝
╔═══╦══════════╦══════════╗
║ ║ A ║ B ║
╠═══╬══════════╬══════════╣
║ 6 ║ 01/01/14 ║ 145 ║
║ 7 ║ 01/02/14 ║ 106 ║
║ 8 ║ 01/04/14 ║ 0 ║
║ 9 ║ 01/06/14 ║ 0 ║
╚═══╩══════════╩══════════╝
答案与上面相同,因为 Dave 在区块 1(1 月 15 日至 2 月 28 日)中待了大约 45 天,而在区块 2(2 月 1 日至 3 月 24 日)中待了 55 天。将 Jim 在区块 1 中待了 12 天,Gary 在区块 1 中待了 35 天,在区块 2 中待了 55 天,Ted 在区块 1 中待了 30 天,Sid 在区块 1 中待了 23 天,结果显示在 B6:B9 中。
我正在寻找一个可以拖动的公式(我假设是一个数组)来得到这些答案。
有人有什么想法吗?
答案1
根据您的描述,似乎区块日期重叠,在这种情况下,您需要为每个区块指定开始日期和结束日期,因此对于区块 1 的开始日期A7
和结束日期,B7
在 C7 中使用此公式计算天数:
=SUM(IF((A$1:A$5>B7)+(B$1:B$5<A7),0,IF(B$1:B$5>B7,B7,B$1:B$5)-IF(A$1:A$5<A7,A7,A$1:A$5)+1))
使用CTRL++确认并复制下来SHIFTENTER
请注意,您的样本为 137 - Gary 只有 27 天,而不是 35 天
更新:
我找到了一种使用函数缩短上述内容的方法TEXT
,即
=SUM(TEXT(IF(B$1:B$5>B7,B7,B$1:B$5)-IF(A$1:A$5<A7,A7,A$1:A$5)+1,"0;\0")+0)