# Cách dùng hàm QUERY trong Google Sheets: SELECT, WHERE, GROUP BY, lọc theo ngày và sửa lỗi

Hàm QUERY lấy một bảng dữ liệu và một câu lệnh dạng chữ, rồi trả về bảng mới đã lọc, gộp nhóm và sắp xếp: =QUERY(A1:F9; "select C, sum(F) group by C"; 1) cộng doanh thu theo từng nhân viên chỉ bằng một ô. Bài này đi qua cú pháp, từng mệnh đề select, where, group by, order by, limit, label, pivot, cách dùng Col1 khi dữ liệu là mảng ghép, lọc theo ngày, lọc theo ô người dùng gõ, và các lỗi hay gặp — mỗi công thức đều có ví dụ số và phần thử lại.

Đăng 2026-10-19 · 15 phút đọc · QUERY, Công thức, Báo cáo, Google Sheets

## Hàm QUERY là gì, khi nào nên dùng

QUERY là hàm riêng của Google Sheets, cho phép viết một câu lệnh gần giống SQL để hỏi bảng dữ liệu: "lấy những cột này, của những dòng thoả điều kiện kia, gộp theo cột này, sắp xếp theo cột nọ". Kết quả tự tràn ra thành một bảng mới và tự cập nhật khi dữ liệu gốc thay đổi.

- **Cú pháp:** =QUERY(dữ_liệu; truy_vấn; tiêu_đề)
- **Chuỗi truy vấn:** Viết trong ngoặc kép, từ khoá tiếng Anh, cách bằng dấu phẩy
- **Gọi cột:** Chữ cột A, B, C… với dải ô; Col1, Col2… với mảng {…}
- **Ngày tháng:** date 'yyyy-mm-dd', ghép bằng TEXT(ô; "yyyy-mm-dd")

Nên dùng QUERY khi bạn cần một **bảng báo cáo** từ bảng nhập liệu: doanh thu theo nhân viên, số đơn theo sản phẩm, top 3 đơn lớn nhất. Chỉ cần một con số thì SUMIFS ngắn hơn; chỉ cần lọc dòng thì FILTER cũng đủ.

Mọi ví dụ trong bài dùng chung bảng **Đơn hàng** dưới đây (A1:F9, dòng 1 là tiêu đề). Công thức viết theo vùng Việt Nam nên đối số của hàm cách nhau bằng dấu chấm phẩy.

*Bảng dữ liệu mẫu: 8 đơn, tổng doanh thu 6.700.000.*

|  | A: Ngày | B: Khách | C: Nhân viên | D: Sản phẩm | E: Số lượng | F: Doanh thu |
|---|---|---|---|---|---|---|
| 2 | 02/10/2026 | Cửa hàng Minh Anh | Lan | Cà phê hạt | 5 | 1.250.000 |
| 3 | 03/10/2026 | Quán Gió | Tuấn | Trà ô long | 3 | 540.000 |
| 4 | 05/10/2026 | Cửa hàng Minh Anh | Lan | Trà ô long | 2 | 360.000 |
| 5 | 08/10/2026 | Tạp hoá Bảy Hiền | Tuấn | Cà phê hạt | 8 | 2.000.000 |
| 6 | 12/10/2026 | Quán Gió | Lan | Cà phê hạt | 4 | 1.000.000 |
| 7 | 15/10/2026 | Tạp hoá Bảy Hiền | Hương | Mật ong | 6 | 900.000 |
| 8 | 18/10/2026 | Cửa hàng Minh Anh | Hương | Cà phê hạt | 2 | 500.000 |
| 9 | 28/09/2026 | Quán Gió | Tuấn | Mật ong | 1 | 150.000 |

## Cú pháp hàm QUERY trong Google Sheets

```
=QUERY(dữ_liệu; truy_vấn; [tiêu_đề])
```

| Đối số | Nghĩa | Ví dụ |
|---|---|---|
| dữ_liệu | Dải ô hoặc mảng cần hỏi | A1:F9, hoặc A1:F để tự lấy dòng mới |
| truy_vấn | Câu lệnh, đặt trong ngoặc kép. Chuỗi giá trị bên trong dùng nháy đơn | "select B, F where C = 'Lan'" |
| tiêu_đề | Số dòng tiêu đề ở đầu dữ liệu. Bỏ trống thì Google tự đoán | 1 |

Hai điều làm người mới hay vấp: **chuỗi truy vấn luôn viết theo kiểu tiếng Anh** dù file đặt vùng Việt Nam, tức các cột trong select cách nhau bằng dấu phẩy (select B, D, F) và số thập phân dùng dấu chấm (where F > 1.5). Dấu chấm phẩy chỉ dùng giữa các đối số của hàm. Thứ hai, chữ cột nên viết **in hoa** (A, B, C) như chúng hiện trên trang tính.

Lấy Khách, Sản phẩm, Doanh thu của các đơn do Lan bán.

```
=QUERY(A1:F9; "select B, D, F where C = 'Lan'"; 1)
```

**Thử lại:** cột C bằng Lan ở dòng 2, 4, 6. Kết quả là dòng tiêu đề (Khách, Sản phẩm, Doanh thu) và 3 dòng: Cửa hàng Minh Anh · Cà phê hạt · 1.250.000; Cửa hàng Minh Anh · Trà ô long · 360.000; Quán Gió · Cà phê hạt · 1.000.000. Đặt công thức ở chỗ trống đủ rộng, nếu không sẽ báo #REF! vì kết quả đè lên dữ liệu khác.

![Bảng 9 mệnh đề đánh số theo thứ tự: select, where, group by, pivot, order by, limit, offset, label, format, mỗi mệnh đề có ví dụ như where C = 'Lan' and F >= 500000 và label sum(F) 'Doanh thu'](https://www.hitava.cloud/img/blog/cach-dung-ham-query-google-sheets/thu-tu-menh-de.webp)
*Các mệnh đề phải đứng đúng thứ tự này. Không cần mệnh đề nào thì bỏ.*

## SELECT và WHERE: chọn cột, lọc dòng

**select** liệt kê cột muốn lấy, theo đúng thứ tự muốn hiện. select * lấy tất cả. Bỏ hẳn select cũng là lấy tất cả. **where** giữ lại những dòng thoả điều kiện, ghép nhiều điều kiện bằng and, or, not.

| Điều kiện trong where | Nghĩa | Ví dụ trên bảng mẫu |
|---|---|---|
| F >= 1000000 | So sánh số: =, !=, <, >, <=, >= (số không có dấu chấm ngăn nghìn) | 3 đơn: 1.250.000, 2.000.000, 1.000.000 |
| C = 'Tuấn' | Bằng đúng chuỗi, phân biệt hoa thường | 3 đơn của Tuấn |
| B contains 'Minh Anh' | Chứa đoạn chữ | Dòng 2, 4, 8 |
| lower(D) = 'cà phê hạt' | Không phân biệt hoa thường | 4 đơn cà phê |
| C = 'Lan' and F >= 1000000 | Cả hai điều kiện | Dòng 2 và 6 |

Các đơn từ 1 triệu trở lên, đơn lớn nhất lên đầu.

```
=QUERY(A1:F9; "select B, F where F >= 1000000 order by F desc"; 1)
```

**Thử lại:** F ≥ 1.000.000 ở dòng 2 (1.250.000), 5 (2.000.000), 6 (1.000.000). Sắp giảm dần: Tạp hoá Bảy Hiền 2.000.000; Cửa hàng Minh Anh 1.250.000; Quán Gió 1.000.000.

**order by** sắp xếp, thêm asc (tăng, mặc định) hoặc desc (giảm). **limit** cắt lấy N dòng đầu, rất tiện để làm bảng "top":

```
=QUERY(A1:F9; "select A, B, F order by F desc limit 3"; 1)
```

**Thử lại:** ba đơn lớn nhất là 08/10 Tạp hoá Bảy Hiền 2.000.000; 02/10 Cửa hàng Minh Anh 1.250.000; 12/10 Quán Gió 1.000.000.

## GROUP BY và LABEL: cộng, đếm theo nhóm

**group by** gộp các dòng cùng giá trị thành một dòng, đi kèm hàm gộp: sum (cộng), count (đếm), avg (trung bình), max, min. Quy tắc bắt buộc: cột nào trong select mà không nằm trong hàm gộp thì phải có trong group by.

Doanh thu theo nhân viên, nhiều nhất lên đầu, tiêu đề cột đổi thành "Doanh thu".

```
=QUERY(A1:F9; "select C, sum(F) group by C order by sum(F) desc label sum(F) 'Doanh thu'"; 1)
```

**Thử lại:** Lan = 1.250.000 + 360.000 + 1.000.000 = **2.610.000**; Tuấn = 540.000 + 2.000.000 + 150.000 = **2.690.000**; Hương = 900.000 + 500.000 = **1.400.000**. Cộng lại 6.700.000, đúng tổng bảng. Sắp giảm dần: Tuấn, Lan, Hương. Không có label thì tiêu đề cột hiện "sum Doanh thu".

Đếm số đơn và cộng số lượng theo sản phẩm. Nhiều label cách nhau bằng dấu phẩy.

```
=QUERY(A1:F9; "select D, count(B), sum(E) group by D label count(B) 'Số đơn', sum(E) 'Số lượng'"; 1)
```

**Thử lại:** Cà phê hạt có 4 đơn (dòng 2, 5, 6, 8), số lượng 5 + 8 + 4 + 2 = 19; Mật ong 2 đơn, 6 + 1 = 7; Trà ô long 2 đơn, 3 + 2 = 5. Khi không có order by, group by tự xếp nhóm theo thứ tự chữ cái.

## PIVOT: biến giá trị thành cột

**pivot** lấy các giá trị khác nhau của một cột làm tiêu đề cột mới, giống bảng tổng hợp (pivot table) nhưng nằm trong một công thức.

Hàng là nhân viên, cột là sản phẩm, ô là doanh thu.

```
=QUERY(A1:F9; "select C, sum(F) group by C pivot D"; 1)
```

*Kết quả của công thức pivot. Ô trống là nhân viên đó không bán sản phẩm đó.*

| Nhân viên | Cà phê hạt | Mật ong | Trà ô long |
|---|---|---|---|
| Hương | 500.000 | 900.000 |  |
| Lan | 2.250.000 |  | 360.000 |
| Tuấn | 2.000.000 | 150.000 | 540.000 |

**Thử lại:** Lan bán cà phê ở dòng 2 và 6: 1.250.000 + 1.000.000 = 2.250.000; trà ở dòng 4: 360.000; không bán mật ong nên ô trống. Cột Tuấn cộng lại 2.690.000, khớp với ví dụ group by ở trên. Mỗi khi có sản phẩm mới, pivot tự thêm cột — nhớ chừa chỗ trống bên phải.

## Lọc theo ngày trong QUERY

Đây là chỗ hỏi nhiều nhất. Trong chuỗi truy vấn, ngày phải viết dạng **date 'yyyy-mm-dd'**, không phải 01/10/2026. Viết where A >= '01/10/2026' sẽ so ngày với một chuỗi chữ và ra kết quả rỗng hoặc lỗi.

Các đơn trong tháng 10/2026. Dùng "< ngày đầu tháng sau" thay cho "<= 31/10" để không sót đơn có giờ.

```
=QUERY(A1:F9; "select A, B, F where A >= date '2026-10-01' and A < date '2026-11-01'"; 1)
```

**Thử lại:** chỉ đơn ngày 28/09 (dòng 9) bị loại, còn 7 đơn tháng 10, tổng 6.550.000.

Thực tế bạn sẽ muốn gõ ngày vào ô rồi để công thức tự đổi. Lúc này phải **nối chuỗi**: đặt phần ngày ra ngoài ngoặc kép và dùng TEXT để đổi ngày thành đúng dạng yyyy-mm-dd. Giả sử H1 = 01/10/2026 (Từ ngày), H2 = 15/10/2026 (Đến ngày):

H2+1 để lấy trọn ngày 15/10. Để ý dãy ký tự '" và "' — nháy đơn của date nằm trong chuỗi, nháy kép đóng mở chuỗi.

```
=QUERY(A1:F9; "select C, sum(F) where A >= date '"&TEXT(H1;"yyyy-mm-dd")&"' and A < date '"&TEXT(H2+1;"yyyy-mm-dd")&"' group by C label sum(F) 'Doanh thu'"; 1)
```

**Thử lại:** công thức sau khi ghép thành ... where A >= date '2026-10-01' and A < date '2026-10-16' .... Các dòng 2–7 thoả (dòng 7 là 15/10 vẫn được tính), dòng 8 (18/10) và dòng 9 (28/09) bị loại. Kết quả: Hương 900.000; Lan 2.610.000; Tuấn 540.000 + 2.000.000 = 2.540.000.

Gộp theo tháng dùng hàm month() — nhưng **month() đếm từ 0**: tháng 1 là 0, tháng 10 là 9. Cộng thêm 1 cho dễ đọc:

```
=QUERY(A1:F9; "select month(A)+1, sum(F) where A is not null group by month(A)+1 label month(A)+1 'Tháng', sum(F) 'Doanh thu'"; 1)
```

**Thử lại:** tháng 9: 150.000; tháng 10: 6.550.000. Dữ liệu nhiều năm thì gộp thêm year(A).

**Cột ngày là chữ thì QUERY không lọc được:** Ngày dán từ phần mềm khác hay nằm dưới dạng chữ (sát trái ô). QUERY coi cả cột là chữ và date '...' không khớp dòng nào. Kiểm tra bằng =ISNUMBER(A2): ra FALSE là ngày dạng chữ. Cách đổi hàng loạt có ở bài [sửa lỗi ngày tháng trong Google Sheets](https://www.hitava.cloud/blog/sua-loi-ngay-thang-google-sheets).

## Lọc theo ô tham chiếu: nối chuỗi trong QUERY

Chuỗi truy vấn chỉ là chữ, nên Google không hiểu "H3" nằm bên trong nó. Muốn lọc theo ô người dùng gõ, bạn cắt chuỗi ra và nối giá trị ô vào bằng dấu &. Quy tắc: **giá trị chữ phải nằm trong nháy đơn, số thì không**.

H3 = Quán Gió: các đơn của khách này theo ngày.

```
=QUERY(A1:F9; "select A, D, F where B = '"&H3&"' order by A"; 1)
```

**Thử lại:** công thức ghép thành where B = 'Quán Gió'. Dòng 3, 6, 9 thoả; sắp theo ngày: 28/09/2026 · Mật ong · 150.000; 03/10/2026 · Trà ô long · 540.000; 12/10/2026 · Cà phê hạt · 1.000.000.

H4 = 1000000: lọc theo số, không có nháy đơn.

```
=QUERY(A1:F9; "select B, F where F >= "&H4&" order by F desc"; 1)
```

**Thử lại:** ra 3 đơn như ví dụ ở phần where.

Khi ô lọc trống, where B = '' không khớp dòng nào nên bảng chỉ còn tiêu đề. Muốn "trống thì lấy hết", bọc IF ở ngoài:

Kết hợp nhiều ô lọc tuỳ chọn thì xem thêm bài [hàm IF nhiều điều kiện](/blog/cach-dung-ham-if-nhieu-dieu-kien).

```
=IF(H3=""; QUERY(A1:F9; "select A, B, D, F order by A"; 1); QUERY(A1:F9; "select A, B, D, F where B = '"&H3&"' order by A"; 1))
```

![Tab Nguồn & ROI của mẫu Quản lý Lead & Bán hàng PRO: chọn Kỳ Quý này và Nhân viên Tất cả, bảng 10 nguồn lead với cột Lead, Đủ ĐK, Thắng, Tỉ lệ chốt, Doanh số, Chi phí, CPL, CAC, ROAS, dòng tổng 180 lead, và hai biểu đồ chi phí, doanh số, tỉ lệ chốt theo nguồn](https://www.hitava.cloud/img/blog/cach-dung-ham-query-google-sheets/nguon-roi-lead.webp)
*Bảng tổng hợp theo nguồn có ô chọn kỳ và nhân viên trong mẫu Quản lý Lead & Bán hàng PRO — cùng kiểu báo cáo "lọc theo ô, gộp theo nhóm" như các ví dụ ở trên.*

→ [Nếu bạn đang tự dựng báo cáo lead theo nguồn, theo nhân viên bằng QUERY: mẫu Quản lý Lead & Bán hàng PRO có sẵn các tab Tổng quan, Phễu, Hiệu suất, Nguồn & ROI với ô chọn kỳ và nhân viên. Bạn chỉ gõ ở tab Leads và Chăm sóc, báo cáo tự tính; mở bằng Excel vẫn dùng được công thức và biểu đồ.](https://www.hitava.cloud/san-pham/quan-ly-lead-ban-hang-pro)

## Col1, Col2 khi dữ liệu là mảng hoặc ghép nhiều trang

Khi đối số dữ_liệu là một **mảng** chứ không phải dải ô thường — ghép bằng ngoặc nhọn {…}, kết quả của IMPORTRANGE, hay của một hàm khác — QUERY không còn biết cột A, B là gì. Lúc đó phải gọi cột theo vị trí: **Col1, Col2, Col3…** (chữ C in hoa, số không có khoảng cách).

Ví dụ phổ biến: đơn tháng 9 nằm ở trang T9, tháng 10 ở trang T10, cùng cấu trúc A:F. Ghép chồng hai trang bằng dấu chấm phẩy rồi gộp:

Lấy từ dòng 2 (bỏ tiêu đề từng trang) nên đối số cuối là 0. where Col1 is not null bỏ hàng nghìn dòng trống của dải mở A2:F.

```
=QUERY({'T9'!A2:F; 'T10'!A2:F}; "select Col3, sum(Col6) where Col1 is not null group by Col3 label Col3 'Nhân viên', sum(Col6) 'Doanh thu'"; 0)
```

**Thử lại:** T9 có đơn 28/09 của Tuấn 150.000, T10 có 7 đơn còn lại. Kết quả giống hệt bảng group by ở trên: Hương 1.400.000; Lan 2.610.000; Tuấn 2.690.000. Thiếu where Col1 is not null thì có thêm một dòng nhóm trống ở đầu.

Trong mảng của vùng Việt Nam, **dấu chấm phẩy xếp chồng theo hàng, dấu gạch chéo ngược \ ghép cạnh nhau theo cột** (vùng Hoa Kỳ dùng dấu phẩy). Ví dụ chỉ lấy cột Khách và Doanh thu nằm cách xa nhau:

```
=QUERY({A2:A9\F2:F9}; "select Col1, Col2 where Col2 >= 1000000"; 0)
```

**Thử lại:** mảng mới có 2 cột: Col1 là Ngày (cột A), Col2 là Doanh thu (cột F). Ra 3 dòng: 02/10 · 1.250.000; 08/10 · 2.000.000; 12/10 · 1.000.000. Dùng chữ cột A, F với mảng sẽ báo lỗi NO_COLUMN; ngược lại dùng Col1 với dải ô thường cũng báo lỗi.

## Lỗi hay gặp khi dùng QUERY và cách sửa

**1. Cột có kiểu dữ liệu trộn lẫn.** QUERY chỉ cho mỗi cột một kiểu: số, chữ, ngày hoặc đúng/sai, và chọn kiểu chiếm **đa số**. Giá trị thuộc kiểu thiểu số bị coi là trống. Ví dụ cột Mã đơn có 1001, 1002, 1003, 1005 (số) và HD-1004 (chữ): kết quả QUERY hiện ô trống ở chỗ HD-1004, lọc where G = 'HD-1004' không ra gì, mà không có báo lỗi nào.

Cách sửa: thống nhất cả cột về một kiểu. Với cột mã, đổi định dạng cột sang văn bản thuần rồi nhập lại; hoặc ép cả cột thành chữ ngay trong công thức bằng TO_TEXT:

```
=QUERY({ARRAYFORMULA(TO_TEXT(G2:G9))\F2:F9}; "select Col1, Col2 where Col1 = 'HD-1004'"; 0)
```

Cột số mà lẫn vài ô số dạng chữ cũng gây sai tổng theo cách tương tự; cách nhận ra có ở bài [sửa lỗi SUM bằng 0 trong Google Sheets](https://www.hitava.cloud/blog/sua-loi-sum-bang-0-trong-google-sheets).

**2. Dấu nháy.** Toàn bộ truy vấn nằm trong nháy kép, giá trị chữ bên trong dùng nháy đơn. Thiếu một nháy hoặc quên & khi nối ô là lỗi phân tích cú pháp. Mẹo kiểm tra: đặt riêng phần chuỗi vào một ô, ví dụ ="select A where B = '"&H3&"'", xem chuỗi ghép ra có đúng không rồi mới đưa vào QUERY.

**3. Đối số tiêu_đề.** Bỏ trống thì Google tự đoán số dòng tiêu đề, và có lúc đoán sai: dòng tiêu đề bị coi là dữ liệu, hoặc vài dòng đầu bị gộp thành một tiêu đề dài. Luôn ghi rõ: 1 khi dải ô có một dòng tiêu đề, 0 khi bắt đầu từ dòng dữ liệu.

| Dấu hiệu | Nguyên nhân | Cách sửa |
|---|---|---|
| Lỗi không phân tích được chuỗi truy vấn | Sai thứ tự mệnh đề, thiếu nháy, dùng ; giữa các cột trong select | Xếp lại theo thứ tự select › where › group by › pivot › order by › limit › label; dùng dấu phẩy |
| NO_COLUMN | Cột nằm ngoài dải ô, gõ chữ thường, hoặc lẫn Col1 với A | Mở rộng dải; chữ in hoa; mảng dùng Col1, dải thường dùng A |
| ADD_COL_TO_GROUP_BY_OR_AGG | Cột trong select không gộp mà cũng không có trong group by | Thêm cột đó vào group by hoặc bọc sum/count |
| AVG_SUM_ONLY_NUMERIC | sum/avg trên cột bị coi là chữ | Đổi số dạng chữ thành số |
| Chỉ ra dòng tiêu đề, không có dữ liệu | Lọc ngày bằng '01/10/2026', sai hoa thường, khoảng trắng thừa, ô lọc trống | date 'yyyy-mm-dd'; lower(); TRIM dữ liệu; bọc IF |

**Excel không có hàm QUERY:** QUERY chỉ có trên Google Sheets. Tải file về .xlsx rồi mở bằng Excel, các ô QUERY sẽ báo lỗi khi tính lại hoặc chỉ còn giá trị cũ. File phải dùng cả hai bên thì làm báo cáo bằng SUMIFS, COUNTIFS hoặc pivot table. Những khác biệt khác có ở bài [Google Sheets hay Excel](https://www.hitava.cloud/blog/google-sheets-hay-excel).

Báo cáo cho người khác xem thì [khoá ô công thức](https://www.hitava.cloud/blog/khoa-o-cong-thuc-google-sheets) để không ai gõ đè vùng kết quả.

→ [Báo cáo bán hàng mà nhiều kho, nhiều nhân viên, nhiều tháng thì tự viết QUERY rất nhanh rối. Bán hàng 360 PRO có sẵn báo cáo lãi theo mặt hàng, khách, kho, nhân viên, lãi ròng theo tháng và dòng tiền dự báo; bán tại quầy và kho chạy trong web app trên Google Sheets.](https://www.hitava.cloud/san-pham/ban-hang-360-pro)

## Đọc tiếp

- [Sửa lỗi ngày tháng trong Google Sheets](https://www.hitava.cloud/blog/sua-loi-ngay-thang-google-sheets): Khi QUERY lọc theo ngày không ra dòng nào
- [Sửa lỗi SUM bằng 0 trong Google Sheets](https://www.hitava.cloud/blog/sua-loi-sum-bang-0-trong-google-sheets): Số dạng chữ — nguyên nhân sum trong QUERY sai
- [Cách dùng hàm IF nhiều điều kiện](https://www.hitava.cloud/blog/cach-dung-ham-if-nhieu-dieu-kien): Ghép nhiều ô lọc tuỳ chọn
- [Quản lý bán hàng bằng Google Sheets](https://www.hitava.cloud/blog/quan-ly-ban-hang-bang-google-sheets): Bảng nhập đơn để QUERY làm báo cáo

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

**Trong QUERY dùng dấu phẩy hay chấm phẩy?**

Cả hai, ở hai chỗ khác nhau. Giữa các đối số của hàm (dữ liệu; truy vấn; tiêu đề) dùng dấu chấm phẩy theo vùng Việt Nam. Bên trong chuỗi truy vấn luôn dùng dấu phẩy: select A, B, sum(F).

**QUERY lấy dữ liệu từ trang tính khác hoặc file khác được không?**

Trang khác trong cùng file: ghi tên trang trước dải ô, ví dụ =QUERY('Đơn hàng'!A1:F; "select ..."; 1). File khác: dùng IMPORTRANGE làm đối số dữ liệu, khi đó phải gọi cột bằng Col1, Col2. Lần đầu cần bấm cho phép truy cập.

**Làm sao để QUERY tự lấy dòng mới thêm vào?**

Dùng dải mở như A1:F thay cho A1:F9 và thêm where A is not null (hoặc Col1 is not null) để bỏ dòng trống. Dòng mới nhập là báo cáo tự cập nhật.

**Tìm kiếm trong QUERY có phân biệt chữ hoa, chữ thường không?**

Có. where C = 'lan' không khớp 'Lan'. Dùng lower(C) = 'lan' hoặc lower(B) contains 'minh anh' để bỏ qua hoa thường.

**Nên dùng QUERY, FILTER hay SUMIFS?**

Cần một con số: SUMIFS, COUNTIFS. Cần lọc dòng giữ nguyên cột: FILTER. Cần lọc kèm gộp nhóm, sắp xếp, đổi tiêu đề, xoay cột: QUERY. File còn phải mở bằng Excel thì tránh QUERY.

## Nguồn

- [Google — Hàm QUERY](https://support.google.com/docs/answer/3093343?hl=vi)
- [Google for Developers — Query Language Reference (cú pháp select, where, group by, pivot, label, format)](https://developers.google.com/chart/interactive/docs/querylanguage)
- [Google — Dùng mảng trong Google Trang tính (dấu phân cách theo vùng)](https://support.google.com/docs/answer/6208276?hl=vi)

## Mẫu liên quan

- https://www.hitava.cloud/san-pham/quan-ly-lead-ban-hang-pro
- https://www.hitava.cloud/san-pham/ban-hang-360-pro

Trang bài viết: https://www.hitava.cloud/blog/cach-dung-ham-query-google-sheets