有没有办法在特定标准内获得动态标准的平均值?

Is there a way to get the average of a dynamic criteria within a specific criteria?

我需要获取每个序列号和每个日期值的小时数的平均值。获取总数很容易,但我无法获取股息的动态唯一值(以绿色突出显示)。我知道获得平均值的唯一方法是创建一个数据透视表,然后手动计算平均值。如下面的屏幕截图所示。有没有办法只使用 excel 公式得到它?

范围 H10:H13 的平均值将反映在单元格 O8 上,范围 L10:L11 反映在单元格 O9.


Serial # Hour Count Date Value
10001 04:00 AM 4/25/2022
10001 01:00 AM 4/26/2022
10001 02:00 AM 4/25/2022
10001 02:00 AM 4/26/2022
10001 03:00 AM 4/25/2022
10001 01:00 AM 4/25/2022
10001 02:00 AM 4/25/2022
10001 03:00 AM 4/25/2022
10002 03:00 AM 4/25/2022
10002 04:00 AM 4/26/2022
10002 01:00 AM 4/26/2022
10002 04:00 AM 4/25/2022
10002 01:00 AM 4/26/2022
10002 02:00 AM 4/25/2022
10002 01:00 AM 4/26/2022
10002 03:00 AM 4/26/2022
10003 03:00 AM 4/26/2022
10003 03:00 AM 4/26/2022
10003 02:00 AM 4/25/2022
10003 02:00 AM 4/26/2022
10003 04:00 AM 4/25/2022
10003 04:00 AM 4/25/2022
10003 03:00 AM 4/25/2022
10003 01:00 AM 4/26/2022

此公式计算该日期在该序列中出现的次数,并将其除以唯一次数:

=COUNTIFS($A:$A,G2,$C:$C,H2)/SUMPRODUCT((($A:$A=G2)*($C:$C=H2))/(COUNTIFS($A:$A,G2,$C:$C,H2,$B:$B,$B:$B)+(($A:$A<>G2)+($C:$C<>H2))))

借助 Office 365,我们可以动态地完成整个 table:

=LET(rng,A2:C25,
    ser,INDEX(rng,,1),
    hr,INDEX(rng,,2),
    dt,INDEX(rng,,3),
    unqdtser,UNIQUE(CHOOSE({1,2},ser,dt)),
    ttlcnt,COUNTIFS(ser,INDEX(unqdtser,,1),dt,INDEX(unqdtser,,2)),
    unq,BYROW(unqdtser,LAMBDA(a,COUNT(UNIQUE(FILTER(hr,(ser=INDEX(a,,1))*(dt=INDEX(a,,2))))))),
    SORT(CHOOSE({1,1,2},unqdtser,ttlcnt/unq),{1,2}))

这个公式被放在输出的左上角单元格中,结果会溢出。它会随着数据自动增长和收缩。