LAMBDA 函式(二):MAKEARRAY

更新於 發佈於 閱讀時間約 6 分鐘

我們馬上來介紹 LAMBDA 函式的第一個輔助函式 MAKEARRAY

把「make array」直翻是「製作陣列」的意思,更具體地來說,它可以讓我們建立指定欄數與列數的範圍,裡面由 LAMBDA 的運算指定這個範圍裡面的值

比如說,我們可以用 MAKEARRAY 做一張隨機亂數表:

raw-image

做一張隨機人員清單:

raw-image

也可以做一張九九乘法表:

raw-image

這就是 MAKEARRAY 的效果!

好奇怎麼做的話,練習用的試算表在這邊,歡迎複製一份來玩玩看。我們開始囉!



MAKEARRAY 語法

=MAKEARRAY(列數, 欄數, LAMBDA)
  • 列數:輸出結果的列數。
  • 欄數:輸出結果的欄數。
  • LAMBDA:這邊寫你想要 MAKEARRAY 套用的 LAMBDA 函式,在這邊要包括已命名函式也沒問題。

MAKEARRAY 這邊要提供指定的列數與欄數,參數會與 MAKEARRAY 寫的列與欄相對應。我通常會在這寫英文字母的 rowcol,分別代表 row(列)跟 column(欄)。舉例來說,我想要寫一個 5 列 3 欄的結果,那麼就是:

=MAKEARRAY(5, 3, LAMBDA(row, col, 想寫的自訂算式))

複習一下上次提到的輔助函式與後面 LAMBDA 參數的關係:


raw-image

所以以上面的例子來看,我們在 MAKEARRAY 寫的 5 就會對應到後面的 row,3 就會對應到後面的 col 囉。




隨機亂數表

先從簡單的例子開始吧!我想做一張 10 列 5 欄的隨機亂數表,讓它可以隨機顯示 1 到 100 的數字:

raw-image

先釐清一下我們需要什麼:

  • 列:10
  • 欄:5
  • LAMBDA:要包含之前的列跟欄的參數,代表要處理的列數與欄數,然後寫下 RANDBETWEEN 函式讓它產生 1 到 100 的亂數。

所以我們在 MAKEARRAY 設下的 10 跟 5,就對應到後面的 row 跟 col,也就是:

  • 10 → row
  • 5 → column


好,我們在 A2 這邊寫下:

=MAKEARRAY(10, 5, LAMBDA(row, col, RANDBETWEEN(1, 100)))
raw-image

輕鬆按下 Enter,來看看結果:

raw-image

這樣就做出來了!接下來只要編輯工作表的任何地方,上面的數字就會隨機跳動。如果你不希望這樣,可以把表全選起來,複製後貼上值(Ctrl/Cmd + Shift + V)。


另外,如果沒有打算用 LAMBDA 來處理的話,也可以用產生隨機亂數陣列的 RANDARRAY 來做,可惜因為它只能指定 0 到 1 的亂數,我們要換個想法:

=ArrayFormula(ROUND(RANDARRAY(10, 5) * 100))
  • RANDARRAY:產生出 10 列 5 欄的亂數陣列,其陣列的數值介於 0 之 1 之間,之後再將這個值乘以 100。
  • ROUND:取約數,把小數點捨去做四捨五入。
  • 最後用 ArrayFormula 把運算套用到陣列上。

我把這個做法放在練習題的右手邊,你可以參考看看。




隨機人員清單

接下來我們試著做一張隨機人員名單。

我們想要讓 MAKEARRAY 可以按照 G 欄的人員,隨機產生一個 8 列 6 欄的清單:

raw-image

我們試著釐清現在需求有哪些:

  • 列:8
  • 欄:6
  • LAMBDA:要包含之前的列跟欄的參數,代表要處理的列數與欄數。

我想到的 LAMBDA 寫法是:

  1. 先用 COUNTA 算出名單共有多少人
  2. 再用 RANDBETWEEN 函式產生 1 到人員數量(從第一步得到)的亂數
  3. 把這個亂數傳給 INDEX 函式,讓它去選 G 欄的其中一格,這樣就會隨機取得人員了。

也就是:

LAMBDA(row, col, INDEX(G2:G, RANDBETWEEN(1, COUNTA(G2:G))))


導到這步,我們就可以跟 MAKEARRAY 拼裝起來了!

一樣在 A2 寫下:

=MAKEARRAY(8, 6, LAMBDA(row, col, INDEX(G2:G, RANDBETWEEN(1, COUNTA(G2:G)))))

颯爽按下 Enter 鍵,就會得到:

raw-image

搞定!


如果名單有刪減,也可以順利對應!我在 G 欄新增了「喜喜」,左手邊的表格也出現了新資料:

raw-image




九九乘法表

最後,我們來做做看九九乘法表:

raw-image

九九乘法有 9 列 9 欄,然後我們想要讓文字呈現像是「列的數字 x 欄的數字 = 列跟欄的乘積(兩數相乘的結果)」,像是:

1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
...


不過這邊有個小問題,在做相乘的時候,怎麼知道列的數字跟欄的數字是多少?

如果你的 LAMBDA 寫的值沒有做什麼處理,它 MAKEARRAY 的預設值就是從 1 開始。我們可以想像寫 MAKEARRAY 的儲存格位置的左方跟上方有這樣的「座標」:

raw-image

而九九乘法表,就是拿列的值跟欄的值相乘:

raw-image

那做到這步,我們來釐清一下需求:

  • 列:9
  • 欄:9
  • LAMBDA:列的數字 & 乘號 & 欄的數字 & 等號 & 列的數字與欄的數字的乘積

也就是:

LAMBDA(row & " x " & col & " = " & row * col)


好!來試著把它跟 MAKEARRAY 拼裝起來:

=MAKEARRAY(9, 9, LAMBDA(row, col, row & " x " & col & " = " & row * col))

愉快按下 Enter,看看結果:

raw-image

這樣就完成囉!

希望透過這些練習有讓你對 MAKEARRAY 有一些了解。




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

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

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

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



留言
avatar-img
留言分享你的想法!
avatar-img
喜特先生官方沙龍
20.6K會員
153內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 Google 試算表教學、Google Apps Script 的研究、數據分析課程的開箱,還有 Google 試算表疑難雜症的解題分享唷!💪
2025/04/20
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
Thumbnail
2025/04/20
請你試著在 Google 試算表的儲存格上打這個,按下 Enter: =WHATTHEFOXSAY() 會有神奇的事情發生喔 ✨
Thumbnail
2024/06/02
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
Thumbnail
2024/06/02
上次介紹了 REPLACE 函式,可以用來取代儲存格內的特定文字。其實我們還有一個相似的函式叫 SUBSTITUTE,也有取代的功能,不過當然有一點不一樣的地方!今天會分享語法的範例,還有跟 REPLACE 的差異在哪。一起來看看!
Thumbnail
2024/05/25
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
Thumbnail
2024/05/25
這是文字處理基礎函式的第四篇文章,今天要來介紹 REPLACE 函式! REPLACE 可以取代掉儲存格內的文字,今天會分享一下它語法怎麼寫、也有兩個實際應用的案例。一起來看看! REPLACE 語法 REPLACE 的語法長了一點點,有四個參數要設定: =REPLACE(要取代
Thumbnail
看更多
你可能也想看
Thumbnail
【這個系列,目標是以比較輕鬆的方式讓大家一起學習AE表達式。】 本文是番外篇 3,主要是一些概念的補充,介紹陣列。
Thumbnail
【這個系列,目標是以比較輕鬆的方式讓大家一起學習AE表達式。】 本文是番外篇 3,主要是一些概念的補充,介紹陣列。
Thumbnail
喜特先生發佈了一系列介紹 LAMBDA 的文章,我把它們都統整在這了!你可以從頭開始學習,也可以找你有興趣的函式開始學習唷。 LAMBDA 函式(一):基本原理 介紹了 Google 試算表在 2022 年推出的 LAMBDA 函式和其輔助函式,以及如何在試算表中使用它們。LAMBDA
Thumbnail
喜特先生發佈了一系列介紹 LAMBDA 的文章,我把它們都統整在這了!你可以從頭開始學習,也可以找你有興趣的函式開始學習唷。 LAMBDA 函式(一):基本原理 介紹了 Google 試算表在 2022 年推出的 LAMBDA 函式和其輔助函式,以及如何在試算表中使用它們。LAMBDA
Thumbnail
再來介紹最後一個 LAMBDA 輔助函式,REDUCE!「reduce」這詞在中文的意思是「縮減」。在 Google 試算表上,REDUCE 會把範圍中的每個值套用指定的 LAMBDA 函式,把這函式的結果累計到一個累計值裡,最後回傳這個值,像是把一個範圍「縮~」成一個值。
Thumbnail
再來介紹最後一個 LAMBDA 輔助函式,REDUCE!「reduce」這詞在中文的意思是「縮減」。在 Google 試算表上,REDUCE 會把範圍中的每個值套用指定的 LAMBDA 函式,把這函式的結果累計到一個累計值裡,最後回傳這個值,像是把一個範圍「縮~」成一個值。
Thumbnail
接下來介紹 LAMBDA 函式的第四個輔助函式,SCAN! 「scan」在這邊可以翻成「掃描」,而 SCAN 的作用在於對範圍中的每個值進行「掃描」、累計運算,會回傳一個範圍,裡面的數字是每個計算步驟的中繼值;而它最常見的用法就是算「移動總計」(running total)。
Thumbnail
接下來介紹 LAMBDA 函式的第四個輔助函式,SCAN! 「scan」在這邊可以翻成「掃描」,而 SCAN 的作用在於對範圍中的每個值進行「掃描」、累計運算,會回傳一個範圍,裡面的數字是每個計算步驟的中繼值;而它最常見的用法就是算「移動總計」(running total)。
Thumbnail
接著想要一口氣介紹兩個類似的 LAMBDA 輔助函式:BYROW 跟 BYCOL。
Thumbnail
接著想要一口氣介紹兩個類似的 LAMBDA 輔助函式:BYROW 跟 BYCOL。
Thumbnail
今天要接著聊聊 LAMBDA 的第二個輔助函式,MAP。 英文中「map」這個詞除了有名詞「地圖」的意思之外,在電腦科學與數學領域裡面偶有動詞「映射」的意思。一起來看看怎麼用!
Thumbnail
今天要接著聊聊 LAMBDA 的第二個輔助函式,MAP。 英文中「map」這個詞除了有名詞「地圖」的意思之外,在電腦科學與數學領域裡面偶有動詞「映射」的意思。一起來看看怎麼用!
Thumbnail
我們馬上來介紹 LAMBDA 函式的第一個輔助函式 MAKEARRAY!
Thumbnail
我們馬上來介紹 LAMBDA 函式的第一個輔助函式 MAKEARRAY!
Thumbnail
Google 試算表在 2022 年隆重推出了 LAMBDA 函式跟它的輔助函式,讓使用者可以製作自己的函式,還可以在指定範圍內做複雜的運算。LAMBDA 的出現,讓我們在試算表的資料處理能力帶來了革命性的進步,可以更輕鬆地完成複雜的工作!一起來看看。
Thumbnail
Google 試算表在 2022 年隆重推出了 LAMBDA 函式跟它的輔助函式,讓使用者可以製作自己的函式,還可以在指定範圍內做複雜的運算。LAMBDA 的出現,讓我們在試算表的資料處理能力帶來了革命性的進步,可以更輕鬆地完成複雜的工作!一起來看看。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News