Nội dung bài viết
Bạn đang mệt mỏi vì phải liên tục gõ lại những chuỗi công thức Excel lồng ghép dài ngoẵng và tốn hàng giờ đồng hồ rà soát lỗi cú pháp mỗi ngày? Việc bảng tính bị phình to rối rắm không chỉ làm giảm tốc độ xử lý báo cáo mà còn gia tăng rủi ro sai sót dữ liệu nghiêm trọng. Trong bài viết này, MSO sẽ hướng dẫn bạn cách tự tạo hàm mới trong Excel cực kỳ đơn giản, từ việc tận dụng sức mạnh không cần code của hàm LAMBDA trên Microsoft 365 đến lập trình hàm VBA (UDF) nâng cao, giúp bạn tự động hóa công việc và bứt phá 200% hiệu suất làm việc chỉ trong vài phút!
Cách tự tạo hàm mới trong Excel bằng hàm LAMBDA
Để thực hiện cách tự tạo hàm mới trong Excel cực nhanh mà không cần viết mã lập trình, công cụ LAMBDA cho phép bạn sử dụng các công thức dài thành một hàm tùy chỉnh thông qua trình quản lý Name Manager chỉ mất vài phút.
Cấu trúc cơ bản của hàm LAMBDA
Hàm LAMBDA hoạt động theo nguyên lý định nghĩa các biến số trước, sau đó áp dụng các biến đó vào một công thức toán học.
Cú pháp chuẩn: =LAMBDA([Tham số 1], [Tham số 2], …, [Công thức tính toán])
- Tham số (Parameters): Là các giá trị đầu vào bạn sẽ cấp cho hàm (tương tự như tham số của hàm SUM hay IF). Bạn nên đặt tên tham số trực quan, viết liền không dấu, ví dụ: doanh_thu, chi_phi, chiet_khau.
- Công thức (Calculation): Là thuật toán bạn muốn Excel thực thi dựa trên các tham số vừa khai báo.
Các bước thiết lập trên Name Manager (Trình quản lý tên)
Dưới đây là quy trình thao tác chuẩn xác để định nghĩa một hàm LAMBDA tính lợi nhuận ròng:
– Bước 1: Viết và kiểm thử công thức nháp
Tại một ô trống bất kỳ trên Excel, bạn gõ công thức:
=LAMBDA(doanh_thu, chi_phi, doanh_thu – chi_phi)(1000, 200)

Nếu ô tính trả về kết quả 800, công thức của bạn đã hoạt động đúng logic. Sao chép lại đoạn =LAMBDA(doanh_thu, chi_phi, doanh_thu – chi_phi).
– Bước 2: Mở trình quản lý Name Manager
Trên thanh công cụ Ribbon, chọn thẻ Formulas → Nhấp vào Name Manager → Chọn New… để mở hộp thoại tạo tên mới.

– Bước 3: Khai báo thông tin hàm
- Name (Tên hàm): Nhập tên hàm bạn muốn tạo. Ví dụ: TINH_LOI_NHUAN.
- Comment (Mô tả): Nhập ghi chú để người dùng khác hiểu cách dùng (Ví dụ: “Hàm tính lợi nhuận sau khi trừ chi phí”).
- Refers to (Tham chiếu): Dán đoạn công thức LAMBDA đã copy ở Bước 1 vào đây. Sau đó nhấn OK và tiến hành đóng hộp thoại.

Kiểm tra và áp dụng hàm LAMBDA vào bảng tính thực tế
Để minh họa sự hiệu quả, chúng ta sẽ áp dụng hàm TINH_LOI_NHUAN vừa tạo vào một bảng dữ liệu giả định.
Thao tác tính toán:
– Bước 1: Tại ô D1, bạn gõ dấu bằng = và bắt đầu nhập chữ TINH_LOI_NHUAN. Excel sẽ tự động gợi ý tên hàm này trong danh sách.
– Bước 2: Mở ngoặc và chọn tham số theo đúng thứ tự: =TINH_LOI_NHUAN(B1, C1).

– Bước 3: Nhấn Enter. Kết quả tại ô D1 sẽ lập tức hiển thị 15.000.000. Bạn chỉ cần kéo công thức xuống (Fill Down) cho các ô còn lại, quy trình tính toán diễn ra cực nhanh và chính xác.
Hướng dẫn cách tự tạo hàm mới trong Excel bằng VBA (Macro)
Khi cần xử lý những thuật toán logic đặc thù hoặc vòng lặp nhiều tầng, cách tự tạo hàm mới trong Excel bằng mã VBA mang lại sức mạnh vượt trội. Bạn sẽ sử dụng môi trường Visual Basic để định nghĩa cấu trúc hàm, giải quyết hiệu quả các bài toán khó.
Kích hoạt thẻ Developer trên thanh công cụ Ribbon
Trước khi viết mã, bạn cần hiển thị công cụ lập trình:
– Bước 1: Vào menu File → Click chọn Options.

– Bước 2: Trong hộp thoại Excel Options, chọn Customize Ribbon ở danh mục bên trái.
– Bước 3: Tại cột Main Tabs bên phải, tích chọn vào ô Developer và nhấn OK. Thẻ Developer sẽ xuất hiện ngay trên thanh công cụ.

Mở cửa sổ VBA và tạo Module mới
Nhấn tổ hợp phím tắt Alt + F11 (hoặc vào thẻ Developer → Chọn Visual Basic) để mở trình soạn thảo VBE.

Trên thanh menu của VBE, chọn Insert → Chọn Module. Thao tác này vô cùng quan trọng vì mã code bắt buộc phải được viết trong một Module độc lập thì Excel mới nhận diện đó là một hàm toàn cục (Global Function) để có thể gọi ra ở mọi Sheet.

Viết mã lệnh (Code) định nghĩa hàm (Function)
Trong khung soạn thảo màu trắng của Module, bạn tiến hành viết mã. Một hàm VBA tiêu chuẩn phải được bao bọc bởi cấu trúc:
VBA
Function [Tên_Hàm]([Biến_1] As [Kiểu_Dữ_Liệu], [Biến_2] As [Kiểu_Dữ_Liệu]) As [Kiểu_Dữ_Liệu_Đầu_Ra]
‘ Khối lệnh xử lý thuật toán
[Tên_Hàm] = [Kết_Quả]
End Function
Việc khai báo rõ ràng kiểu dữ liệu (như Double cho số thập phân, String cho chuỗi văn bản, Integer cho số nguyên) sẽ giúp hàm chạy mượt mà, hạn chế lỗi tràn bộ nhớ khi tính toán file dung lượng lớn.

Lưu file định dạng Macro-Enabled Workbook (.xlsm)
Đây là bước mang tính quyết định. Nếu bạn lưu file dưới định dạng .xlsx thông thường, Excel sẽ tự động xóa sạch toàn bộ mã VBA vừa viết khi bạn đóng ứng dụng.
Để bảo toàn hàm tùy chỉnh, bạn chọn File → Save As → Tại mục Save as type, chọn định dạng Excel Macro-Enabled Workbook (*.xlsm).

Tổng quan về cách tự tạo hàm mới trong Excel

Cách tự tạo hàm mới trong Excel (User Defined Function – UDF) là việc sử dụng tính năng LAMBDA hoặc lập trình VBA để rút gọn chuỗi công thức phức tạp thành một tên hàm ngắn gọn, giúp tối ưu hóa quá trình xử lý dữ liệu.
Lợi ích khi xây dựng hàm tùy chỉnh (UDF)
- Tiết kiệm thời gian: Gọi tên hàm nhanh chóng thay vì phải viết lại các công thức lồng ghép phức tạp (IF, VLOOKUP, INDEX, MATCH) ở từng file báo cáo.
- Hạn chế lỗi cú pháp: Đóng gói công thức giúp giảm thiểu rủi ro thiếu dấu ngoặc hoặc tham chiếu sai ô dữ liệu.
- Bảo mật logic tính toán: Giúp ẩn thuật toán tính toán (hoa hồng, lương, định mức) bên trong mã VBA để người khác không thể sao chép khi chia sẻ file.
Phân biệt hàm LAMBDA và hàm VBA
|
Tiêu chí |
Hàm LAMBDA |
Hàm VBA (Visual Basic for Applications) |
|
Yêu cầu kỹ năng |
Không cần viết code, thao tác trực tiếp trên Name Manager. |
Cần kiến thức lập trình cơ bản trong cửa sổ VBE. |
|
Độ phức tạp |
Rút gọn công thức nhanh, xử lý bài toán vừa và nhỏ. |
Xử lý thuật toán vòng lặp nhiều tầng, mảng dữ liệu lớn và can thiệp sâu hệ thống. |
|
Phiên bản hỗ trợ |
Microsoft 365, Excel 2021 trở lên. |
Hỗ trợ trên tất cả phiên bản Excel. |
Các ví dụ thực tế về cách tự tạo hàm mới trong Excel
Áp dụng cách tự tạo hàm mới trong Excel vào thực tế giúp giải quyết trực diện các bài toán tính thuế phức tạp, trích xuất dữ liệu rác và tạo mã tự động với độ chính xác tuyệt đối.
Ví dụ 1: Tạo hàm tính tiền hoa hồng bán hàng (Sử dụng VBA)
Bài toán: Doanh nghiệp có chính sách chi trả hoa hồng lũy tiến như sau:
- Doanh thu dưới 10.000.000 đ: Hoa hồng 0%.
- Doanh thu từ 10.000.000 đ đến 20.000.000 đ: Hoa hồng 5%.
- Doanh thu trên 20.000.000 đ: Hoa hồng 10%.
Nếu dùng hàm IF lồng nhau trên Excel, công thức sẽ rất rối mắt. Việc viết một hàm VBA TINH_HOA_HONG sẽ gọn gàng hơn nhiều.
Mã VBA thực thi:
VBA
Function TINH_HOA_HONG(DoanhThu As Double) As Double
If DoanhThu < 10000000 Then
TINH_HOA_HONG = 0
ElseIf DoanhThu <= 20000000 Then
TINH_HOA_HONG = DoanhThu * 0.05
Else
TINH_HOA_HONG = DoanhThu * 0.1
End If
End Function

Ứng dụng thực tế: Trở lại bảng tính Excel, tại ô kết quả, bạn chỉ cần gõ =TINH_HOA_HONG(50000000), hệ thống sẽ tự động đối chiếu điều kiện và trả về ngay kết quả 5000000 (10% của 50 triệu) cực nhanh.

Ví dụ 2: Tạo hàm tách chữ cái đầu tiên (Tạo mã nhân viên) bằng LAMBDA
Bài toán: Bạn cần chuyển đổi chuỗi “Nguyễn Văn A” thành mã viết tắt “NVA” hoặc “Trần Thị B” thành “TTB” để làm mã định danh nhân sự.
Công thức LAMBDA khai báo trong Name Manager:
Excel
=LAMBDA(text, CONCAT(LEFT(TEXTSPLIT(text, ” “), 1)))
Tên hàm gợi ý: TAO_MA_NV

Giải thích thuật toán: Hàm TEXTSPLIT tách chuỗi thành mảng các từ dựa trên khoảng trắng. Hàm LEFT trích xuất 1 ký tự đầu tiên của mỗi từ trong mảng đó. Cuối cùng, hàm CONCAT ghép các ký tự lại với nhau. Chỉ với một câu lệnh =TAO_MA_NV(A2), bạn đã xử lý xong hàng ngàn tên nhân sự chỉ mất vài phút.

Ví dụ 3: Tạo hàm trích xuất dữ liệu số từ chuỗi hỗn hợp (Sử dụng VBA)
Bài toán: Cột dữ liệu chứa các mã chứng từ bị dính ký tự rác như “ĐH-2024-SP999” hoặc “ABC456XYZ”. Bạn muốn bóc tách và giữ lại toàn bộ phần con số bên trong.
Mã VBA thực thi:
VBA
Function LAY_SO(Chuoi As String) As String
Dim i As Integer
Dim KyTu As String
Dim KetQua As String
KetQua = “”
For i = 1 To Len(Chuoi)
KyTu = Mid(Chuoi, i, 1)
If IsNumeric(KyTu) Then
KetQua = KetQua & KyTu
End If
Next i
LAY_SO = KetQua
End Function

Ứng dụng thực tế: Hàm LAY_SO sẽ dùng một vòng lặp quét qua từng ký tự. Nếu nhận diện đó là số, nó sẽ giữ lại. Khi nhập =LAY_SO(“ABC456XYZ”) trên ô tính, hàm sẽ trả về chuỗi gọn gàng là 456.

Lưu ý quan trọng khi áp dụng cách tự tạo hàm mới trong Excel

Việc thực thi cách tự tạo hàm mới trong Excel đòi hỏi bạn phải tuân thủ nghiêm ngặt các quy tắc định dạng tên, hiểu rõ cơ chế bảo mật Macro và xác định đúng phạm vi hoạt động để hệ thống vận hành trơn tru.
- Quy tắc đặt tên hàm chuẩn mực
Để Excel không bị nhầm lẫn và báo lỗi hệ thống, tên hàm tự tạo (cả trong LAMBDA và VBA) phải tuân theo các nguyên tắc cứng sau:
- Viết liền không dấu, không sử dụng khoảng trắng (Space). Khuyến khích dùng dấu gạch dưới để phân tách các từ (ví dụ: Tinh_Phu_Cap).
- Không được phép bắt đầu bằng một con số (Ví dụ: 1_Tinh_Toan là sai).
- Tuyệt đối không đặt tên trùng với các hàm gốc đã có sẵn trong cơ sở dữ liệu của Excel (như SUM, AVERAGE, IF) hoặc trùng với các địa chỉ tọa độ ô (như A1, R1C1).
- Chú ý cảnh báo bảo mật Macro khi chia sẻ file
Tính năng VBA mặc định được Microsoft bảo vệ rất nghiêm ngặt để chống lại mã độc. Khi bạn gửi file .xlsm chứa hàm tự tạo cho một đối tác hoặc đồng nghiệp, máy tính của họ khi mở file sẽ xuất hiện một dải băng màu vàng (Security Warning) ở ngay dưới thanh công cụ.
Hàm VBA sẽ bị vô hiệu hóa tạm thời và trả về lỗi #NAME?. Bạn cần hướng dẫn người nhận click vào nút Enable Content trên dải băng vàng đó. Thao tác này cấp quyền cho mã lệnh chạy và các công thức sẽ lập tức hiển thị kết quả đúng.
- Phạm vi hoạt động của hàm tùy chỉnh
Một hạn chế cần lưu ý là các hàm LAMBDA hoặc hàm VBA bạn vừa thiết lập chỉ có tác dụng, tồn tại cục bộ trong đúng file Workbook đó. Nếu bạn mở một file Excel hoàn toàn mới, các hàm này sẽ không tự động xuất hiện.
Nếu muốn tái sử dụng chúng cho mọi file báo cáo trên máy tính, bạn cần lưu file chứa mã VBA dưới định dạng Excel Add-in (.xlam), sau đó tích hợp Add-in này vào cấu hình hệ thống Excel gốc của bạn.
Nếu cá nhân hoặc doanh nghiệp của bạn đang cần nâng cấp hệ thống phần mềm, tích hợp bộ công cụ văn phòng Microsoft 365 bản quyền để trải nghiệm toàn bộ các tính năng phân tích dữ liệu, tự động hóa mạnh mẽ nhất, hãy liên hệ ngay với MSO để nhận tư vấn giải pháp chuyển đổi số toàn diện và tối ưu chi phí vận hành hiệu quả!
Các câu hỏi thường gặp (FAQ)
Dưới đây là giải đáp trực tiếp cho các thắc mắc phổ biến khi người dùng thao tác thực tế và ứng dụng cách tự tạo hàm mới trong Excel vào báo cáo hàng ngày.
Hàm VBA tự tạo có hoạt động trên Google Sheets không?
Không. Ngôn ngữ VBA (Visual Basic for Applications) là ngôn ngữ lập trình độc quyền hoạt động riêng trên hệ sinh thái phần mềm Microsoft Office. Nếu bạn muốn xây dựng tính năng tương tự trên nền tảng Google Sheets, bạn phải viết lại mã bằng ngôn ngữ Google Apps Script (dựa trên JavaScript).
Tính năng LAMBDA yêu cầu sử dụng phiên bản phần mềm nào?
Do đây là một hàm động hiện đại, LAMBDA hiện chỉ được Microsoft cập nhật và hỗ trợ toàn diện trên các phiên bản từ Excel 2021, bộ ứng dụng Microsoft 365, hoặc hệ thống Excel trực tuyến (Excel for the Web). Người dùng các phiên bản cũ hơn như 2016, 2019 sẽ không thể thiết lập hàm này.
Làm sao để xóa hoàn toàn hàm tự tạo khi không còn sử dụng đến?
Đối với hàm LAMBDA, bạn truy cập vào thẻ Formulas, mở Name Manager, nhấp chọn tên hàm không dùng và bấm nút Delete. Đối với hàm định nghĩa bằng VBA, bạn cần nhấn Alt + F11 để vào VBE, click chuột phải vào tên Module chứa đoạn mã đó trên cây thư mục, chọn Remove Module để dọn dẹp sạch sẽ dữ liệu khỏi file.
Làm sao để sử dụng hàm tự tạo trên tất cả các file Excel mà không cần khởi tạo lại?
Với hàm VBA, bạn hãy lưu file dưới dạng Excel Add-in (.xlam) rồi kích hoạt trong phần cài đặt Add-ins của Excel. Với hàm LAMBDA, bạn có thể lưu file chứa sẵn các hàm dưới dạng file mẫu Excel Template (.xltx) để mở ra sử dụng bất cứ lúc nào.
File chứa hàm tự tạo khi gửi cho người khác bị báo lỗi #NAME? thì xử lý thế nào?
- Nếu là hàm VBA: Do máy người nhận chưa nhấn Enable Content trên thanh cảnh báo bảo mật (Security Warning) khi mở file.
- Nếu là hàm LAMBDA: Do máy người nhận đang dùng phiên bản Excel đời cũ không hỗ trợ tính năng này.
Tổng kết
Việc làm chủ cách tự tạo hàm mới trong Excel bằng công cụ LAMBDA hiện đại hay mã VBA sẽ biến bảng tính của bạn thành một hệ thống xử lý dữ liệu tự động, giúp loại bỏ hoàn toàn các chuỗi công thức lồng ghép phức tạp. Dù bạn làm việc trong lĩnh vực kế toán, nhân sự hay phân tích kinh doanh, nắm vững cách tự tạo hàm mới trong Excel sẽ mang lại hiệu suất công việc vượt trội, giúp báo cáo luôn chuẩn xác và tối ưu hóa thời gian xử lý dữ liệu cực nhanh.
———————————————————
Fanpage: MSO.vn – Microsoft 365 Việt Nam
Hotline: 024.9999.7777

