LAMBDA 函式(四):BYROW、BYCOL

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

接著想要一口氣介紹兩個類似的 LAMBDA 輔助函式:BYROWBYCOL

「row」跟「col」(column 的縮寫)在 Google 試算表分別是「列」與「欄」,這邊的「by」可翻成「每⋯⋯」的意思,所以你可以把它們兩個函式理解成:

  • BYROW:在指定範圍的逐列套用 LAMBDA 函式
  • BYCOL:在指定範圍的逐欄套用 LAMBDA 函式

我們常在這些地方用 BYROWBYCOL

  • 跟聚集函式配合SUMAVERAGECOUNT / COUNTAMAXMIN):計算每列或是每欄的聚集結果。
  • 篩選數據、格式化數據:可以逐列依照條件篩選文字、數字,又或是讓它們以某種格式顯示。這效用類似於 MAP

老樣子,歡迎來這邊領取練習用的試算表,一起來實作看看!




BYROW 語法、BYCOL 語法

=BYROW(範圍, LAMBDA)
=BYCOL(範圍, LAMBDA)
  • 範圍:要套用 LAMBDA 函式的範圍。這邊只能填一個,不能有多個。
  • LAMBDA:要 BYROWBYCOL 套用於範圍內每列或每欄的自訂函式。

看得出這兩個函式語法很接近!另外給你一個小技巧:

  • BYROW 函式的結果會「往下長」
  • BYCOL 函式的結果會「往右長」




BYROW 範例

我想先舉個 BYROW 的例子,一起來看看語法怎麼寫吧。

假如我想一口氣計算 A 欄的各店家第一季到第四季營收(B 欄到 E 欄)的總和(E 欄):

raw-image

我要先指定計算的範圍,也就是 B2E4

=BYROW(B2:E4, 

接下來就是 LAMBDA 了。我想取每列的總和,所以代號取 row(表「列」的意思),再用 SUM 把它包起來:

=BYROW(B2:E4, LAMBDA(row, SUM(row))

這樣就一口氣算好了!

raw-image


如果不用 BYROW⋯⋯

要達到一樣這種一口氣的效果,或許要借助 ArrayFormula 的力量:

=ArrayFormula(B2:B + C2:C + D2:D + E2:E)
raw-image

不過看起來沒那麼理想。一來是它會產生很多 0,可能得再用其他方法才可以消去 0(像是 IF 或是 ARRAY_CONSTRAIN 限制顯示的結果),二來是這串「B2:B + C2:C + D2:D + E2:E」看起來不漂亮,萬一有很多欄要加總的話,也挺花時間的。

你也可以在開頭寫 SUM 來算整列,然後再手動向下拉:

=SUM(B2:E2)

但這樣就多了一步,且工作表內的算式就會變多,會影響管理跟效能。


所以這就是 BYROWBYCOL 常常會和聚集函式在一起用的一大原因!

我把這個結果放在「BYROW 範例」工作表,你可以參考看看。




BYCOL 範例

BYCOL 也是類似的使用場景,只是變成逐欄計算。舉例來說,我們用同一組資料,來算「每季最高營收」是多少:

raw-image


我們在 B2BYCOL 起頭:

=BYCOL(

範圍一樣是 B2E4

=BYCOL(B2:E4, 

最後定義 LAMBDA 要如何計算。我想取每欄的最大值,所以代號取 col(表「欄」的意思),再用 MAX 把它包起來:

=BYCOL(B2:E4, LAMBDA(col, MAX(col)))

來看看結果:

raw-image

這樣就搞定啦!


我們最後來看一個比較複雜一點的 BYROW 場景。



勤學徽章與加油徽章:用指定條件對每列做分類

假設你是一位班導師。最後一次段考結束了,你收到了每個學生每科的成績。你要基於下面的條件,給學生兩種徽章來鼓勵同學:

  • 勤學徽章:各科平均超過 80 分。
  • 加油徽章:各科平均低於 60 分,且每科都低於 60 分。

這是成績單,我們要在 G 欄寫產生出結果:

raw-image


好!來試著寫看看吧。我們先釐清一下需求:

  • 範圍:B2:F31
  • LAMBDA:這邊要做多條件的判定(判斷是勤學徽章、加油徽章以及兩者皆非),所以會用到 IFSIFNA。要計算平均值就會用到 AVERAGE,要找最大值就是 MAX

因為要對每列做判斷,所以選擇以 BYROW 開頭:

=BYROW(

範圍就是 B2F31

=BYROW(B2:F31, 

再來是 LAMBDA。我們要讓 LAMBDA 運算每列,所以用「row」作為代號:

=BYROW(B2:F31,
LAMBDA(row,

(因為想到等等的 LAMBDA 可能會寫很長,就先斷行了。你可以用 Ctrl/Cmd + Enter 在算式間斷行)

我們要對每列成績做多條件判斷,且需要顧慮到有兩者皆非的可能性,所以先寫 IFNAIFS

=BYROW(B2:F31,
LAMBDA(row, IFNA(IFS(

到這裡就可以開始寫條件了:

  • 如果各科平均超過 80 分,就是勤學徽章
  • 如果各科平均低於 60 分,且每科都低於 60 分,就是加油徽章。

翻譯成算式,就會像這樣:

=BYROW(B2:F31,
LAMBDA(row, IFNA(IFS(AVERAGE(row) > 80, "勤學徽章",
AND(AVERAGE(row) < 60, MAX(row) < 60), "加油徽章"))))


我們在 G2 執行看看:

raw-image

完成!


這種利用 IFSANDOR 配合、篩選分類數據的方法,也是另一個 BYROWBYCOL 的常用場景,可以跨過 ArrayFormula 對特定函式無法套用的障礙。




在做數據分析的時候,我們往往見到比較「長」的表格,也就是列數較多、欄數較少的表格,所以實務上我比較常用 BYROW 來解決這類批次聚集運算、或是分類數據的問題。BYCOL 在「寬」表格當然也很好用,把 BYROW 學會了,你就可以輕鬆學會 BYCOL




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

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

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

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



留言
avatar-img
留言分享你的想法!
程騰榮-avatar-img
2024/06/19
要消去 0,非常簡單,不用加公式。只要「格式 」→「數值 」→「自訂數字格式 」→「 0;; 」就行。
喜特先生 Mr. Sheet -avatar-img
發文者
2024/05/04
LAMBDA 系列文索引提及了這篇文章,趕快過去看看吧!
R-avatar-img
2024/04/18
byrow可以用來自動編號嗎?假設要在A欄從A2儲存格開始編號1.2.3....至最後一列,最後一列是會變動增加的我用byrow(A2:A,lambda(編號,編號 + ROW()-1))變成反復運算🙄
喜特先生 Mr. Sheet -avatar-img
發文者
2024/04/18
R 沒問題!我想到兩個方法:(一)單純只想產出流水號,不考慮其他欄有無資料:=SEQUENCE(ROWS(A2:A), 1)(二)當其他欄位有資料時才會出現流水號(你希望畫面比較乾淨一些的場合):=SEQUENCE(COUNTA(A2:A), 1)這邊我做了個簡單的表給你參考(下圖)。用 COUNTA 的話可以讓你在「姓名」這欄有資料時,SEQUENCE 才會產生流水號:
avatar-img
喜特先生官方沙龍
18.4K會員
152內容數
簡潔,快速,有效, 讓你的日常生活、工作生產力大提升! ___ 快按「加入」,馬上追蹤所有喜特先生的更新,有 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
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
介紹朋友新開的蝦皮選物店『10樓2選物店』,並分享方格子與蝦皮合作的分潤計畫,註冊流程簡單,0成本、無綁約,推薦給想增加收入的讀者。
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
當你邊吃粽子邊看龍舟競賽直播的時候,可能會順道悼念一下2300多年前投江的屈原。但你知道端午節及其活動原先都與屈原毫無關係嗎?這是怎麼回事呢? 本文深入探討端午節設立初衷、粽子、龍舟競渡與屈原自沉四者。看完這篇文章,你就會對端午、粽子、龍舟和屈原的四角關係有新的認識喔。那就讓我們一起解開謎團吧!
Thumbnail
高效生活,幫助你找回更多自己的時間 歡迎來到 AL 的 Googlesheet 學習筆記系列文章。在這個系列中,我們將一步步介紹各種函數,並將它們應用於日常生活中,加速工作、提高效率。 今天要介紹的是使用 Index 、 Counta 函數尋找最後一列的資料!
Thumbnail
高效生活,幫助你找回更多自己的時間 歡迎來到 AL 的 Googlesheet 學習筆記系列文章。在這個系列中,我們將一步步介紹各種函數,並將它們應用於日常生活中,加速工作、提高效率。 今天要介紹的是使用 Index 、 Counta 函數尋找最後一列的資料!
Thumbnail
在 Google 試算表中,LEFT、MID、RIGHT 函式都是用來擷取文字字串中特定部分的函式。我想在這次的教學簡單介紹一下它們,歡迎來看看! LEFT:從左邊(開頭)取字串 我們可以用 LEFT 函式從字串的左邊(開頭)取指定字數的字串。 語法 =LEFT(字串, 要取的
Thumbnail
在 Google 試算表中,LEFT、MID、RIGHT 函式都是用來擷取文字字串中特定部分的函式。我想在這次的教學簡單介紹一下它們,歡迎來看看! LEFT:從左邊(開頭)取字串 我們可以用 LEFT 函式從字串的左邊(開頭)取指定字數的字串。 語法 =LEFT(字串, 要取的
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 輔助函式: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 的出現,讓我們在試算表的資料處理能力帶來了革命性的進步,可以更輕鬆地完成複雜的工作!一起來看看。
Thumbnail
已命名範圍是 Google 試算表的功能,簡單來說可以把儲存格參照範圍改成自己想要的名字,可以讓算式更好讀、減少維護時間、減少錯誤機率、在算式和可以用這個名字引用這個範圍。來看看怎麼做!
Thumbnail
已命名範圍是 Google 試算表的功能,簡單來說可以把儲存格參照範圍改成自己想要的名字,可以讓算式更好讀、減少維護時間、減少錯誤機率、在算式和可以用這個名字引用這個範圍。來看看怎麼做!
Thumbnail
這邊統整了所有過去發表過關於 QUERY 函式的教學分享,希望可以方便你按照順序閱讀和練習。 QUERY 可以用來查詢、篩選、聚集、排序資料,還可以做張簡易的資料透視表,是我在 Google 試算表上做數據分析、製作報告、製作儀表板時最常用的函式之一,既方便又好用,誠心推薦!
Thumbnail
這邊統整了所有過去發表過關於 QUERY 函式的教學分享,希望可以方便你按照順序閱讀和練習。 QUERY 可以用來查詢、篩選、聚集、排序資料,還可以做張簡易的資料透視表,是我在 Google 試算表上做數據分析、製作報告、製作儀表板時最常用的函式之一,既方便又好用,誠心推薦!
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News