Hàm MAP là một phần của các hàm mảng động của Microsoft Excel và yêu cầu Excel 365 hoặc Excel 2021 trở lên mới hoạt động được. Nếu đang sử dụng phiên bản cũ hơn, bạn sẽ không thấy hàm này khả dụng.
Hàm MAP hoạt động như thế nào?
Hàm MAP và đối tác của nó, LAMBDA, hoạt động cùng nhau

Hàm MAP lấy một dải dữ liệu và áp dụng phép tính tùy chỉnh cho toàn bộ tập dữ liệu cùng một lúc. Nó sử dụng cú pháp sau:
=MAP(array, lambda)
Hãy cùng phân tích các tham số:
- array: Đây là dải ô bạn muốn xử lý. Nó có thể là một cột, nhiều cột, hoặc thậm chí là toàn bộ bảng. MAP sẽ lặp qua từng giá trị trong dải này.
- lambda: Đây là nơi bạn định nghĩa phép tính. Hãy coi nó như một công thức nhỏ cho MAP biết phải làm gì với mỗi giá trị. Bạn tạo nó bằng hàm LAMBDA của Excel, cho phép bạn viết công thức như một con người với logic tùy chỉnh mà không cần lặp lại công thức.
Khi bạn chạy MAP, nó sẽ áp dụng hàm lambda của bạn cho mọi ô trong mảng và trả về một tập hợp kết quả mới. Đầu ra khớp với kích thước và hình dạng của đầu vào, vì vậy nếu nhập 10 hàng, bạn sẽ nhận được 10 kết quả.
Bắt đầu với một tác vụ đơn giản để xem MAP hoạt động như thế nào
Hãy cùng thêm mức tăng vào giá sản phẩm chỉ với một công thức!

Giả sử bạn có một danh sách giá sản phẩm và cần thêm mức tăng 10% vào mỗi giá. Cách truyền thống là viết một công thức như =B2*1.1 và kéo xuống. Tuy nhiên, MAP xử lý việc này theo cách khác.
Thay vì viết các công thức riêng lẻ, bạn tạo một hàm MAP xử lý toàn bộ cột giá:
=MAP(B2:B11, LAMBDA(price, price*1.1))
Đây là những gì xảy ra: MAP lấy từng giá trị trong B2:B11 (khoảng giá của bạn) và đưa vào hàm LAMBDA. LAMBDA gán từng giá trị cho biến "price", nhân nó với 1.1 và trả về kết quả. Tất cả chỉ trong một bước.
Thêm logic vào MAP với câu lệnh IF
Bạn có thể lồng các hàm khác vào nhau.

MAP không chỉ giới hạn ở các phép tính đơn giản. Bạn có thể thêm các hàm điều kiện Excel bên trong hàm LAMBDA để xử lý những tình huống khác nhau dựa trên dữ liệu.
Giả sử bạn muốn áp dụng các mức chênh lệch khác nhau tùy thuộc vào giá. Các sản phẩm từ 100 USD trở lên được tăng giá 10%, trong khi những sản phẩm dưới mức đó được tăng giá 15%. Bạn có thể viết như sau:
=MAP(B2:B11, LAMBDA(price, IF(price>=100, price*1.1, price*1.15)))
Câu lệnh IF kiểm tra từng mức giá khi MAP xử lý. Nếu giá từ 100 USD trở lên, nó sẽ nhân với 1.1. Ngược lại, nó sẽ nhân với 1.15.
MAP xử lý nhiều cột và dữ liệu văn bản lộn xộn
Hãy chuẩn hóa danh sách tên bằng một công thức duy nhất!

MAP không bị giới hạn ở các phép toán một cột. Bạn có thể nạp nhiều mảng vào hàm và xử lý chúng cùng nhau trong một hàm.
Giả sử bạn muốn tính tổng doanh số bằng cách nhân giá và số lượng. Thay vì tạo một cột công thức riêng, hãy sử dụng MAP để xử lý cả hai:
=MAP(B2:B11, C2:C11, LAMBDA(price, qty, price*qty))
MAP lấy hai mảng - B2:B11 (giá) và C2:C11 (số lượng) - và xử lý chúng theo từng hàng. Hàm LAMBDA nhận cả hai giá trị, nhân chúng và trả về kết quả.
Bạn cũng có thể sử dụng hàm MAP để dọn dẹp dữ liệu văn bản. Nếu tên sản phẩm của bạn không nhất quán - một số viết hoa toàn bộ, một số viết thường hoặc có thêm khoảng trắng - bạn có thể dễ dàng chuẩn hóa tất cả cùng một lúc:
=MAP(A2:A11, LAMBDA(text, PROPER(TRIM(text))))
Công thức này cắt bỏ các khoảng trắng không cần thiết và chuyển đổi từng tên sản phẩm sang dạng chữ hoa. Hàm TRIM loại bỏ các khoảng trắng đầu và cuối, trong khi hàm PROPER viết hoa chữ cái đầu tiên của mỗi từ. Hàm MAP áp dụng đồng thời cả hai hàm cho mọi ô trong phạm vi.
