包含天数的 Countifs 数组

包含天数的 Countifs 数组

我想看看人们在某些街区之间停留了多少天。

例如,第一个表格(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)

相关内容