使用数组公式根据条件计算 datedif

Use an array formula to calculate datedif on criteria

假设我有一个范围内的已记录航班记录,示例如下

    [A]      |   [B]   |   [C][D][...]    |    [G]
1  Date      |   Mode  |   More Data....  |    Days Since
2  1 May     |   Day   |   ....           |    Formula here
3  4 May     |   Night |   ....           |    Formula here
4  6 May     |   Day   |   ....           |    Formula here
5  8 May     |   Night |   ....           |    Formula here

我可以使用公式来获取 G 列中每一行之间的 datedif,类似于

=DATEDIF(A2,A3,"d")

并将其一直复制到列中,但我猜我需要一个数组公式来返回并找到当前行上方与 B 列匹配的第一行并获取 datedif 或它们之间的天数两个日期。我假设一个数组公式,但最好的方法是什么?我需要结果是第 5 行和第 3 行(晚上)和第 4 行和第 2 行(白天)之间的天数,然后向下复制大约 300 行...

我正在查看另一个用于对行进行排序并消除空格的数组公式,但不确定如何使其适应这种情况。

要获得天数差异,您只需从另一个日期中减去一个日期。

LOOKUP函数可以用来查找之前的匹配项,所以尝试将G2中的这个公式复制下来

=IFERROR(A2-LOOKUP(2,1/(B:B1=B2),A:A1),"")

将结果单元格格式化为不带小数位的数字