有没有办法在特定标准内获得动态标准的平均值?
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}))
这个公式被放在输出的左上角单元格中,结果会溢出。它会随着数据自动增长和收缩。
我需要获取每个序列号和每个日期值的小时数的平均值。获取总数很容易,但我无法获取股息的动态唯一值(以绿色突出显示)。我知道获得平均值的唯一方法是创建一个数据透视表,然后手动计算平均值。如下面的屏幕截图所示。有没有办法只使用 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}))
这个公式被放在输出的左上角单元格中,结果会溢出。它会随着数据自动增长和收缩。