Google QUERY를 통해 DISTINCT / UNIQUE 텍스트 목록을 반환하는 방법은 무엇입니까?


12

카테고리 및 하위 카테고리 목록이 제공됩니다.

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

보조 카테고리를 기반으로 고유 한 모든 주요 카테고리를 반환하고 싶습니다.

사용하고 싶지 않습니다.

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

중복 된 목록을 반환하므로 첫 번째 요소를 반환해도 도움이되지 않습니다.

내가 노력하고있는 것은 :

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

: 그러나 그것은 나에게 오류를 제공 CANNOT_GROUP_WITHOUT_AGG하므로 I가 하나 뭔가 상당을 찾기 위해 노력하고, DISTINCT(A)또는 UNIQUE(A)하지만, 이러한 기능은 존재하지 않습니다.

고유 값 목록을 리턴하는 DISTINCT / UNIQUE와 동등한 기능이 Google Visualization API 쿼리 언어에 있습니까?

답변:


16

쿼리없이 :

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

가장 간단한 솔루션.
Omiod

8

QUERY수식 내에 도우미 열을 추가해야합니다 .

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

다른 QUERY수식을 추가 하면 도우미 열을 제거하는 데 도움이됩니다.

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

8

FILTER에서 항상 유용한 UNIQUE 함수를 사용하는 것 외에도 user79865원래 QUERY 함수 주위에 UNIQUE를 사용할 수도 있습니다 (FILTER가 충분하지 않은 경우 QUERY의 옵션과 유연성을 유지하기 위해 다른 시나리오에서 더 적합하고 유용 할 수 있음) ).

이렇게 : =UNIQUE(QUERY(A1:B6,"SELECT A WHERE B = 'SubCatA'"))



2

Unique(range)기능을 사용하십시오 .

예:

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

이것은 하나의 열 검색에서 작동합니다. 이 기술을 사용하여 추가 작업을 탐색 할 수 있습니다. 이것은 더 쉽다. A, B, C는 Sheet2의 열인 반면 E1, E2는 &로 둘러싸인 현재 워크 시트의 열입니다.


0

OP는 구체적으로 Google QUERY를 통해 요청 하지만 다른 A는 QUERY 및 IMO를 요구하지 않는 것이 더 포괄적이며 다목적이므로 피벗 테이블을 적용하는 것이 더 나은 솔루션이라는 전례가 있습니다.

WA82879 예

데이터 샘플이 더 현실적이라면 이것이 (그리고 다른 As) 솔루션의 더 나은 데모가 될 것입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.