ARRAYFORMULA là hàm trong Google Sheets cho phép áp dụng một công thức cho toàn bộ dải ô (mảng) thay vì kéo công thức từng dòng, tự động mở rộng khi thêm dữ liệu mới.
Hàm ARRAYFORMULA Google Sheets: Cách Dùng Chi Tiết
Áp dụng công thức cho cả cột chỉ với một ô duy nhất — tự động mở rộng, file nhẹ hơn, kết hợp được với IF, VLOOKUP và mọi hàm khác.
Tại sao nên dùng ARRAYFORMULA?
Áp dụng cả cột chỉ 1 lần
Nhập một công thức duy nhất ở ô đầu tiên, ARRAYFORMULA tự điền kết quả xuống toàn bộ cột — không cần kéo thủ công.
Tự động mở rộng khi thêm dòng
Thêm dữ liệu mới vào cuối bảng, công thức tự tính ngay — không cần chỉnh sửa hay sao chép lại.
Giảm số công thức, file nhẹ hơn
Thay 1000 ô công thức bằng 1 ARRAYFORMULA duy nhất, giúp file tải nhanh và dễ quản lý hơn.
Kết hợp được mọi hàm
ARRAYFORMULA hoạt động với IF, VLOOKUP, SUMIF, LEN, TEXT và hầu hết các hàm Google Sheets khác.
Hướng dẫn từng bước
- 1
Cú pháp cơ bản của ARRAYFORMULA
Cú pháp: =ARRAYFORMULA(biểu_thức_mảng). Trong đó biểu_thức_mảng là công thức thông thường nhưng áp dụng cho một dải ô. Ví dụ: =ARRAYFORMULA(A2:A100*B2:B100) sẽ nhân từng cặp ô tương ứng trong hai cột.
Mẹo: Nhấn Ctrl+Shift+Enter khi nhập công thức để Google Sheets tự thêm ARRAYFORMULA bao ngoài.
- 2
Nhân hai cột với nhau
Để tính thành tiền = Số lượng × Đơn giá cho toàn bộ danh sách, nhập tại C2: =ARRAYFORMULA(A2:A*B2:B). Dùng A2:A (không giới hạn dòng) để công thức tự mở rộng khi thêm hàng mới.
Mẹo: Dùng A2:A thay vì A2:A1000 để tự động bao phủ dữ liệu tương lai mà không cần sửa công thức.
- 3
Kết hợp ARRAYFORMULA với IF
Ví dụ phân loại đạt/trượt: =ARRAYFORMULA(IF(C2:C>=5,"Đạt","Trượt")). Hàm IF kiểm tra từng ô trong C2:C và trả về kết quả tương ứng cho toàn bộ cột chỉ bằng một công thức duy nhất.
Mẹo: Thêm IF(A2:A="","", ...) bên ngoài để ô trống không hiển thị kết quả rỗng hay lỗi.
- 4
Kết hợp ARRAYFORMULA với VLOOKUP cho cả cột
Tra cứu hàng loạt: =ARRAYFORMULA(VLOOKUP(A2:A,DanhMuc!A:C,2,0)). Thay vì tạo VLOOKUP ở từng ô, một công thức này tra cứu toàn bộ cột A và trả kết quả tương ứng xuống cột đích.
Mẹo: Bọc thêm IFERROR để xử lý các giá trị không tìm thấy: =ARRAYFORMULA(IFERROR(VLOOKUP(...),"-")).
- 5
Mẹo dùng Ctrl+Shift+Enter tự động
Thay vì gõ ARRAYFORMULA thủ công, nhập công thức bình thường rồi nhấn Ctrl+Shift+Enter (Windows) hoặc Cmd+Shift+Enter (Mac). Google Sheets sẽ tự thêm =ARRAYFORMULA(...) bao ngoài công thức của bạn.
Mẹo: Phím tắt này không hoạt động khi chỉnh sửa ô đã có ARRAYFORMULA — cần xóa và nhập lại từ đầu.
Công thức ARRAYFORMULA thực tế
| Công thức | Mô tả |
|---|---|
| =ARRAYFORMULA(A2:A*B2:B) | Nhân hai cột với nhau, tự mở rộng theo dữ liệu |
| =ARRAYFORMULA(IF(C2:C>=5,"Đạt","Trượt")) | Phân loại đạt/trượt cho toàn cột điểm |
| =ARRAYFORMULA(IFERROR(VLOOKUP(A2:A,DM!A:C,2,0),"-")) | Tra cứu hàng loạt, hiện "-" nếu không tìm thấy |
| =ARRAYFORMULA(IF(A2:A="","",LEN(A2:A))) | Đếm ký tự từng ô, bỏ qua ô trống |
| =ARRAYFORMULA(TEXT(D2:D,"dd/mm/yyyy")) | Định dạng ngày cho toàn bộ cột cùng lúc |
| =ARRAYFORMULA(IF(ROW(A2:A)=ROW(A2),"STT",ROW(A2:A)-ROW(A2)+1)) | Đánh số thứ tự tự động cả cột |
Câu hỏi thường gặp
ARRAYFORMULA khác gì so với kéo công thức thông thường?
Kéo công thức tạo ra hàng trăm ô công thức độc lập, mỗi ô tính riêng — file nặng, dễ bị xóa nhầm. ARRAYFORMULA chỉ dùng 1 ô, xử lý toàn bộ mảng trong một lần tính, nhẹ hơn và an toàn hơn.
Tại sao ARRAYFORMULA chỉ cần nhập ở 1 ô duy nhất?
Vì ARRAYFORMULA trả về một mảng kết quả, Google Sheets tự "đổ" kết quả xuống các ô bên dưới. Nếu cố nhập công thức khác vào các ô đó sẽ báo lỗi xung đột.
Có thể kết hợp ARRAYFORMULA với VLOOKUP để tra cứu cả cột không?
Hoàn toàn được. Dùng =ARRAYFORMULA(VLOOKUP(A2:A, BảngTra!A:D, 3, 0)) để tra cứu toàn bộ cột A trong một công thức. Nên bọc IFERROR bên ngoài để xử lý giá trị không tìm thấy.
ARRAYFORMULA hay gặp lỗi gì và cách khắc phục?
Lỗi phổ biến: #VALUE! khi hai dải ô khác kích thước — kiểm tra lại A2:A và B2:B có cùng số hàng. Lỗi "Array result was not expanded" khi ô bên dưới đã có dữ liệu — xóa nội dung các ô bên dưới trước.
SheetStore có template dùng ARRAYFORMULA sẵn không?
Có, các template tại SheetStore (gói 699K trọn đời) đều tối ưu với ARRAYFORMULA: bảng lương, quản lý đơn hàng, theo dõi KPI — toàn bộ công thức tự động, không cần kéo, không lo mất dữ liệu.
Xem thêm
Tiết kiệm thời gian với SheetStore
Template Google Sheets tối ưu sẵn ARRAYFORMULA — bảng lương, quản lý đơn hàng, KPI. Nhập dữ liệu là chạy ngay, không cần kéo công thức. Gói 699K trọn đời.
Xem template tại SheetStore