計算Excel中的群組中值出現的頻率

計算Excel中的群組中值出現的頻率

我有一個值列表,想要計算值超過 400 的次數,但如果下一行值也符合此條件,則不應計算在內。我認為 COUNTIF 公式在這種情況下沒有用。請參閱附圖以便更好地理解。

在此輸入影像描述

答案1

在此輸入影像描述

在此圖像中,我將您的標準值放入單元格 A2 中。

在 E 至 H 列中,公式被輸入到資料的第一行(電子表格中的第 3 行),然後複製到範圍的底部。

E 列中有一個公式,用來取得上一行的值:

=IF(ISTEXT(B2),0,B2)

F 列中的公式用於計算目前行(B 列中)的值是否大於儲存格 A2 中的條件,以及上一行(現在 E 列中)的值是否小於或等於儲存格 A2 中的條件儲存格A2 。此公式在一組大於條件的行開始的行中傳回 1:

=IF(AND(E3<=$A$2,B3>$A$2),1,0)

G 列中是 F 列中的值的運行總和:

=SUM($F$3:F3)

請注意,範圍中的第一個引用是用絕對引用錨定的。當這個公式被複製下來時,它求和的範圍將會增大,導致 G 列中顯示的值。

最後,在 H 列中,如果 B 列中的值大於儲存格 A2 中的條件,我們將顯示 G 列中的值:

=IF(B3>$A$2,G3,"")

如果您擁有最新版本的 Office 365,則可以將所有步驟合併到一個公式中,該公式僅在上圖中的儲存格 I2 中輸入:

=LET(
base,$A$2,
data,$B$3:$B$12,
prev,OFFSET(data,-1,0),
numprev,IF(ISTEXT(prev),0,prev),
grpchg,BYROW(CHOOSE({1,2},data,numprev),LAMBDA(r,IF(AND(INDEX(r,,1)>base,INDEX(r,,2)<=base),1,0))),
runsum,SCAN(0,grpchg,LAMBDA(a,b,a+b)),
output,IF(data>base,runsum,""),
output)

相關內容