Trong thế giới xử lý dữ liệu bảng tính, Google Sheets nổi lên như một công cụ mạnh mẽ và linh hoạt. Bên cạnh các hàm tính toán cơ bản, Google Sheets còn sở hữu một “vũ khí bí mật” cho phép bạn thực hiện các truy vấn dữ liệu phức tạp một cách dễ dàng, đó chính là hàm QUERY Google Sheets. Nếu bạn đã quen thuộc với SQL (Structured Query Language) trong quản lý cơ sở dữ liệu, bạn sẽ thấy hàm QUERY cực kỳ trực quan và quen thuộc. Bài viết này sẽ hướng dẫn bạn cách sử dụng hàm QUERY để thực hiện các tác vụ truy vấn dữ liệu cơ bản tương tự như SQL, giúp bạn khai thác tối đa tiềm năng của Google Sheets.
Nội dung chính
Hàm QUERY Google Sheets là gì?
Hàm QUERY là một trong những hàm mạnh mẽ và linh hoạt nhất trong Google Sheets. Nó cho phép bạn sử dụng Ngôn ngữ truy vấn API Google Visualization để thực hiện các thao tác tìm kiếm, lọc, sắp xếp và tổng hợp dữ liệu từ một phạm vi ô được chỉ định. Điểm đặc biệt là cú pháp của ngôn ngữ truy vấn này rất giống với SQL, giúp những người có kiến thức về cơ sở dữ liệu dễ dàng tiếp cận và sử dụng.
Tại sao nên sử dụng hàm QUERY Google Sheets?
- Linh hoạt và Mạnh mẽ: Có thể thực hiện nhiều tác vụ phức tạp mà nếu dùng các hàm khác sẽ cần kết hợp nhiều công thức lồng nhau.
- Tương đồng SQL: Cú pháp quen thuộc với người dùng SQL, dễ học và áp dụng.
- Truy vấn phức tạp: Dễ dàng lọc dữ liệu theo nhiều điều kiện, sắp xếp theo nhiều cột, nhóm dữ liệu và thực hiện các phép tính tổng hợp (SUM, COUNT, AVG, MIN, MAX).
- Kết quả động: Kết quả truy vấn sẽ tự động cập nhật khi dữ liệu nguồn thay đổi.
- Thay thế nhiều hàm: Có thể thay thế sự kết hợp của các hàm như FILTER, SORT, SUMIFS, COUNTIFS, UNIQUE,… chỉ bằng một công thức QUERY duy nhất.
Việc thành thạo hàm QUERY Google Sheets sẽ nâng cao đáng kể khả năng phân tích và xử lý dữ liệu của bạn trên nền tảng này.
[Gợi ý: Chèn ảnh/video giới thiệu tổng quan về hàm QUERY và giao diện Google Sheets tại đây]Cú pháp cơ bản của hàm QUERY
Cú pháp chung của hàm QUERY như sau:
=QUERY(data, query, [headers])
- data: Phạm vi ô chứa dữ liệu bạn muốn truy vấn (ví dụ:
A1:D100
,'Sheet2'!A:F
). - query: Chuỗi văn bản chứa câu lệnh truy vấn theo cú pháp Ngôn ngữ truy vấn API Google Visualization (ví dụ:
"SELECT A, B WHERE C > 10"
). Đây là phần quan trọng nhất, nơi bạn định nghĩa cách thức truy vấn dữ liệu. - [headers] (tùy chọn): Số lượng hàng tiêu đề có trong phạm vi dữ liệu
data
. Nếu bỏ qua hoặc đặt là -1, Google Sheets sẽ tự động đoán. Nếu đặt là 0, Google Sheets sẽ coi tất cả các hàng là dữ liệu. Thông thường, giá trị này là 1 nếu hàng đầu tiên là tiêu đề cột.
Truy vấn dữ liệu như SQL với hàm QUERY Google Sheets
Dưới đây là cách sử dụng các mệnh đề cơ bản tương tự SQL trong câu lệnh query
của hàm QUERY Google Sheets:
1. Mệnh đề SELECT – Chọn cột dữ liệu
Giống như SQL, mệnh đề SELECT
dùng để chỉ định những cột nào bạn muốn hiển thị trong kết quả.
- Chọn các cột cụ thể:
"SELECT A, C, D"
(chọn cột A, C, D). - Chọn tất cả các cột:
"SELECT *"
. - Thực hiện tính toán cơ bản trên cột:
"SELECT A, B*C, D/E"
(lưu ý: chỉ áp dụng cho các phép tính cơ bản, không hỗ trợ tất cả hàm như trong Google Sheets).
2. Mệnh đề WHERE – Lọc dữ liệu theo điều kiện
Mệnh đề WHERE
cho phép bạn lọc các hàng dựa trên một hoặc nhiều điều kiện cụ thể.
- Điều kiện với số:
"SELECT A, B WHERE C > 100"
(chọn hàng có giá trị ở cột C lớn hơn 100). - Điều kiện với văn bản:
"SELECT A, B WHERE B = 'Sản phẩm A'"
(Lưu ý: Giá trị văn bản phải được đặt trong dấu nháy đơn' '
). - Điều kiện với ngày tháng:
"SELECT A, B WHERE A >= date '2024-01-15'"
(Lưu ý: Sử dụng từ khóadate
và định dạng ‘YYYY-MM-DD’). - Nhiều điều kiện: Sử dụng
AND
,OR
,NOT
. Ví dụ:"SELECT * WHERE C > 50 AND B = 'Khu vực Bắc'"
. - So khớp chuỗi:
contains
:"SELECT A WHERE B contains 'áo'"
(tìm các ô ở cột B chứa chữ ‘áo’).starts with
:"SELECT A WHERE B starts with 'SP'"
(tìm các ô ở cột B bắt đầu bằng ‘SP’).ends with
:"SELECT A WHERE B ends with 'VN'"
.matches
(biểu thức chính quy):"SELECT A WHERE B matches 'SP[0-9]+'"
.like
(dấu % đại diện chuỗi, dấu _ đại diện ký tự):"SELECT A WHERE B like 'Sản phẩm %'"
.
3. Mệnh đề ORDER BY – Sắp xếp dữ liệu
Sử dụng ORDER BY
để sắp xếp kết quả trả về theo một hoặc nhiều cột.
- Sắp xếp tăng dần (mặc định):
"SELECT * WHERE C > 0 ORDER BY B"
hoặc"SELECT * WHERE C > 0 ORDER BY B ASC"
. - Sắp xếp giảm dần:
"SELECT * WHERE C > 0 ORDER BY C DESC"
. - Sắp xếp theo nhiều cột:
"SELECT * ORDER BY B ASC, C DESC"
(ưu tiên sắp xếp theo cột B tăng dần, sau đó theo cột C giảm dần).
4. Mệnh đề LIMIT – Giới hạn số lượng kết quả
Nếu bạn chỉ muốn lấy một số lượng hàng nhất định từ kết quả truy vấn, hãy dùng LIMIT
.
"SELECT A, B ORDER BY B DESC LIMIT 10"
(lấy 10 hàng đầu tiên sau khi sắp xếp giảm dần theo cột B).
5. Mệnh đề GROUP BY và các hàm tổng hợp (Aggregation)
GROUP BY
cho phép nhóm các hàng có cùng giá trị ở một hoặc nhiều cột và thường được sử dụng cùng với các hàm tổng hợp như SUM()
, COUNT()
, AVG()
, MIN()
, MAX()
.
- Ví dụ: Tính tổng doanh thu (cột C) theo từng sản phẩm (cột B):
"SELECT B, SUM(C) WHERE A is not null GROUP BY B"
. - Ví dụ: Đếm số lượng đơn hàng theo khu vực (cột D):
"SELECT D, COUNT(A) WHERE D is not null GROUP BY D"
.
Lưu ý: Khi sử dụng GROUP BY
, tất cả các cột trong mệnh đề SELECT
phải là cột được nhóm (trong GROUP BY
) hoặc là kết quả của một hàm tổng hợp.
Ví dụ thực tế về hàm QUERY Google Sheets
Giả sử bạn có bảng dữ liệu bán hàng trong phạm vi 'DoanhSo'!A1:E100
với các cột: A (Ngày), B (Sản Phẩm), C (Số Lượng), D (Đơn Giá), E (Khu Vực).
- Lấy tên sản phẩm và số lượng bán được ở ‘Khu Vực Bắc’:
=QUERY('DoanhSo'!A1:E100, "SELECT B, C WHERE E = 'Khu Vực Bắc'", 1)
- Lấy tất cả thông tin đơn hàng có số lượng > 10, sắp xếp theo ngày mới nhất:
=QUERY('DoanhSo'!A1:E100, "SELECT * WHERE C > 10 ORDER BY A DESC", 1)
- Tính tổng số lượng bán theo từng sản phẩm:
=QUERY('DoanhSo'!A1:E100, "SELECT B, SUM(C) WHERE B is not null GROUP BY B", 1)
- Lấy 5 đơn hàng có doanh thu (Số Lượng * Đơn Giá) cao nhất:
=QUERY('DoanhSo'!A1:E100, "SELECT A, B, C*D ORDER BY C*D DESC LIMIT 5", 1)
Một số lưu ý quan trọng
- Phân biệt chữ hoa/thường: Các từ khóa của ngôn ngữ truy vấn (SELECT, WHERE, ORDER BY,…) không phân biệt hoa thường. Tuy nhiên, tên cột (A, B, C,…) thì có phân biệt nếu bạn không dùng hàng tiêu đề (tham số
headers
= 0). - Dấu nháy đơn cho chuỗi: Luôn sử dụng dấu nháy đơn (
' '
) để bao quanh các giá trị chuỗi văn bản trong mệnh đềWHERE
. - Định dạng ngày tháng: Sử dụng từ khóa
date
và định dạng'YYYY-MM-DD'
cho các điều kiện liên quan đến ngày tháng. - Tham chiếu cột: Khi dữ liệu nguồn không bắt đầu từ cột A, bạn vẫn tham chiếu theo ký tự cột thực tế (ví dụ: nếu dữ liệu là C2:F100, bạn vẫn dùng
SELECT C, D WHERE E > 10
). - Xử lý lỗi: Các lỗi như
#N/A
,#VALUE!
,#REF!
có thể xảy ra do sai cú pháp, kiểu dữ liệu không khớp, hoặc phạm vi dữ liệu không hợp lệ. Hãy kiểm tra kỹ công thức và dữ liệu nguồn.
Tài nguyên tham khảo
- Tài liệu chính thức về Ngôn ngữ truy vấn API Google Visualization (Tiếng Anh)
- Tham khảo thêm các mẹo hữu ích khác tại: Mẹo Google Sheets Hữu Ích (Liên kết nội bộ ví dụ)
Kết luận
Hàm QUERY Google Sheets thực sự là một công cụ biến đổi cách bạn làm việc với dữ liệu trong bảng tính. Bằng cách nắm vững các mệnh đề cơ bản tương tự SQL như SELECT, WHERE, ORDER BY, và LIMIT, bạn có thể thực hiện các tác vụ lọc, sắp xếp và trích xuất thông tin một cách nhanh chóng và hiệu quả. Đừng ngần ngại thực hành với dữ liệu của chính bạn và khám phá thêm các khả năng nâng cao của hàm QUERY. Chúc bạn thành công!