• ベストアンサー

Excelで、異なる値ごとのセル数を数える

ある列の各セルに文字列の値が入っているとして、全部で何種類の値があるか未知の場合に、値別のセル数を数えるにはどうしたらいいでしょうか。つまり、 田中 鈴木 安藤 田中 李 トランプ 田中 田中 安藤 … のような列で、全部で何種類の名前が登場するかは分からない場合に 田中 3 鈴木 2 スミス1 … といったふうに、登場するすべての名前についてその回数を得たいのですが。一度に行うのが困難であれば、複数の手順を踏むのでもかまいません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

いろんなやり方があると思いますが、 個人的にはピボットテーブルもオススメです。 ピボットテーブル作成の詳しい手順は別途お調べ頂くとして・・ 例えば「文字列の値」がA列に入っていて、 かつ1行目に項目名(例えば「名前」)が入っていることを前提に、 (2007以降の場合、標準で) ・挿入タブから「ピボットテーブル」 ・テーブル/範囲にA列を指定(例:Sheet1!$A:$A)して、OK  (新規シートが作られ、   画面右に「ピボットテーブルのフィールド」設定が表示されます。   以下、その中での作業です。) ・「名前」を「行」にドラッグ・ドロップ ・「名前」を「値」にドラッグ・ドロップ お望みの > 登場するすべての名前についてその回数 を得るならここまでで完了です。 件数にも依りますが、複雑な関数を組み込むと動きが渋くなったりしますし、 複雑な関数は読み解くのも改変するのも手間がかかります。 ま、慣れなんですけどね。 なので個人的には(手間は少しかかりますが)コチラをオススメします。

noname#226683
質問者

お礼

この方法が一番きれいなように思います。重複削除のような破壊的変更をしなくて済むところも気に入りました。ありがとうございました。

その他の回答 (4)

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.5

添付図参照 1.範囲 A1:A9 を列Bにドラッグ&ペースト 2.範囲 B1:B9 を選択 3.[データ]→[データツール <重複の削除>]を実行 4."現在選択されて…替える"に目玉を入れて[重複  ̄ ̄の削除]→[OK] 5.式 =COUNTIF(A:A,B1) を入力したセル C1 を  ̄ ̄下方にズズーッとオートフィル

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

質問者はエクセルといえば関数ぐらいにしかやってないのではないかと推測する。そういう質問者が多い。 しかし、「ピボットテーブル」でやると一発だ。 列の見出し(「氏名」とする)をA1セルに入れて、A列を範囲指定。 挿入ーピボットテーブルーピボットテーブルの作成ーOK 氏名を「行」と「Σ値」の位置にそれぞれマウスでD&D 結果(質問のデータを使って) 行ラベル データの個数 / 氏名 トランプ 1 安藤 2 田中 4 李 1 鈴木 1 総計 9 普通は「Σ値」に持ってきた項目の値は加算やその他の演算が使われるが、文字列を持ってくると、自動で、件数が計算される、というピボットテーブルの仕組みを使えるのだ。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

例データ A2:A10 田中 鈴木 安藤 田中 李 トランプ 田中 田中 安藤 B2に式 =IF(COUNTIF($A$2:A2,A2)=1,COUNTIF($A$1:$A$10,A2),"") B10まで式を複写 結果 A2:B10 田中 4 鈴木 1 安藤 2 田中 李 1 トランプ 1 田中 田中 安藤 重複する氏名を除いて件数を出すには、重複しない氏名だけ集める、操作か関数が、前段階に必要です。 操作では >重複しない値を抽出するには、[データ] タブの [並べ替えとフィルタ] で [詳細設定] を使用します。 https://support.office.com/ja-jp/article/%E9%87%8D%E8%A4%87%E3%81%97%E3%81%AA%E3%81%84%E5%80%A4%E3%82%92%E6%8A%BD%E5%87%BA%E3%81%99%E3%82%8B%E3%80%81%E3%81%BE%E3%81%9F%E3%81%AF%E9%87%8D%E8%A4%87%E3%81%99%E3%82%8B%E5%80%A4%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B-ccf664b0-81d6-449b-bbe1-8daaec1e83c2

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.1

>ある列の各セルに文字列の値が入っているとして、 A列に値が入っていると仮定させていただきます。 >登場するすべての名前についてその回数を得たいのですが。 COUNTIF関数で計数できます。 >一度に行うのが困難であれば、複数の手順を踏むのでもかまいません。 A列をC列へコピーしC列を選択して重複の削除を実行すれば計数対象の文字列が抽出できたことになります。 D列へ出現回数をカウントする数式を次のようにすれば良いでしょう。 D1=COUNTIF(A:A,C1) D1セルを下へ必要数コピーすれば目的通りになります。

関連するQ&A