Chapter 12. 函式 (七):自定義函式 › 12.2 已命名函式
12.2 已命名函式
以往自定義函式需要使用 Google Apps Script 才能完成,而現在直接點選「資料 ⭢ 已命名函式」,可以點選「瞭解詳情」查看官方說明,或是點選「查看範例」直接看例子學習,了解用法後可以點選「新增函式」進入「新增已命名函式」視窗建立自己的函式,或是點選「匯入函式」匯入其他 Google Sheets 中已命名的函式,如下圖:

在「新增已命名函式」視窗中,有以下幾個元素:
- 已命名函式詳細資料:包括函式名稱、函式說明,函式說明會在輸入函式時出現。
- 引數預留位置:已命名函式有哪些 Input,可以使用中文。
- 公式定義:此函式的計算方式,可以使用其他函式及引數計算。
輸入上述內容後,點選「繼續」會出現函式預覽及其他資訊,其他資訊是用來輸入各項引數說明與引數範例。
瞭解介面的各項內容後,接下來將舉四個例子說明已命名函式的用法:
- AGE:輸入生日,輸出其年齡
結果

詳細資料
- 函式說明:根據輸入的日期,計算其年齡。
- 引數預留位置:生日
- 公式定義:=DATEDIF(生日,TODAY(),"Y")
函式預覽
生日:出生日期 / 1966/01/01
- CONTAIN:檢查某個值是否有落在某範圍間,輸出 TRUE / FALSE
結果

詳細資料
- 函式說明:特定值是否落在某範圍內。
- 引數預留位置:搜尋準則、範圍
- 公式定義:=ISNUMBER(MATCH(搜尋準則,範圍,0))
函式預覽
- 搜尋準則:要找的項目 / A1
- 範圍:要在哪裡找 / B1:B20
- CONTAIN2:優化 B. 的功能,使其能支援多欄多列的搜尋
在前一個範例中,因為 MATCH 的 範圍 必須是單欄 / 單列的陣列或範圍,因此 CONTAIN 的 範圍 也會受到此限制,若要讓 CONTAIN 的 範圍 可以使用多欄 / 列,可以將公式改成以下任一種方式:
- =ISNUMBER(MATCH(搜尋準則,TOCOL(範圍),0)):將 範圍 使用 TOCOL (TOROW / TRANSPOSE 皆可) 轉為單欄 / 列即可。
- =COUNTIF(範圍,搜尋準則)>0:COUNTIF 的 條件範圍 不受單欄 / 單列的限制。
使用此函式後,若輸入多欄多列的 範圍 便會得到正確的結果,由 B.、C. 兩個例子可知,在設計已命名函式時,要考慮各種可能發生的情況,並對 Google Sheets 本身的函式概念夠熟悉,才能應付各種可能遇到的情況。
- MY_FV:使用四則運算計算出結果年金終值
結果


詳細資料
- 函式說明:根據定期定額支付金額和固定利率,計算年金的未來值。
- 引數預留位置:利率、期數、每期投入金額、現值、到期年金
- 公式定義:用等比級數和公式計算,在此為 =-(現值*(1+利率)^期數+每期投入金額*IF(到期年金=0,1,(1+利率))*(1-(1+利率)^期數)/-利率)。
函式預覽
- 利率:年金的有效利率 / 10%
- 期數:付款期數 / 3
- 每期投入金額:每期需要投入的金額 / -100
- 現值:年金的現值 / -1000
- 到期年金:是否為到期年金,0 = 到期年金、1 = 普通年金/ 0
使用此函式後,其用途和 FV 完全相同,而第 10.2 節的 PV、PMT 也使用四則運算計算出與使用函式相同的結果,各位同學可以自行嘗試完成!
以上函式完成後便可在 Google Sheets 中進一步使用,也可以使用 ARRAYFORMULA (如果自定義函式內的公式可使用 ARRAYFORMULA 完成) 如下圖:

了解已命名函式的用法後,若之後有需要頻繁使用的函式,可以直接建立屬於自己的函式並廣泛運用,絕對會是非常實用的技能,而引數的命名方式與其他相關規定在此省略,但官方說明中皆有詳細的說明。