Googleクエリでテキストの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、したがって、私はどちらかと同等の何かを見つけるためにしようとしている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))

これは、1つの列の取得で機能します。この手法を使用して、タスクをさらに探索できます。これは簡単です。A、B、CはSheet2の列で、E1、E2は&で囲まれた現在のワークシートの列です。


0

OPは特にGoogleクエリを介して要求しますが、別のAがクエリを必要としないという前例があり、IMOより優れたソリューション(より包括的で用途が広いため)はピボットテーブルを適用することです。

WA82879の例

データサンプルがより現実的である場合、これ(および他のAs)はソリューションのより優れたデモンストレーションになります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.