Làm cách nào để trả về danh sách văn bản DISTINCT / UNIITE qua Google QUERY?


12

Đưa ra danh sách các danh mục và danh mục phụ:

CatA    SubCatA
CatA    SubCatA
CatB    SubCatB
CatB    SubCatB
CatC    SubCatC
CatC    SubCatC

Tôi muốn trả lại tất cả các danh mục chính duy nhất dựa trên danh mục phụ.

Tôi không muốn sử dụng:

=QUERY(A1:B6,"SELECT A WHERE B = 'SubCatA'")

vì nó trả về danh sách với các bản sao (trả về phần tử đầu tiên cũng không giúp được gì).

Những gì tôi đang cố gắng là:

=QUERY(A1:B6,"SELECT A WHERE B = 'SubCatA' GROUP BY A")

nhưng nó mang lại cho tôi lỗi CANNOT_GROUP_WITHOUT_AGG:, do đó tôi đang cố gắng tìm thứ gì đó tương đương DISTINCT(A)hoặc UNIQUE(A), nhưng các chức năng này không tồn tại.

Có bất kỳ chức năng nào trong Ngôn ngữ truy vấn API trực quan hóa của Google tương đương với DISTINCT / UNIQUE để trả về danh sách các giá trị duy nhất không?

Câu trả lời:


16

Không có truy vấn:

=unique(filter(A1:A6, B1:B6="SubCatA"))

Giải pháp đơn giản nhất.
Omiod

8

Bạn cần thêm một cột trợ giúp trong QUERYcông thức, như vậy:

=QUERY(
   {A1:B6, A1:A6},
   "SELECT Col1, COUNT(Col3) WHERE Col2 = 'SubCatA' GROUP BY Col1 LABEL COUNT(Col3) ''"
 )

Thêm một QUERYcông thức khác sẽ giúp loại bỏ cột trợ giúp:

=QUERY(
   QUERY(
     {A1:B6, A1:A6},
     "SELECT Col1, COUNT(Col3) WHERE Col2 = 'SubCatA' GROUP BY Col1"
   ), 
   "SELECT Col1"
 )

8

Ngoài việc sử dụng hàm UNIITE hữu ích xung quanh LỌC, như user79865gợi ý, bạn cũng có thể sử dụng UNIITE xung quanh hàm QUERY ban đầu (có thể áp dụng và hữu ích hơn trong các tình huống khác để duy trì các tùy chọn và tính linh hoạt của QUERY khi LỌC không đủ ).

Thích như vậy: =UNIQUE(QUERY(A1:B6,"SELECT A WHERE B = 'SubCatA'"))


4

Giải pháp không có chức năng trợ giúp / trình bao bọc:

=QUERY(A1:B6,"SELECT MAX(A) WHERE B = 'SubCatA' GROUP BY A LABEL MAX(A) ''")

2

Sử dụng Unique(range)chức năng.

Thí dụ:

=unique(query(Sheet2!A3:F2372,"SELECT C WHERE A contains '" &E1& "' AND B CONTAINS '" &E2& "'  ",-1))

Điều này sẽ làm việc trên một truy xuất cột. Bạn có thể sử dụng kỹ thuật này để khám phá thêm nhiệm vụ của bạn. Điều này dễ dàng hơn. A, B, C là các cột từ Sheet2 trong khi E1, E2 là từ bảng tính hiện tại được bao quanh bởi &.


0

OP đặc biệt hỏi qua Google QUERY nhưng có tiền lệ rằng một A khác không yêu cầu QUERY và IMO một giải pháp tốt hơn (vì toàn diện hơn và linh hoạt hơn) sẽ áp dụng bảng xoay vòng:

Ví dụ WA82879

Điều này (và As khác) sẽ là minh chứng tốt hơn cho các giải pháp nếu mẫu dữ liệu thực tế hơn.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.