返回列表 上一主題 發帖

請問這12萬筆資料裡面 我要如何統計 "TRUE"連續出現的次數

本帖最後由 ML089 於 2017-4-28 16:32 編輯

用名稱定義公式
xT =FREQUENCY(ROW($1:$120000),ROW($1:$120000)*($A$1:$A$120000=FALSE))

最多出現連續幾個
=MAX(xT)-1


連續出現
D3:D32 =FREQUENCY(xT,MOD(ROW(2:30),29))
範圍陣列公式
PS: 複製上述公式,選D3:D32後將公式貼上編輯列,先按CTRL+SHIFT不放,再按ENTER輸入公式,若成功公式前後會有 {.....}

"幾個"  C3下拉30個
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 3# eric7765

統計true的連續出現次數.rar (372.03 KB)
看看檔案裡的公式(黃色區)

工具列裡 公式 - 名稱管理員,查看 xT 名稱
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 7# eric7765

範圍陣列公式
PS: 複製上述公式,選D3:D32後將公式貼上編輯列,先按CTRL+SHIFT不放,再按ENTER輸入公式,若成功公式前後會有 {.....}

一般公式用 ENTER輸入
陣列公式用 CTRL+SHIFT+ENTER 三鍵齊按輸入
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 9# eric7765


統計true的連續出現次數_TEST.rar (7.44 KB)
小資料練習,看看公式中FREQUENCY函數每個參數變化,先自行體會,不懂再問。

第一個(內)FREQUENCY統計的數要減1才是連續數
因為陣列有120000個不想先減1,這會增加計算時間,所以用取2代替1,取3代替2,來統計連續數數量
FREQUENCY 第二的陣列數值第一個應該為2開始(2,3,4,5,......,0,1),最後應該用1收尾,所以使用MOD函數來處理
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

本帖最後由 ML089 於 2017-4-28 23:33 編輯

統計每個連續數+1
xT =FREQUENCY(ROW($1:$120000),ROW($1:$120000)*($A$1:$A$120000=FALSE))

統計相同的連續數數量
=FREQUENCY(xT,MOD(ROW(2:30),29))
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 13# eric7765

A欄統計
TRUE  =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(A2:A4835<>TRUE)),MOD(ROW(2:33),32))
FALSE =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(A2:A4835<>FALSE)),MOD(ROW(2:33),32))

B欄統計
TRUE  =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(B2:B4835<>TRUE)),MOD(ROW(2:33),32))
FALSE =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(B2:B4835<>FALSE)),MOD(ROW(2:33),32))

C欄統計
TRUE  =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(C2:C4835<>TRUE)),MOD(ROW(2:33),32))
FALSE =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(C2:C4835<>FALSE)),MOD(ROW(2:33),32))
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 18# eric7765

以下資料位於 2:4835列,若有 10000筆表示資料位於 2:10001,將
ROW(2:4835)改為ROW(2:1001)
A2:4835改為A2:A1001

A欄統計
TRUE  =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(A2:A4835<>TRUE)),MOD(ROW(2:33),32))
FALSE =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(A2:A4835<>FALSE)),MOD(ROW(2:33),32))

B欄統計
TRUE  =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(B2:B4835<>TRUE)),MOD(ROW(2:33),32))
FALSE =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(B2:B4835<>FALSE)),MOD(ROW(2:33),32))

C欄統計
TRUE  =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(C2:C4835<>TRUE)),MOD(ROW(2:33),32))
FALSE =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(C2:C4835<>FALSE)),MOD(ROW(2:33),32))
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 16# eric7765

28 29個那邊會出現數字?

這是不要的數字(為1及0的統計數),只是秀出來了解
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 15# eric7765

A欄統計
TRUE  =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(A2:A4835<>TRUE)),MOD(ROW(2:33),32))
FALSE =FREQUENCY(FREQUENCY(ROW(2:4835),ROW(2:4835)*(A2:A4835<>FALSE)),MOD(ROW(2:33),32))

參考上兩式TRUE與FALSE使用差別,因為有空白格時,用 = 容易錯誤,改用 <> 比較好。
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

回復 24# eric7765

可以參考19樓方式比較簡單
B1 {=IF(AND(D$2:D$17=A1:A16),1,0)}
下拉
I6 =COUNTIF(B:B,1)


OR


I6 =COUNT(0/(MMULT(N(N(OFFSET(A1,ROW(1:120000)+COLUMN(A:P)-2,))=N(OFFSET(D2,COLUMN(A:P)-1,))),ROW(1:16)^0)=16))
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

        靜思自在 : 有願放在心裡,沒有身體力行,正如耕田不播種,皆是空過因緣。
返回列表 上一主題