スプレッドシートで個別の値を数える


84

次のような列のGoogleスプレッドシートがあります。

City
----
London
Paris
London
Berlin
Rome
Paris

それぞれの都市の出現数を数えたいので(都市名と出現回数が必要です)。

City   | Count
-------+------
London |  2
Paris  |  2
Berlin |  1
Rome   |  1

それ、どうやったら出来るの?


実用的な例を作成できなかったため、回答を削除しました。IF()およびとの組み合わせを確認することをお勧めしますCOUNTIF()
sascha 2013年

回答:


103

実例へのリンク

解決策0

これは、ピボットテーブルを使用して実行できます。

ピボットテーブルの例-値で行をカウントする

解決策1

unique式を使用して、すべての個別の値を取得します。次に、を使用countifして各値のカウントを取得します。これがどのように実装されているかを正確に確認するには、上部の作業例のリンクを参照してください。

Unique Values        Count
=UNIQUE(A3:A8)       =COUNTIF(A3:A8;B3)
                     =COUNTIF(A3:A8;B4)
                     ...

解決策2

データをそのように設定する場合:

City    
----    
London   1
Paris    1
London   1
Berlin   1
Rome     1
Paris    1

次に、次のようにすると、目的の結果が得られます。

=sort(transpose(query(A3:B8,"Select sum(B) pivot (A)")),2,FALSE)

すべての値が1になるので、2番目の列を取り除く方法があると確信しています。私の意見では理想的な解決策ではありません。

http://googledocsforlife.blogspot.com/2011/12/counting-unique-values-of-data-set.html経由

他のおそらく役立つリンク


それはうまくいった。ありがとう。すでに別のセットで2番目のソリューションを適用したのはおかしいですが、ここでは考えていませんでした。
マリウスバンシラ2013年

解決策2の場合:列Bを空のままにして、「合計」の代わりに「カウント」を使用できます。= sort(transpose(query(A3:B8、 "Select count(B)pivot(A)"))、2、FALSE )
wivku 2014

...しかし、ピボットテーブルを作成するにはどうすればよいですか?この答えは素晴らしく詳細に見えますが、dnlbrkyのより直接的な答えは私を救ったものです。ここでは、-より単純な-代替の1&2ソリューションが提供されていることに気づきませんでした。ひどい:(
Balmipour 2016年

1
@Balmipour Data> Pivot Table>次に、スクリーンショットをコピーします。
ジョシュアダンス

コメントの後でここに戻ってきました。「ピボットテーブル」のフランス語は「tableauxcroisésdynamiques」だとは思いませんでした。その日はもう少し検索できたと思いますが、少なくとも、メニューオプションが「データ」にあることを知っていれば、それを見つけることができました。
Balmipour 2017

25

このquery関数を使用できるので、データが列Aにあり、最初の行が列のタイトルである場合...

=query(A2:A,"select A, count(A) where A != '' group by A order by count(A) desc label A 'City'", 0)

収量

City    count 
London  2
Paris   2
Berlin  1
Rome    1

動作するGoogleスプレッドシートへのリンク。

https://docs.google.com/spreadsheets/d/1N5xw8-YP2GEPYOaRkX8iRA6DoeRXI86OkfuYxwXUCbc/edit#gid=0


この手法はうまく機能し、私の特定のケースでは簡単に適用できました。ただし、奇妙なことに、カウントされている列に複数の異なる数値がある場合、クエリは壊れているように見えました(つまり、何も出力されませんでした)。ただし、数値を同等の文字列に変換すると機能しました。
マットV.

@MattV。カウントされている列に個別の数値を追加しようとしましたが、クエリは問題なく機能しました。 docs.google.com/spreadsheets/d/…–
Mike Latch

他の列にラベルを付けるには、それらの定義を正確に繰り返します。この例では:label A 'City', count(A) 'Total'
ブライアンローチ

21

=iferror(counta(unique(A1:A100))) A1からA100までの一意のセルの数をカウントします


2
この場合のiferror()の機能を説明できますか?counta(unique(A1:A100))は私が探していた結果を与えてくれました。
シチュー2014年

10
OPは一意の値の数を要求していませんでしたが、必要な場合は、= COUNTUNIQUE(A:A)
wivku 2014

8

ユーザーが尋ねたものとは異なりますが、一意の値を数える簡単な方法は次のとおりです。

Googleは、1つのステップで一意の値をカウントする新しい関数を導入しました。これは、他の数式の入力として使用できます。

=COUNTUNIQUE(A1:B10)


1
これは1つの数値のみを返します。一意の値の数。ただし、OPは、それぞれの一意の値をカウントする方法を尋ねました。
ジョシュアダンス

3
@JoshuaDanceその通りですが、opの投稿は「スプレッドシート内の個別の値をカウントする」と呼ばれています。これは私にとってこの正確な質問に対する正当な答えのように見えます。「空のセル」は値としてカウントされないことに注意してください
Balmipour 2017

1
よろしければ、とりあえずそのままにしておきます。あまりにも多くのユーザーがこれを悪い答えだと思わない限り、私はそれを削除します。@Balmipour
Rudolf Real

1
これはまさに私が必要としていたものです。
FellyTone84 2017

6

これは、たとえば次の範囲の一意の値の数だけが必要な場合に機能します

=counta(unique(B4:B21))

0

これは@JSuarのソリューション1に似ています...

元の都市データがdataCity。という名前の範囲であると想定します。新しいシートに、次のように入力します。

    A                 | B
  ----------------------------------------------------------
1 | =UNIQUE(dataCity) | Count
2 |                   | =DCOUNTA(dataCity,"City",{"City";$A2})
3 |                   | [copy down the formula above]
4 |                   | ...
5 |                   | ...

-4

= UNIQUE({filter(Core!L8:L27、isblank(Core!L8:L27)= false)、query(ArrayFormula(countif(Core!L8:L27、Core!L8:L27))、 "select Col1 where Col1 < > 0 ")})

Core!L8:L27 =リスト


私が見る投稿から、これは11/15/18の時点で最良の答えのようです。最大投票PLZ
user3626588
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.