跳到主要內容跳到頁尾

Google 試算表具名函式怎麼建立:新增、使用、編輯與刪除

6 分鐘閱讀Lv.1 初學者摘要與日期

從「資料」>「已命名函式」開始,一步一步新增具名函式:填函式名稱、說明、引數預留位置與公式定義,補上引數說明與範例,接著在儲存格使用,最後是編輯與刪除。

發布 更新

文章目錄

同一段折扣算式在十幾個儲存格裡複製來複製去,哪天折扣方式改了,你得一格一格找。具名函式可以讓你把這段算式存成自己的函式,之後像 SUM 一樣直接打名字就能用。

LAMBDA 的語法,以及搭配 MAP、REDUCE 的寫法,在 LAMBDA 與 LET 基礎 已經講過了。這篇專心講介面:選單在哪裡、每個欄位要填什麼、建好之後怎麼用、怎麼改、怎麼刪。

先看這次要做的函式

我手上有一張手搖飲的價目表,B 欄是單價,要打 12% 的折扣,也就是賣價 = 單價 × (1 - 0.12)。折扣率放在 G1:

ABG
1品項單價0.12
2蘋果紅茶45
3烏龍奶茶55
4蘋果綠茶45
5青茶35
6桂花烏龍50

先手算第一列:45 × (1 - 0.12) = 45 × 0.88 = 39.6。算式本身不難,只是每一列都寫 的話,折扣的算法就散在整欄裡了。

我們把它做成一個叫 DISCOUNT_PRICE 的函式,吃兩個值:單價和折扣率。如果不存成具名函式,直接寫的話是這樣:

Google 試算表公式
fx

用 LAMBDA 直接呼叫,單價 45、折扣 0.12

=LAMBDA(price, off, price*(1-off))(45, 0.12)

你應該會得到 39.6。具名函式的欄位,就是把這條 LAMBDA 拆開填進面板裡:price、off 是引數預留位置,price*(1-off) 是公式定義。

打開已命名函式面板

點畫面上方的「資料」>「已命名函式」,右側會出現面板。

步驟 1:資料 > 已命名函式,右側開啟面板

圖:面板還沒建過函式時,會看到新增函式的入口。

另外還有一條路:在已經寫好公式的儲存格上按右鍵,選「查看更多儲存格動作」>「定義具名函式」,Google 會把那格的公式帶進來當作定義的起點。出處是 Google 說明中心的 Named functions in Google Sheets。

新增函式

在面板按下新增函式,會看到四個欄位。

步驟 2:新增函式的第一頁,填函式名稱、說明、引數預留位置與公式定義

圖:第一頁的四個欄位,由上到下填完。

  • 函式名稱:之後在儲存格打的名字,填 DISCOUNT_PRICE。Google 說明中心寫名稱會變成大寫。
  • 函式說明:會顯示在函式說明框的「關於」區塊,給之後用的人看,填「單價乘上 (1 - 折扣率)」。
  • 引數預留位置(選填):填 price、off。它們只是用來描述「這裡要放什麼」的文字標籤。
  • 公式定義:真正執行的算式,填 。

這邊有兩個要記的地方。

第一,公式定義裡不用再寫 LAMBDA,引數已經在上一個欄位宣告了。第二,公式定義必須能被解析,括號和逗號都要寫對。

Google 試算表公式
fx

公式定義欄位裡填的內容,price 與 off 是上面宣告的預留位置

=price*(1-off)

補上引數說明與範例

填完第一頁按「繼續」,會進到預覽頁。在「其他資訊(選填)」底下,每個引數預留位置各有「引數說明」和「引數範例」兩格;要改前一頁的內容按「返回」。

步驟 3:新增函式的第二頁,為 price 與 off 填引數說明與範例

圖:引數說明和引數範例,之後會出現在函式說明框裡。

我自己會填,因為這兩格就是之後打函式時彈出來的提示。像這樣:

  • price:說明填「未打折的單價」,範例填 45。
  • off:說明填「折扣,0.12 代表打 12% 的折扣,也就是 88 折」,範例填 0.12。

折扣率到底是填 0.12 還是 12,幾個月後的你八成會忘,寫進說明就不用猜了。

填完按「建立」,函式就存進這份試算表。

在儲存格使用

到 E2,直接輸入函式名稱,Sheets 會像內建函式一樣跳出提示,而且可以看到剛剛填的說明和範例。

步驟 4:在儲存格輸入 =DISCOUNT_ 時跳出的函式說明框

圖:函式說明框裡有函式說明、引數說明與範例。

單價用 B2,折扣率放在 G1,記得加上絕對參照:

Google 試算表公式
fx

用具名函式算蘋果紅茶打折後的賣價

=DISCOUNT_PRICE(B2, $G$1)

你應該會得到 39.6。往下填到 E6,來看看結果:

E
239.6
348.4
439.6
530.8
644

手算一下烏龍奶茶:55 × 0.88 = 48.4,跟表裡一致。

引數預留位置只是描述用的,不能直接拿來當公式用。如果你在儲存格裡直接打 ,會得到錯誤,因為這份試算表裡沒有叫 price 的東西,要透過函式呼叫把值傳進去。

編輯與刪除

回到「資料」>「已命名函式」,面板會列出這份試算表裡所有的具名函式。函式清單裡的每個函式都可以進去修改定義,或是刪掉(入口見下圖)。

步驟 5:面板中的函式清單,以及編輯與刪除的入口

圖:函式清單裡,每個函式可以進去改定義,或是刪掉。

  • 編輯:改公式定義或引數說明,儲存後,所有用到這個函式的儲存格會跟著重算。折扣方式改了,只要改這一處。
  • 刪除:函式刪掉之後,用到它的儲存格就找不到這個名字了,會出現錯誤,所以刪之前先確認有沒有人在用。這個情況在 具名函式進階陷阱 會再展開。

另外一個小細節:公式定義裡如果寫了儲存格範圍,儲存時會被轉成絕對參照。想讓呼叫的人自己決定範圍,就把範圍做成引數傳進來,像上面的 price。

取名字的規則

依 Google 具名函式說明,兩組名稱規則要分開看:

  • 函式名稱不能與內建函式(例如 SUM)、TRUE、FALSE 或 A1/R1C1 位置同名,也不能以數字開頭;不可有空格,特殊符號只允許底線,長度須少於 255 字元。
  • 引數預留位置不能重複、不能是儲存格位置,不可有空格或底線以外的特殊符號。但官方明確允許把引數命名為 SUM;同名時引數優先。實務上仍建議用 amount、price 等能表達用途的名稱,避免遮蔽內建函式。

例如把函式名稱填成 SUM,離開欄位便會顯示「某個內建函式已使用這個名稱」而無法建立。但函式名叫 MRSHEET_ADD、引數依序命名 sum、value、定義 ,就能完成預覽並建立, 回 3。也就是「函式名不可用 SUM,但引數可用 sum」,不是一律禁止所有內建同名文字。

想一個之後看得懂的名字就好,更多命名習慣放在 具名函式實戰:團隊共用函式庫。

練習

1

自己建一個含稅價函式

在「已命名函式」面板新增一個 PRICE_WITH_TAX,引數預留位置是 price 和 rate,公式定義是未稅價乘上 (1 + 稅率)。建好之後,直接寫成 LAMBDA 驗算一次:未稅價 45、稅率 0.05,答案是多少?

建好之後,不妨把你手上最常重複貼的一段算式也存進去,下一步就看看它用起來順不順手。接下來想知道團隊怎麼共用一組函式,就看 具名函式實戰。

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

分享:
喜特先生 Mr. Sheet

喜特先生 Mr. Sheet

數據分析師/商業分析師

八年工作經驗,跨不同業界解決數據需求。做過的案例都整理在作品集。

接下來可以

相關文章

查看所有文章

留言討論

共 0 則留言

訂閱電子報,新文章上線就通知你

免費,隨時可取消。

送出即表示同意服務條款與隱私權政策。