Cách sử dụng hàm QUERY trong Google Sheets

Nếu cần thao tác với dữ liệu trong Google Sheets, hàm QUERY có thể giúp ích cho bạn! Nó mang lại khả năng tìm kiếm kiểu cơ sở dữ liệu mạnh mẽ cho bảng tính, vì vậy bạn có thể tra cứu và lọc dữ liệu theo bất kỳ định dạng nào bạn muốn. Bài viết sau đây sẽ hướng dẫn bạn cách sử dụng hàm QUERY trong Google Sheets.

Sử dụng hàm QUERY

Hàm QUERY không quá khó để thành thạo nếu bạn đã từng tương tác với cơ sở dữ liệu bằng SQL. Định dạng của một hàm QUERY điển hình tương tự như SQL và mang lại sức mạnh của chức năng tìm kiếm cơ sở dữ liệu cho Google Sheets.

Định dạng của một công thức sử dụng hàm QUERY là:

=QUERY(data, query, headers)

Thay thế “data” bằng phạm vi ô (ví dụ, “A2:D12” hoặc “A:D”).

Đối số “headers” tùy chọn đặt số lượng hàng tiêu đề sẽ bao gồm ở đầu phạm vi dữ liệu. Nếu bạn có một tiêu đề trải rộng trên hai ô, như First trong A1Name trong A2, thì QUERY sẽ sử dụng nội dung của hai hàng đầu tiên làm tiêu đề kết hợp.

Trong ví dụ bên dưới, một trang tính (được gọi là “Staff List”) của bảng tính Google Sheets bao gồm danh sách nhân viên. Nó chứa tên, số ID nhân viên, ngày sinh và liệu họ có tham dự buổi đào tạo nhân viên bắt buộc hay không.

Bảng tính “Staff List”
Bảng tính “Staff List”

Trên trang tính thứ hai, bạn có thể sử dụng công thức QUERY để lấy danh sách tất cả các nhân viên không tham dự buổi đào tạo bắt buộc. Danh sách này sẽ bao gồm số ID nhân viên, tên, họ và việc họ có tham gia buổi đào tạo hay không.

Để thực hiện việc này với dữ liệu được hiển thị ở trên, bạn có thể nhập:

=QUERY('Staff List'!A2:E12, "SELECT A, B, C, E WHERE E = 'No'")

Điều này truy vấn dữ liệu từ phạm vi từ A2 đến E12 trên trang “Staff List”.

Giống như một truy vấn SQL thông thường, hàm QUERY chọn các cột để hiển thị (SELECT) và xác định các tham số cho tìm kiếm (WHERE). Nó trả về các cột A, B, C và E danh sách tất cả các hàng khớp, trong đó giá trị trong cột E (“Attended Training”) là một chuỗi văn bản có nội dung “No”.

Cột E (“Attended Training”) là một chuỗi văn bản có nội dung “No”
Cột E (“Attended Training”) là một chuỗi văn bản có nội dung “No”

Như được trình bày ở trên, 4 nhân viên trong danh sách đã không tham dự buổi tập huấn. Hàm QUERY đã cung cấp thông tin này, cũng như các cột khớp để hiển thị tên và số ID nhân viên trong một danh sách riêng.

Ví dụ này sử dụng một phạm vi dữ liệu rất cụ thể. Bạn có thể thay đổi để truy vấn tất cả dữ liệu trong cột A sang E. Điều này sẽ cho phép bạn tiếp tục thêm nhân viên mới vào danh sách. Công thức QUERY bạn đã sử dụng cũng sẽ tự động cập nhật bất cứ khi nào bạn thêm nhân viên mới hoặc khi ai đó tham gia buổi đào tạo.

Công thức chính xác để thực hiện điều này là:

=QUERY('Staff List'!A2:E, "Select A, B, C, E WHERE E = 'No'")

Công thức này bỏ qua tiêu đề ban đầu “Employees” trong ô A1.

Nếu bạn thêm nhân viên thứ 11, không tham gia khóa đào tạo vào danh sách ban đầu, như được hiển thị bên dưới (Christine Smith), thì công thức QUERY cũng sẽ cập nhật và hiển thị nhân viên mới.

Công thức QUERY sẽ cập nhật và hiển thị nhân viên mới
Công thức QUERY sẽ cập nhật và hiển thị nhân viên mới

Công thức QUERY nâng cao

Hàm QUERY rất linh hoạt. Nó cho phép bạn sử dụng các phép toán logic khác (như ANDOR) hoặc những hàm của Google (chẳng hạn COUNT) như một phần của tìm kiếm. Bạn cũng có thể sử dụng các toán tử so sánh (lớn hơn, nhỏ hơn, v.v...) để tìm giá trị giữa 2 số liệu.

Sử dụng toán tử so sánh với QUERY

Bạn có thể sử dụng QUERY với các toán tử so sánh (như nhỏ hơn, lớn hơn hoặc bằng) để thu hẹp và lọc dữ liệu. Để làm điều này, bài viết sẽ thêm một cột (F) vào bảng “Staff List”, với số lượng giải thưởng mà mỗi nhân viên đã giành được.

Sử dụng QUERY, ta có thể tìm kiếm tất cả các nhân viên đã giành được ít nhất một giải thưởng. Định dạng cho công thức này là:

=QUERY('Staff List'!A2:F12, "SELECT A, B, C, D, E, F WHERE F > 0")

Điều này sử dụng một toán tử so sánh > để tìm kiếm các giá trị lớn hơn 0 trong cột F.

Sử dụng toán tử so sánh với QUERY
Sử dụng toán tử so sánh với QUERY

Ví dụ trên cho thấy hàm QUERY trả về danh sách 8 nhân viên đã giành được một hoặc nhiều giải thưởng. Trong tổng số 11 nhân viên, có 3 người chưa bao giờ giành được giải thưởng.

Sử dụng AND và OR với QUERY

Các hàm toán tử logic lồng nhau như ANDOR hoạt động tốt trong công thức QUERY lớn hơn, để thêm nhiều tiêu chí tìm kiếm vào công thức.

Một cách tốt để thử nghiệm AND là tìm kiếm dữ liệu giữa hai ngày. Nếu áp dụng cho ví dụ về danh sách nhân viên, bài viết có thể liệt kê tất cả các nhân viên sinh từ năm 1980 đến năm 1989. Điều này cũng tận dụng các toán tử so sánh, như lớn hơn hoặc bằng (>=) và nhỏ hơn hoặc bằng (<=).

Định dạng cho công thức này là:

=QUERY('Staff List'!A2:E12, "SELECT A, B, C, D, E WHERE D >= DATE '1980-1-1' and D <= DATE '1989-12-31'")

Công thức này cũng sử dụng hàm DATE bổ sung để phân tích timestamp ngày một cách chính xác và tìm kiếm tất cả các ngày sinh trong khoảng từ ngày 1 tháng 1 năm 1980 đến ngày 31 tháng 12 năm 1989.

Các ngày sinh trong khoảng từ ngày 1 tháng 1 năm 1980 đến ngày 31 tháng 12 năm 1989 sẽ được liệt kê
Các ngày sinh trong khoảng từ ngày 1 tháng 1 năm 1980 đến ngày 31 tháng 12 năm 1989 sẽ được liệt kê

Như đã trình bày ở trên, 3 nhân viên sinh năm 1980, 1986 và 1983 đáp ứng các yêu cầu này.

Bạn cũng có thể sử dụng OR để tạo ra kết quả tương tự. Nếu sử dụng cùng một dữ liệu, nhưng chuyển đổi ngày và sử dụng OR, ví dụ có thể loại trừ tất cả các nhân viên sinh vào những năm 1980.

Định dạng cho công thức này sẽ là:

=QUERY('Staff List'!A2:E12, "SELECT A, B, C, D, E WHERE D >= DATE '1989-12-31' or D <= DATE '1980-1-1'")
7 người còn lại được sinh ra trước hoặc sau những ngày đã loại trừ
7 người còn lại được sinh ra trước hoặc sau những ngày đã loại trừ

Trong số 10 nhân viên ban đầu, có 3 người được sinh ra vào những năm 1980. Ví dụ trên cho thấy 7 người còn lại, những người được sinh ra trước hoặc sau những ngày đã loại trừ.

Sử dụng COUNT với QUERY

Thay vì chỉ đơn giản là tìm kiếm và trả lại dữ liệu, bạn cũng có thể trộn QUERY với các hàm khác, như COUNT, để thao tác với dữ liệu. Giả sử, ví dụ muốn xóa một số nhân viên trong danh sách những người đã và đã tham gia khóa đào tạo bắt buộc.

Để thực hiện việc này, bạn có thể kết hợp QUERY với COUNT như sau:

=QUERY('Staff List'!A2:E12, "SELECT E, COUNT(E) group by E")
Sử dụng COUNT với QUERY
Sử dụng COUNT với QUERY

Nhìn vào cột E (“Attended Training”), hàm QUERY đã sử dụng COUNT để đếm số lần mỗi loại giá trị (chứa chuỗi văn bản Yes hoặc No). Từ danh sách ví dụ, có 6 nhân viên đã hoàn thành khóa đào tạo và 4 người vẫn chưa.

Bạn có thể dễ dàng thay đổi công thức này và sử dụng nó với các loại hàm khác của Google, như hàm SUM trong Google Sheet.

Thứ Tư, 22/04/2020 17:48
54 👨 13.074
1 Bình luận
Sắp xếp theo
  • Nguyễn Văn Lai
    Nguyễn Văn Lai

    VÍ DỤ: =QUERY(A2:BY12, "SELECT BY"). Công thức trên sẽ báo lỗi (Không hiểu cột BY mà công thức hiểu là by). Vậy muốn lấy dữ liệu ở cột BY thì viết hàm như thế nào?

    Thích Phản hồi 20/03/23
    ❖ Google Sheets