「一比鴨鴨」歌詞字數出現頻率統計

2024/02/17閱讀時間約 3 分鐘
一比鴨鴨 一比一比鴨
一比鴨鴨 一比一比鴨
一比鴨鴨 一比一比鴨鴨
一比一比鴨鴨 一比一比鴨

請問上面的歌詞裡面,「一」出現了幾次、「比」出現了幾次、「鴨」又出現了幾次呢?我用 Google 試算表算給你看!

如果你沒聽過這首兒歌的話,這邊放上 YouTube 的連結:

(引用來源:momokids 親子台

歡迎到這邊來看看我的計算過程




思考過程

這邊是歌詞,我把它放在工作表「歌詞」這邊:

raw-image

看了一下歌詞,感覺用簡單的 COUNTIF 來算即可。

但目前歌詞全都放在一個儲存格裡面,我得把這些字一個個打散、放到一個範圍裡面。所以過程就會是:

  1. 把儲存格內的字打散,放到一個範圍內(希望是一欄,比較好看)。
  2. COUNTIF 來求答案。

所以我新增了一個「計算過程」的工作表:

raw-image

好,來看看怎麼做!


把儲存格內的字打散,放到一欄

因為這邊的儲存格沒有任何字元可以把歌詞一個個分割,所以不能用 SPLIT 函式或是系統內建的分割功能來取,得用 MID 一個個做。

我想到用 MID 取得第一個字、第二個字、第三個字⋯⋯,取到第 N 個字,像是這樣:

=MID(歌詞!A2, 1, 1)
=MID(歌詞!A2, 2, 1)
=MID(歌詞!A2, 3, 1)
...
=MID(歌詞!A2, N, 1)

這邊的 N 是指歌詞裡最後一個字的位置。

問題在於中間的 1、2、3 要怎麼生成。

如果要一個個儲存格取,也非常不方便,所以想到了用 SEQUENCE 函式跟 ArrayFormula 的結合:

=ArrayFormula(MID(歌詞!A2, SEQUENCE(1, N), 1))

N 就是整個歌詞的總字數,也就是字元長度。這麼一來,ArrayFormula 就會幫我處理 SEQUENCE 函式的結果,建立從 1 到 N 的數列(1、2、3、⋯⋯、N)。

至於這個 N 的寫法,就用 LEN 函式來取歌詞的長度就可以了。

所以把所有的想法組成,寫到這邊是:

=ArrayFormula(MID(歌詞!A2, SEQUENCE(1, LEN(歌詞!A2)), 1))

來看看執行結果:

raw-image

欸,等等,資料全部往右長了(笑)!

雖然到這步驟已經可以用 COUNTIF 來算了,但是有點長得不是很好看,所以我用 TRANSPOSE 函式把這一列轉過來,也就是:

=TRANSPOSE(ArrayFormula(MID('歌詞'!A2, SEQUENCE(1, LEN('歌詞'!A2)), 1)))
raw-image

舒服多了!前進到第二步的 COUNTIF 來收尾吧。


用 COUNTIF 來求答案

這邊再準備一下 COUNTIF 的表格:

raw-image


在 D2 寫 COUNTIF

=COUNTIF($A$2:$A, C2)

我們得到 13:

raw-image

代表這段歌詞裡面「一」有 13 個!

再來看看「比」跟「鴨」有多少。把算式套用到下面兩個儲存格:

raw-image

算完了!所以結論是:

一有 13 個、比有 13 個、鴨有 13 個,
三個字出現的次數一樣多!(笑)

另外也有網友製作了動畫,你可以看看單字隨著歌曲進行增加的統計:

(引用來源:數據實驗室-Data Lab



如果你喜歡這次的文章,歡迎你透過這些方法支持我:

  • 按下愛心、按下儲存
  • 留言告訴我你的想法
  • 加入喜特先生的官方沙龍,即時看到我發布的教學
  • 付費訂閱喜特先生的官方沙龍,加入每月小額訂閱方案
  • 追蹤喜特先生的 Facebook
  • 這邊小額贊助我的創作!

想要看更多文章的話,歡迎來到我的 Notion 頁面找找有沒有你需要的資源喔!

我是喜特先生,Mr. Sheet,我們下個教學見!



4.8K會員
139內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
留言0
查看全部
發表第一個留言支持創作者!