Chapter 12. 函式 (七):自定義函式12.2 已命名函式

12.2 已命名函式


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

在「新增已命名函式」視窗中,有以下幾個元素:

  • 已命名函式詳細資料:包括函式名稱、函式說明,函式說明會在輸入函式時出現。
  • 引數預留位置:已命名函式有哪些 Input,可以使用中文。
  • 公式定義:此函式的計算方式,可以使用其他函式及引數計算。

輸入上述內容後,點選「繼續」會出現函式預覽及其他資訊,其他資訊是用來輸入各項引數說明與引數範例。

瞭解介面的各項內容後,接下來將舉四個例子說明已命名函式的用法:

  1. AGE:輸入生日,輸出其年齡

    結果

    詳細資料

    • 函式說明:根據輸入的日期,計算其年齡。
    • 引數預留位置:生日
    • 公式定義:=DATEDIF(生日,TODAY(),"Y")

    函式預覽

    生日:出生日期 / 1966/01/01

  2. CONTAIN:檢查某個值是否有落在某範圍間,輸出 TRUE / FALSE

    結果

    詳細資料

    • 函式說明:特定值是否落在某範圍內。
    • 引數預留位置:搜尋準則範圍
    • 公式定義:=ISNUMBER(MATCH(搜尋準則,範圍,0))

    函式預覽

    • 搜尋準則:要找的項目 / A1
    • 範圍:要在哪裡找 / B1:B20
  3. CONTAIN2:優化 B. 的功能,使其能支援多欄多列的搜尋

    在前一個範例中,因為 MATCH 的 範圍 必須是單欄 / 單列的陣列或範圍,因此 CONTAIN 的 範圍 也會受到此限制,若要讓 CONTAIN 的 範圍 可以使用多欄 / 列,可以將公式改成以下任一種方式:

    • =ISNUMBER(MATCH(搜尋準則,TOCOL(範圍),0)):將 範圍 使用 TOCOL (TOROW / TRANSPOSE 皆可) 轉為單欄 / 列即可。
    • =COUNTIF(範圍,搜尋準則)>0:COUNTIF 的 條件範圍 不受單欄 / 單列的限制。

    使用此函式後,若輸入多欄多列的 範圍 便會得到正確的結果,由 B.、C. 兩個例子可知,在設計已命名函式時,要考慮各種可能發生的情況,並對 Google Sheets 本身的函式概念夠熟悉,才能應付各種可能遇到的情況。


  1. 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 完成) 如下圖:

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