google-sheets
Hàm ARRAYFORMULA trong Google Sheets: tính toán hàng loạt chỉ với 1 công thức

ARRAYFORMULA dùng để làm gì?
Cách làm quen thuộc khi cần tính toán cho cả cột dữ liệu là gõ công thức ở dòng đầu tiên rồi kéo (copy) xuống hết các dòng còn lại. Cách này có vài bất tiện:
- Thêm dòng dữ liệu mới ở cuối bảng thì công thức không tự có — phải nhớ kéo tiếp.
- Sửa công thức phải sửa lại toàn bộ các dòng đã kéo, hoặc xóa hết kéo lại từ đầu.
- Bảng tính nặng hơn vì mỗi ô đều chứa một công thức riêng.
ARRAYFORMULA giải quyết việc này: chỉ cần viết một công thức duy nhất, nó sẽ tự áp dụng công thức đó cho toàn bộ một vùng (nhiều dòng cùng lúc), và tự mở rộng khi có dữ liệu mới thêm vào vùng tham chiếu.
Ví dụ dữ liệu dùng xuyên suốt bài này, nằm ở vùng A1:C6:
| A | B | C | |
|---|---|---|---|
| 1 | Sản phẩm | Đơn giá | Số lượng |
| 2 | Bàn ghế | 1,200,000 | 3 |
| 3 | Tủ gỗ | 2,500,000 | 2 |
| 4 | Ghế xoay | 850,000 | 5 |
| 5 | Kệ sách | 950,000 | 4 |
| 6 | Bàn học | 1,100,000 | 2 |
Cách dùng thông thường (không có ARRAYFORMULA)
Muốn tính thành tiền (cột D = Đơn giá × Số lượng) theo cách cũ, bạn gõ ở D2:
=B2*C2
rồi kéo xuống D3, D4, D5, D6. Mỗi ô chứa một công thức riêng, tham chiếu dòng tương ứng.
Cách dùng ARRAYFORMULA: chỉ 1 công thức cho cả cột
Chỉ cần gõ duy nhất ở ô D2:
=ARRAYFORMULA(B2:B6*C2:C6)
Google Sheets sẽ tự tính thành tiền cho toàn bộ 5 dòng (D2 đến D6) chỉ từ công thức này — các ô D3 đến D6 vẫn hiện kết quả dù không hề chứa công thức riêng (bạn bấm vào D4, thanh công thức vẫn trống, kết quả là "tràn" ra từ công thức ở D2).
Lưu ý quan trọng: vùng tham chiếu bên trong ARRAYFORMULA phải cùng kích thước (B2:B6 và C2:C6 đều có 5 dòng). Nếu một vùng dài hơn vùng kia, Sheets sẽ báo lỗi #N/A cho các dòng không khớp.
Ví dụ 2: Kết hợp ARRAYFORMULA với hàm khác
ARRAYFORMULA không chỉ dùng với phép tính đơn giản (*, +, -), mà còn "biến" nhiều hàm vốn chỉ nhận 1 ô thành hàm nhận cả vùng.
Nối chuỗi hàng loạt
Ghép cột Sản phẩm với cột Số lượng thành một mô tả, ví dụ "Bàn ghế: 3 cái":
=ARRAYFORMULA(A2:A6 & ": " & C2:C6 & " cái")
Dùng IF cho cả cột
Đánh dấu "Số lượng lớn" nếu Số lượng ≥ 4, không thì để trống — áp dụng cho cả cột chỉ với 1 công thức:
=ARRAYFORMULA(IF(C2:C6>=4, "Số lượng lớn", ""))
Bình thường hàm IF chỉ nhận từng ô một; bọc thêm ARRAYFORMULA bên ngoài giúp IF chạy trên cả vùng C2:C6 cùng lúc.
Tự mở rộng khi thêm dòng mới
Muốn công thức tự tính luôn cho các dòng thêm sau này (không cần sửa lại công thức), tham chiếu tới cả cột thay vì giới hạn số dòng cụ thể:
=ARRAYFORMULA(IF(A2:A>"", B2:B*C2:C, ""))
Ở đây A2:A (không giới hạn dòng cuối) tham chiếu tới toàn bộ cột A từ dòng 2 trở xuống. Điều kiện A2:A>"" để tránh tính ra kết quả thừa cho các dòng trống chưa có dữ liệu — nếu bỏ điều kiện này, ARRAYFORMULA sẽ tính luôn cho hàng nghìn dòng trống bên dưới, làm bảng tính nặng và chậm.
Bảng so sánh: kéo công thức thường và ARRAYFORMULA
| Kéo công thức thường | ARRAYFORMULA | |
|---|---|---|
| Số công thức cần viết | 1 công thức/dòng | 1 công thức duy nhất |
| Thêm dòng dữ liệu mới | Phải kéo tiếp thủ công | Tự tính nếu tham chiếu cả cột (A2:A) |
| Sửa công thức | Sửa lại từng dòng hoặc kéo lại | Chỉ sửa 1 chỗ |
| Độ nặng file | Nhiều ô chứa công thức | 1 ô chứa công thức, nhẹ hơn |
| Độ khó khi mới học | Dễ | Cần quen với khái niệm "vùng" thay vì "ô" |
Lỗi thường gặp
Lỗi #N/A hoặc #VALUE! khi bọc ARRAYFORMULA
Thường do các vùng tham chiếu bên trong không cùng kích thước (một vùng 5 dòng, một vùng 6 dòng), hoặc trộn giữa tham chiếu cả cột (C2:C) với tham chiếu giới hạn dòng (B2:B6) trong cùng một công thức. Kiểm tra lại để các vùng đồng nhất.
Gõ công thức mảng nhưng chỉ ra kết quả ở đúng 1 ô
Quên bọc ARRAYFORMULA(...) ở ngoài cùng — công thức như =B2:B6*C2:C6 mà không có ARRAYFORMULA bao ngoài thường chỉ trả về kết quả của dòng đầu tiên. Thêm ARRAYFORMULA bọc toàn bộ công thức bên trong.
Xóa nhầm ô nằm trong vùng "tràn" kết quả
Nếu bạn gõ dữ liệu hoặc công thức khác vào một ô đang nằm trong vùng kết quả của ARRAYFORMULA (ví dụ D4 trong khi công thức ở D2 đang tràn xuống D6), Sheets sẽ báo lỗi #REF! vì bị "chèn ép" mất chỗ. Xóa nội dung ở ô đó trước, hoặc di chuyển công thức ARRAYFORMULA sang cột khác.
Công thức chạy chậm khi tham chiếu cả cột không giới hạn
Dùng A2:A (không giới hạn) trên bảng có hàng chục nghìn dòng, kết hợp nhiều hàm lồng nhau, có thể làm Sheets tính toán chậm. Nếu bảng dữ liệu cố định, giới hạn số dòng cụ thể (A2:A1000) thay vì cả cột sẽ nhẹ hơn.
Khi nào nên dùng ARRAYFORMULA?
- Tính thành tiền, chiết khấu, thuế cho cả bảng bán hàng dài
- Chuẩn hóa/nối chuỗi dữ liệu hàng loạt (ghép họ tên, tạo mã đơn hàng)
- Đánh dấu điều kiện (IF) cho toàn bộ cột mà không cần kéo công thức
- Kết hợp với các hàm như QUERY, VLOOKUP khi cần tra cứu hàng loạt thay vì từng dòng
Học Google Sheets thực chiến tại TP Vinh
ARRAYFORMULA là một trong những công cụ giúp bảng tính gọn và tự động hơn hẳn cách làm thủ công. Nếu bạn muốn học Google Sheets bài bản, từ các hàm cơ bản đến công thức mảng và tự động hóa dữ liệu, tham khảo khóa học Google Sheets tại Điền Nguyễn AZ.
📞 Hotline / Zalo: 0362 465 361
👉 Xem chi tiết: Khóa học Google Sheets thực tế tại TP Vinh
Tài liệu miễn phí
30 phím tắt Excel hay dùng nhất
Tổng hợp phím tắt giúp thao tác Excel nhanh hơn — điền thông tin để tải file PDF miễn phí về dùng ngay.
Bài viết liên quan

27/09/2026
So sánh Google Sheets và Excel: nên học cái nào trước
So sánh Google Sheets và Excel về tính năng, khả năng làm việc nhóm, chi phí và mức độ phổ biến trong công việc, giúp bạn biết nên học cái nào trước.

15/09/2026
Cách tạo file quản lý thu chi cá nhân trên Google Sheets (đơn giản, tự tính số dư)
Hướng dẫn dựng file quản lý thu chi cá nhân trên Google Sheets từ đầu: cấu trúc bảng giao dịch, phân loại khoản chi bằng Data Validation, dùng SUMIF tính tổng theo danh mục và biểu đồ theo dõi trực quan.

14/09/2026
Cách gửi email tự động từ Google Sheets bằng Apps Script
Hướng dẫn dùng Google Apps Script để gửi email tự động từ dữ liệu trong Google Sheets: gửi hàng loạt cá nhân hóa, tránh gửi trùng và tự động chạy theo lịch hoặc khi có dữ liệu mới.