

Last updated on 24 December, 2025
Table of Contents
ToggleNếu bạn đã quen thuộc với Excel, bạn thường dùng Filter để lọc, Sort để sắp xếp, hay VLOOKUP để tìm kiếm. Nhưng trong Google Sheets, hàm QUERY có thể làm tất cả những việc đó cùng một lúc chỉ với một công thức duy nhất.
Hàm QUERY trong Google Sheet cho phép bạn sử dụng các lệnh truy vấn cơ sở dữ liệu (tương tự như ngôn ngữ SQL) để thao tác với dữ liệu.
Hiểu đơn giản, thay vì phải thao tác thủ công nhiều bước, bạn chỉ cần ra lệnh cho Google Sheet: “Hãy lấy cho tôi cột A và cột B, nhưng chỉ lấy những dòng mà cột C lớn hơn 100, sau đó sắp xếp theo thứ tự giảm dần”. QUERY sẽ thực hiện chính xác điều đó và trả về kết quả ngay lập tức.
Lợi ích vượt trội của hàm QUERY:
Tự động hóa: Khi dữ liệu nguồn thay đổi, kết quả QUERY tự động cập nhật.
Linh hoạt: Có thể lọc, sắp xếp, tính toán tổng/trung bình gộp lại trong 1 công thức.
Gọn nhẹ: Giúp file Google Sheet nhẹ hơn so với việc dùng quá nhiều hàm IF lồng nhau.
Để sử dụng thành thạo, trước tiên bạn cần nắm vững cấu trúc cơ bản của hàm. Cú pháp như sau:
= QUERY(data, query, [header])
Trong đó:
data (Dữ liệu): Vùng dữ liệu bạn muốn truy vấn (Ví dụ: A1:E100 hoặc tên của một Sheet 'Data'!A:F).
query (Truy vấn): Câu lệnh chứa các yêu cầu của bạn (Ví dụ: "Select A, B Where C > 10"). Phần này bắt buộc phải đặt trong dấu ngoặc kép (” “).
headers (Tiêu đề – Tùy chọn): Số dòng dùng làm tiêu đề.
Điền 1: Dòng đầu tiên là tiêu đề.
Điền 0 hoặc bỏ trống: Google Sheet sẽ tự đoán (tuy nhiên khuyên bạn nên điền rõ ràng để tránh lỗi).
Ví dụ cơ bản:
=QUERY(A1:D10, “Select *”, 1)
Ý nghĩa: Lấy toàn bộ dữ liệu từ vùng A1 đến D10, bao gồm cả dòng tiêu đề.
Sức mạnh của hàm QUERY trong Google Sheet nằm ở các mệnh đề bên trong tham số query. Dưới đây là 5 mệnh đề “thần thánh” mà bất kỳ dân dữ liệu nào cũng phải biết.
Mệnh đề SELECT dùng để chỉ định những cột nào bạn muốn hiển thị ra kết quả.
Lấy tất cả cột: Dùng Select *.
Lấy cột cụ thể: Dùng Select A, C, E (Lưu ý: Tên cột phải viết hoa).
Ví dụ: Bạn có bảng dữ liệu nhân viên (Cột A: Tên, Cột B: Tuổi, Cột C: Lương). Bạn chỉ muốn lấy Tên và Lương.
Công thức: =QUERY(A1:C100, “Select A, C”, 1)
Đây là mệnh đề quan trọng nhất. WHERE giúp bạn lọc ra các dòng thỏa mãn điều kiện cụ thể.
Các toán tử thường dùng trong WHERE:
So sánh số: =, >, <, >=, <=, <> (khác).
So sánh văn bản: contains (chứa), starts with (bắt đầu bằng), ends with (kết thúc bằng).
Logic: AND, OR, NOT.
Ví dụ: Lọc danh sách nhân viên có Lương (Cột C) lớn hơn 1000 USD.
Công thức: =QUERY(A1:C100, “Select * Where C > 1000”, 1)
Lưu ý quan trọng:
Với dữ liệu là Số: Viết trực tiếp (Ví dụ:
Where C = 10).Với dữ liệu là Văn bản: Phải để trong dấu nháy đơn (Ví dụ:
Where A = 'Nam').
Sau khi lọc xong, bạn muốn dữ liệu hiển thị đẹp mắt thì cần dùng ORDER BY.
asc: Tăng dần (Mặc định).
desc: Giảm dần.
Ví dụ: Lấy danh sách nhân viên và sắp xếp theo Lương (Cột C) giảm dần.
Công thức: =QUERY(A1:C100, “Select * Order By C desc”, 1)
Nếu bảng dữ liệu có hàng nghìn dòng nhưng bạn chỉ muốn xem Top 5 người có lương cao nhất, hãy dùng LIMIT.
Ví dụ:
Công thức: =QUERY(A1:C100, “Select * Order By C desc Limit 5”, 1)
Mặc định, hàm QUERY sẽ giữ nguyên tên cột của dữ liệu gốc. Nếu muốn đổi tên hiển thị cho chuyên nghiệp hơn, hãy dùng LABEL.
Ví dụ: Đổi tên cột A thành “Họ và Tên”, cột C thành “Thu nhập”.
Công thức:
=QUERY(A1:C100, “Select A, C Label A ‘Họ và Tên’, C ‘Thu nhập'”, 1)
Đây là “cặp bài trùng” mạnh mẽ nhất trong Google Sheets. IMPORTRANGE giúp lấy dữ liệu từ một file Google Sheet khác, còn QUERY sẽ lọc dữ liệu đó ngay khi vừa lấy về.
Cấu trúc kết hợp:
=QUERY(IMPORTRANGE(“URL_File_Goc”, “Sheet1!A:E”), “Select Col1, Col3 Where Col2 > 100”, 1)
Điểm khác biệt cực lớn cần lưu ý:
Khi dùng QUERY trực tiếp trên cùng 1 file, ta gọi tên cột là A, B, C.
Nhưng khi kết hợp với IMPORTRANGE (hoặc dữ liệu mảng), ta phải gọi tên cột là Col1, Col2, Col3 (tương ứng với cột thứ 1, thứ 2, thứ 3 của vùng dữ liệu).
Col1 thay cho A.
Col2 thay cho B.
Một vấn đề khiến nhiều người đau đầu: Làm sao để điều kiện lọc trong WHERE thay đổi động dựa vào một ô bên ngoài (ví dụ ô E1), thay vì phải gõ cứng vào công thức?
Để làm điều này, bạn cần ngắt chuỗi văn bản của QUERY và dùng dấu & để nối chuỗi.
Ví dụ: Bạn muốn lọc theo tên nhân viên được nhập ở ô E1.
Sai: ... "Select * Where A = E1" (Hàm sẽ hiểu E1 là tên một cột hoặc chuỗi văn bản, không phải ô tham chiếu).
Đúng (Với dữ liệu số): "Select * Where C > " & E1
Đúng (Với dữ liệu chữ): "Select * Where A = '" & E1 & "'"
Đây là kỹ thuật quan trọng để tạo ra các Dashboard báo cáo động (Search Box) trong Google Sheets.
Dù mạnh mẽ nhưng hàm QUERY trong Google Sheet cũng khá “khó tính”. Dưới đây là các lỗi phổ biến:
Lỗi #VALUE!: Thường do sai cú pháp, thiếu dấu ngoặc kép hoặc sai tên cột.
Trong một cột, nếu vừa có số vừa có chữ, hàm QUERY sẽ ưu tiên kiểu dữ liệu chiếm đa số và biến các ô còn lại thành rỗng (null).
Giải pháp: Hãy định dạng toàn bộ cột đó về dạng Văn bản (Plain Text) trước khi QUERY.
Hàm QUERY phân biệt chữ hoa chữ thường trong nội dung lọc. Where A = ‘nam’ sẽ không tìm thấy ‘Nam’.
Giải pháp: Dùng hàm lower(A) để chuyển hết về chữ thường rồi so sánh. Ví dụ: Where lower(A) = ‘nam’.
Hàm QUERY trong Google Sheet thực sự là một vũ khí bí mật giúp bạn nâng cao hiệu suất làm việc gấp nhiều lần. Thay vì mất hàng giờ để lọc và copy-paste dữ liệu thủ công, giờ đây bạn chỉ cần một công thức duy nhất.
Hãy bắt đầu thực hành ngay với các mệnh đề cơ bản SELECT và WHERE. Khi đã thành thạo, bạn hoàn toàn có thể xây dựng những hệ thống báo cáo tự động cực kỳ chuyên nghiệp.
Nếu bạn có bất kỳ thắc mắc nào về cách xử lý dữ liệu phức tạp, đừng ngần ngại để lại bình luận nhé!