Cách sử dụng hàm REDUCE trong Excel

Trong nhiều năm, mọi người đã giải quyết các bài toán bảng tính phức tạp theo cùng một cách: Thêm các cột phụ, xếp chồng những công thức ngày càng lồng nhau, và khi mọi thứ trở nên đặc biệt phức tạp, họ dùng đến các macro VBA của Excel. Quy trình này hoạt động tốt cho đến khi họ khám phá ra hàm REDUCE.

Hàm REDUCE cho phép bạn lặp lại dữ liệu, xây dựng kết quả từng bước, giống như cách một vòng lặp hoạt động trong ngôn ngữ lập trình. Thay vì phân tán các phép tính trung gian trên trang tính, toàn bộ quy trình được gói gọn trong một công thức duy nhất, cho ra một kết quả duy nhất.

Nếu từng mong muốn có thể thực hiện nhiều bước tuần tự mà không cần phải lấp đầy sổ làm việc bằng các cột và ô trung gian thừa, thì REDUCE chính là thứ bạn đang tìm kiếm.

Lưu ý: Hàm này chỉ khả dụng trong Excel dành cho web, Excel dành cho Microsoft 365 và Excel dành cho Microsoft 365 trên máy Mac.

Hàm REDUCE thực sự làm gì (và tại sao nó quan trọng)?

Xử lý dữ liệu từng bước bên trong công thức và trả về một kết quả cuối cùng

REDUCE là một công thức chuyên biệt, lấy một danh sách dữ liệu và áp dụng phép tính tùy chỉnh cho từng mục một, kết hợp các kết quả khi xử lý. Cuối cùng, nó trả về một kết quả duy nhất. Đó là ý tưởng cốt lõi.

Cụ thể hơn, REDUCE là hàm trợ giúp LAMBDA mà Excel gọi. Điều này có nghĩa là nó hoàn toàn phụ thuộc vào phép tính bạn định nghĩa bằng hàm LAMBDA. Bạn có thể coi LAMBDA là logic và REDUCE là cơ chế thực thi logic đó. Kết hợp cùng nhau, chúng thực hiện các bước lặp, trong đó mỗi phép tính được xây dựng dựa trên phép tính trước đó. Thay vì hiển thị từng giai đoạn trung gian trên bảng tính (như các cột trợ giúp), REDUCE giữ các bước đó ở bên trong bằng cách sử dụng cái được gọi là tổng tích lũy.

Cú pháp cơ bản trông như sau:

=REDUCE([initial_value], array, lambda(accumulator, value, body))

Sau đây là chức năng của từng phần:

Đối số

Mục đích

Ghi chú thêm

[initial_value]

Giá trị khởi đầu cho tổng tích lũy.

Đối với phép tính tổng, bạn sẽ bắt đầu bằng 0; để xây dựng văn bản, bạn sẽ dùng một chuỗi rỗng (""). Đây cũng có thể là tham chiếu ô nếu mục tiêu là sửa đổi giá trị hiện có.

array

Dữ liệu nguồn mà REDUCE tuần hoàn qua lại.

Mỗi mục trong mảng này được xử lý lần lượt theo thứ tự xuất hiện.

lambda

Tính toán tùy chỉnh được áp dụng cho từng mục trong mảng của bạn.

Nó luôn sử dụng 3 biến: Biến tích lũy (thường được ký hiệu là A), giá trị hiện tại từ mảng (thường được ký hiệu là V) và phần thân của phép tính (ví dụ: A + V). Biến tích lũy lưu trữ kết quả đang chạy từ các lần lặp trước đó, trong khi giá trị đại diện cho mục hiện tại đang được xử lý.

Luồng dữ liệu rất đơn giản: Hàm tích lũy bắt đầu với giá trị ban đầu. REDUCE lấy phần tử đầu tiên từ mảng, áp dụng phép tính LAMBDA và cập nhật kết quả vào hàm tích lũy. Sau đó, hàm này di chuyển đến phần tử tiếp theo và lặp lại quy trình, sử dụng hàm tích lũy mới được cập nhật mỗi lần. Sau khi xử lý xong từng mục, REDUCE sẽ xuất ra hàm tích lũy cuối cùng. Kết quả đầu ra đó có thể là một số, một đoạn văn bản, hoặc thậm chí là một mảng bị tràn, tùy thuộc vào kết quả mà LAMBDA tạo ra.

Ưu điểm của thiết lập này là bạn không còn phải dựa vào nhiều công thức nằm rải rác trên trang tính nữa. Mọi thứ diễn ra bên trong một công thức, được chứa trong một ô, mà không cần thêm các cột trợ giúp hay những bước trung gian.

Những cách sử dụng REDUCE thực tế trong quy trình làm việc

Các tác vụ trước đây cần có cột trợ giúp hoặc VBA giờ đây nằm gọn trong một công thức

Sử dụng TEXTAFTER với REDUCE trong Excel
Sử dụng TEXTAFTER với REDUCE trong Excel

REDUCE hoạt động hiệu quả trong các trường hợp kết quả được tích lũy theo thời gian, đặc biệt là khi mỗi bước đều dựa trên bước trước đó. Tuy nhiên, nó cũng hữu ích cho các thao tác danh sách thông thường. Một khi thấy nó hoạt động như thế nào, bạn sẽ bắt đầu nhận thấy các cơ hội áp dụng nó ở những nơi mà trước đây bạn có thể đã dựa vào các cột hỗ trợ hoặc những công thức lặp lại.

Ví dụ 1: Đếm nhiều mục độc lập trong một lần chạy

Đếm nhiều mục độc lập trong một lần chạy bằng hàm REDUCE trong EXCEL.
Đếm nhiều mục độc lập trong một lần chạy bằng hàm REDUCE trong EXCEL.

Một trong những ứng dụng được yêu thích là đếm số lần xuất hiện của nhiều mục trong danh sách cùng lúc. Giả sử bạn có một cột chứa các vị trí đặt hàng và muốn biết tổng số đơn hàng từ Paris và London. Thay vì viết các công thức COUNTIF riêng biệt và cộng chúng lại với nhau, bạn có thể xử lý tất cả trong một biểu thức duy nhất:

=REDUCE(0, {"Paris","London"}, LAMBDA(total, city, total + COUNTIF(A2:A9, city)))

Bắt đầu với số 0 nếu đang tích lũy một tổng. Thay vì lặp qua từng hàng dữ liệu, hãy lặp qua hai thành phố đang quan tâm: Paris và London. Với mỗi thành phố, hàm COUNTIF sẽ kiểm tra số lần thành phố đó xuất hiện trong cột A và kết quả đó được cộng vào tổng hiện tại. Đầu ra cuối cùng là một số duy nhất biểu thị đơn hàng kết hợp của cả hai thành phố. Nếu cần điều chỉnh phạm vi địa lý, chỉ cần sửa đổi danh sách trong dấu ngoặc nhọn - không cần cấu trúc lại công thức.

Ví dụ 2: Tổng số lượng được nhúng trong chuỗi văn bản hỗn hợp

Tính tổng số lượng được nhúng trong chuỗi văn bản hỗn hợp bằng hàm REDUCE trong Excel.
Tính tổng số lượng được nhúng trong chuỗi văn bản hỗn hợp bằng hàm REDUCE trong Excel.

REDUCE cũng hữu ích khi dữ liệu không rõ ràng. Hãy tưởng tượng cột đơn hàng của bạn chứa các mục như 'SHIRT(5),' 'PANT(2),' và 'HAT(3),' trong đó tên mặt hàng và số lượng được lưu trữ cùng nhau. Nếu bạn muốn tính tổng số lượng cho các danh mục cụ thể - ví dụ, SHIRT và PANT - bất kể số lượng được sắp xếp, hàm REDUCE sẽ xử lý việc này một cách gọn gàng:

=REDUCE(0, {"SHIRT", "PANT"}, LAMBDA(total, category, total + COUNTIF(A2:A7, category & "(*")))

Chi tiết quan trọng là ký tự đại diện (*). Vì số trong ngoặc đơn thay đổi ở mỗi hàng, ký tự đại diện đảm bảo rằng bất kỳ văn bản nào bắt đầu bằng 'SHIRT' (hoặc 'PANT') đều được tính vào tổng. Hàm REDUCE lặp qua từng danh mục, đếm tất cả các mục trùng khớp trong ô A2:A7 và cộng dồn tổng. Kết quả là một giá trị duy nhất biểu thị tổng số lượng của cả hai loại mặt hàng, bất kể số lượng riêng lẻ của chúng.

Thứ Năm, 13/11/2025 07:30
31 👨 48
Xác thực tài khoản!

Theo Nghị định 147/2024/ND-CP, bạn cần xác thực tài khoản trước khi sử dụng tính năng này. Chúng tôi sẽ gửi mã xác thực qua SMS hoặc Zalo tới số điện thoại mà bạn nhập dưới đây:

Số điện thoại chưa đúng định dạng!
Số điện thoại này đã được xác thực!
Bạn có thể dùng Sđt này đăng nhập tại đây!
Lỗi gửi SMS, liên hệ Admin
0 Bình luận
Sắp xếp theo
    ❖ Hàm Excel