Skip to content

Excel 第9課:自訂函數

本節課將介紹 Excel 中的自訂函數功能,讓你在處理複雜的資料時更加得心應手。

9.1 自訂函數的概念和使用方法

自訂函數 (User Defined Function, UDF) 是指在 Excel 中自行編寫的函數,可以根據自己的需求和要求進行編寫和使用。自訂函數可以大大擴展 Excel 的功能,讓使用者可以根據自己的需要創建特定的函數,並且可以重複使用。

自訂函數的編寫步驟如下:

  1. 打開 Excel 並創建一個新的工作表。

2. 選擇“開發人員”選項卡,選擇 “Visual Basic”,在 “Visual Basic” 中選擇插入,然後選擇模組。編寫自己的函數代碼。例如,以下是一個自訂函數,用於計算兩個數字的和:

Function AddNumbers(num1, num2)
	AddNumbers = num1 + num2
End Function

3. 在 Visual Basic 編輯器中,選擇“檔案”功能表,然後選擇“保存”選項。

4. 回到 Excel 工作表,輸入函數名稱和參數,例如,輸入“=AddNumbers(2,3)”並按下“Enter”鍵,即可計算出兩個數字的和。

9.2 自訂函數的應用

自訂函數還可以嵌套使用,實現更為複雜的計算和操作。例如,以下是一個計算折扣回贈的例子:

商品編號商品名稱銷售單價1月份銷售數量
A0001iPhone7,000.0032
A0002iPad4,500.0053
A0003AirPods1,500.0086
A0004MacBook12,000.0017
A0005Apple TV3,000.0049
請先把以上數據複製和貼上 Excel

套用以上第 8 節課的例子,我們可以得出以下的「1月份銷售額」數據:

假設我們要計算 1 月份的佣金回贈,佣金回贈金額的計算是:如果「1月份銷售數量」大於 50 件,則以第 51 件起的銷售額的 20% 作佣金回贈。我們可以在 “Visual Basic” 中編寫以下代碼來創建自訂函數。

Function Rebate(num1, num2)
   If num1 > 50 Then
     Rebate = (num1 - 50) * num2 * 0.2
   Else
     Rebate = 0
   End If
 
 Rebate = Application.Round(Rebate, 2)
End Function

該函數可以計算折扣回贈金額,輸入“=Rebate(D2,C2)”並按下“Enter”鍵,即可計算出。

9.3 使用自訂函數計算稅款的例子

我們甚至可以使用自訂函數進行更複雜的計算,以下是使用自訂函數簡單計算累進稅率下的稅款的例子,我們可以在 “Visual Basic” 中編寫以下代碼來創建自訂函數。

Function TaxPay(num)
   If num > 132000 Then
    If num > (132000 + 50000) Then
        If num > (132000 + 50000 + 50000) Then
            If num > (132000 + 50000 + 50000 + 50000) Then
                If num > (132000 + 50000 + 50000 + 50000 + 50000) Then
                  TaxPay = 50000 * 0.02 + 50000 * 0.06 + 50000 * 0.1 + 50000 * 0.14 + (num - (132000 + 50000 + 50000 + 50000 + 50000)) * 0.17
                Else
                  TaxPay = 50000 * 0.02 + 50000 * 0.06 + 50000 * 0.1 + (num - (132000 + 50000 + 50000 + 50000)) * 0.14
                End If
            Else
              TaxPay = 50000 * 0.02 + 50000 * 0.06 + (num - (132000 + 50000 + 50000)) * 0.1
            End If
        Else
          TaxPay = 50000 * 0.02 + (num - (132000 + 50000)) * 0.06
        End If
    Else
      TaxPay = (num - 132000) * 0.02
    End If
   Else
     TaxPay = 0
   End If
 
 TaxPay = Application.Round(TaxPay, 2)
End Function

在上圖中,右方是香港的累進稅率,左方是 7 個不同的全年收入例子。我們可以輸入“=TaxPay(A2)”並按下“Enter”鍵,即可簡單計算出各例子在累進稅率下的應繳稅款。

自訂函數的使用可以幫助用戶擴展 Excel 的功能,提高工作效率,並且可以讓使用者根據自己的需求和要求自訂特定的函數。自訂函數可以讓用家把複雜的計算公式放在 “Visual Basic” 中,然後在 Excel 版面中,只需輸入簡單的公式即可完成複雜的計算,這樣對「需要重複使用複雜公式」的用家有很大的幫助。

Leave a Reply

Your email address will not be published. Required fields are marked *

en_USEnglish