QUERY cho phép truy vấn và lọc dữ liệu trong Google Sheets bằng ngôn ngữ giống SQL — SELECT, WHERE, GROUP BY, ORDER BY — giúp tổng hợp và phân tích dữ liệu động mà không cần code.

Hàm QUERY Google Sheets: Truy Vấn Dữ Liệu Như SQL

Hướng dẫn đầy đủ cú pháp SELECT, WHERE, GROUP BY, ORDER BY và kết hợp IMPORTRANGE — lọc và tổng hợp dữ liệu mạnh mẽ chỉ với một công thức.

Tại sao nên dùng hàm QUERY trong Google Sheets?

Lọc dữ liệu mạnh mẽ

QUERY lọc hàng nghìn dòng dữ liệu theo nhiều điều kiện phức tạp chỉ bằng một công thức duy nhất

Tổng hợp như SQL

GROUP BY + SUM/COUNT/AVG giúp tổng hợp dữ liệu theo nhóm — thay thế hoàn toàn Pivot Table tĩnh

Thay thế nhiều công thức

Một hàm QUERY thay thế được tổ hợp FILTER + SORT + VLOOKUP, giúp sheet gọn và dễ bảo trì hơn

Kết hợp IMPORTRANGE

QUERY(IMPORTRANGE(...)) truy vấn trực tiếp dữ liệu từ file Google Sheets khác theo điều kiện tùy chọn

Hướng dẫn từng bước

  1. 1

    Nắm cú pháp cơ bản của QUERY

    Cú pháp: =QUERY(data, query_string, headers). data là vùng dữ liệu (A1:F100 hoặc tên sheet), query_string là câu truy vấn dạng chuỗi, headers là số hàng tiêu đề (thường là 1).

    Mẹo: Dùng dấu nháy kép cho chuỗi query: =QUERY(A1:F100,"SELECT A,B,C",1)

  2. 2

    Dùng SELECT chọn cột cần hiển thị

    SELECT A,B,D chọn cột A, B, D theo thứ tự bạn muốn. SELECT * lấy tất cả cột. Có thể đổi tên cột với label: SELECT A label A 'Tên khách'.

    Mẹo: Tên cột trong QUERY là Col1, Col2... khi dùng với IMPORTRANGE — không dùng được A,B,C

  3. 3

    Lọc dữ liệu với WHERE

    WHERE lọc theo điều kiện: =QUERY(A1:F100,"SELECT * WHERE C='Hà Nội'",1). Dùng AND/OR cho nhiều điều kiện, contains cho tìm kiếm chuỗi con.

    Mẹo: Chuỗi văn bản dùng dấu nháy đơn, số không cần: WHERE D>1000000 AND C='HCM'

  4. 4

    Tổng hợp nhóm với GROUP BY

    GROUP BY kết hợp hàm tổng hợp: SELECT B,SUM(D) GROUP BY B tính tổng cột D theo từng giá trị cột B. Hỗ trợ SUM, COUNT, AVG, MAX, MIN.

    Mẹo: Mọi cột trong SELECT không có hàm tổng hợp đều phải xuất hiện trong GROUP BY

  5. 5

    Sắp xếp và giới hạn kết quả với ORDER BY + LIMIT

    ORDER BY D DESC sắp xếp kết quả theo cột D giảm dần. LIMIT 10 chỉ lấy 10 dòng đầu. Kết hợp: SELECT * WHERE E>0 ORDER BY D DESC LIMIT 20.

    Mẹo: OFFSET bỏ qua N dòng đầu, hữu ích khi phân trang: LIMIT 10 OFFSET 10

Công thức QUERY thường dùng

Công thứcMô tả
=QUERY(A1:E100,"SELECT A,B,D WHERE D>0",1)SELECT lọc các hàng có cột D lớn hơn 0
=QUERY(A1:E100,"SELECT * WHERE C='Hà Nội'",1)WHERE lọc theo giá trị chuỗi 'Hà Nội'
=QUERY(A1:E100,"SELECT B,SUM(D) GROUP BY B",1)GROUP BY tính tổng cột D theo từng nhóm cột B
=QUERY(A1:E100,"SELECT * ORDER BY D DESC LIMIT 10",1)ORDER BY lấy 10 dòng có giá trị D cao nhất
=QUERY(IMPORTRANGE("url","Sheet1!A:F"),"SELECT Col1,Col2 WHERE Col3>0",1)Kết hợp IMPORTRANGE để truy vấn file khác, dùng Col1/Col2 thay A/B
=QUERY(A1:E100,"SELECT A,B WHERE B contains 'báo cáo'",1)contains tìm chuỗi con trong văn bản (không phân biệt hoa thường)

Câu hỏi thường gặp

Hàm QUERY khác Pivot Table ở điểm nào?

Pivot Table là công cụ giao diện đồ họa, kết quả tĩnh — mỗi lần dữ liệu thay đổi phải refresh thủ công. QUERY là công thức động, tự cập nhật ngay khi dữ liệu nguồn thay đổi và có thể lồng vào các công thức khác.

Cách viết WHERE với nhiều điều kiện?

Dùng AND/OR: WHERE C='HCM' AND D>500000. Dùng ngoặc đơn để nhóm điều kiện: WHERE (C='HCM' OR C='HN') AND D>0. Lưu ý: chuỗi bọc bằng dấu nháy đơn, số không cần dấu nháy.

Hàm QUERY có phân biệt hoa thường không?

Mặc định QUERY không phân biệt hoa thường với toán tử = và contains. Nếu cần phân biệt hoa thường, dùng matches với biểu thức chính quy: WHERE B matches '(?-i)Báo Cáo'.

Lỗi thường gặp khi dùng hàm QUERY là gì?

Lỗi #VALUE! thường do sai kiểu dữ liệu (cột số lại chứa văn bản). Lỗi #N/A do vùng dữ liệu trống. Lỗi PARSE_ERROR do sai cú pháp query_string — kiểm tra dấu nháy đơn/kép và tên cột. Khi dùng IMPORTRANGE nhớ dùng Col1,Col2 thay vì A,B.

SheetStore có template dùng hàm QUERY sẵn không?

Có, SheetStore cung cấp các template báo cáo và dashboard tích hợp sẵn hàm QUERY để lọc, tổng hợp dữ liệu động. Mua 1 lần dùng trọn đời 699K — không cần tự xây từ đầu.

Xem thêm hướng dẫn liên quan

Tiết kiệm thời gian với SheetStore

Template báo cáo và dashboard tích hợp sẵn hàm QUERY — lọc, tổng hợp dữ liệu động. Mua 1 lần, dùng trọn đời 699K.

Xem template tại SheetStore

Hoặc xem thêm hướng dẫn khác