[英]Google Sheets Count Specific Sequences
我有一個復雜的員工時間表,跨越一年,有 25 個人,采用 Google 表格格式。 每個人在某一天可能有不止一項職責,目前這些職責由逗號分隔。 這是一個縮短和簡化的示例,因為我無法附上原始表格以尊重同事的匿名性:
2022 年 1 月 1 日 | 2022 年 1 月 2 日 | 2022 年 1 月 3 日 | 2022 年 1 月 4 日 | 2022 年 1 月 5 日 | 2022 年 1 月 6 日 | 2022 年 1 月 7 日 | 2022 年 1 月 8 日 | 2022 年 1 月 9 日 | 2022 年 1 月 10 日 | 2022 年 1 月 11 日 | 2022 年 1 月 12 日 | 2022 年 1 月 13 日 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
人 1 | 辦公室, , | 實驗室,, | 辦公室, , | 圓潤, , | 更圓,夜呼叫, | 備用電話,圓角, | 備用電話,圓角, | 圓潤, , | 圓潤, , | 圓潤, , | 辦公室, , | ||
人 2 | 圓潤, , | 圓潤, , | 圓潤, , | 圓潤, , | 圓潤, , | 辦公室, , | 辦公室, , | , , | , , | 辦公室, , | 辦公室, , | 辦公室, , | 辦公室, , |
人 3 | 備用電話 | 夜間呼叫,圓角, | 備用電話,圓角, | 辦公室,, | 辦公室, , | 實驗室,, | 實驗室,, | , , | , , | 辦公室, , | 實驗室,, | 辦公室, , | 圓潤, , |
人 4 | , | , | 假期, | 假期, | 辦公室, | 更圓, | 更圓, | 更圓, | 夜間呼叫,圓角 | 更圓, | 更圓, | 更圓, | 辦公室, |
人 5 | , | , | 假期, | 備用電話, | 晚上電話, , | 備用電話, | 假期, | , | , | 假期, | 假期, | 假期, | 假期, |
為了確保公平,我需要量化某些事件發生的頻率。 成員 Osm( Google 表格計算連續發生次數)給了我很大幫助,他提供了一個解決方案來計算連續多天發生的同一事件。 我已經完成了該解決方案並現在理解它,但遇到了另一個障礙。 我需要計算以下序列的頻率:
-備用電話| 備用電話 | 晚上電話
-備用電話| 夜話 | 備用電話
-夜間通話 | 備用電話 | 備用電話
我希望 output 看起來像這樣:
備份/備份/呼叫 | 備份/呼叫/備份 | 呼叫/備份/備份 | |
---|---|---|---|
人 1 | 0 | 0 | 0 |
人 2 | 2 | 0 | 0 |
人 3 | 1 | 1 | 0 |
人 4 | 0 | 2 | 1 |
人 5 | 3 | 0 | 0 |
到目前為止,我已經嘗試過 IF function 的變體,但我是數組公式的新手,並且允許的語法差異讓我感到困惑。 我還開始使用 REGEXREPLACE 並將這些不同的文本字符串中的每一個表示為不同的數字並獲得總和,但這不允許我確定移位發生的順序。
有沒有人有可能適用於此的解決方案? 非常感謝,提前。
使用此公式獲取計數
=ArrayFormula(IF($E$3:$E$500="",,
{BYROW($F3:$500,
LAMBDA(v, COUNTIF(SPLIT(REGEXREPLACE(TEXTJOIN(",", 1, TRIM(REGEXREPLACE(IF(v="","Empty",v), "[[:punct:]]", ""))),
REGEXREPLACE(A$2, " \| ", ","), "♥"), ","), "=♥"))),
BYROW($F3:$500,
LAMBDA(v, COUNTIF(SPLIT(REGEXREPLACE(TEXTJOIN(",", 1, TRIM(REGEXREPLACE(IF(v="","Empty",v), "[[:punct:]]", ""))),
REGEXREPLACE(B$2, " \| ", ","), "♥"), ","), "=♥"))),
BYROW($F3:$500,
LAMBDA(v, COUNTIF(SPLIT(REGEXREPLACE(TEXTJOIN(",", 1, TRIM(REGEXREPLACE(IF(v="","Empty",v), "[[:punct:]]", ""))),
REGEXREPLACE(C$2, " \| ", ","), "♥"), ","), "=♥")))}))
假設第一個選項卡名為Sheet1
,將此公式粘貼到另一張表中
=ArrayFormula({ "Persons", REGEXREPLACE(Sheet1!A2:C2, " \| ", CHAR(10)); Sheet1!E3:E, Sheet1!A3:C})
筆記
密切關注$F3:$500
的范圍 如果您的金額少於或超過 500,請進行相應調整。 我將其設置為 500 以避免丟失參考。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.