• ベストアンサー

【Excel2003】 値の個数を検索する方法(関数)を教えて下さい

お世話になります。 すごく基本的な質問で申し訳ないんですが 値の個数を検索する方法(関数)を教えて下さい。 ただし、重複する値は1つにまとめます。 環境:WindowsXP Excel2003 例えば下記のように列に値が入っているとすると、、、 1 2 1 1 3 4 =4 という回答が欲しいです。(1が3つ+2+3+4) よろしくお願い致します。

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

  • ベストアンサー
  • EL-SUR
  • ベストアンサー率76% (83/108)
回答No.3

こんなの p(..) でもできますよ。 範囲が A1:A10だとして、、、 数値限定なら =COUNT(1/FREQUENCY(A1:A10,A1:A10)) 数値・文字列どちらでも =COUNT(INDEX(1/(MATCH(A1:A10,A1:A10,0)=ROW(A1:A10)),0)) 途中に空白セルがあっても対応できます。

その他の回答 (4)

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

文字列の例で説明してみます A列   C列 a 1 b 1 a 0 d 1 c 1 g 1 b 0        ---- 5 C1に式 =IF(COUNTIF($A$1:A1,A1)=1,1,0) と入れてC7まで式を複写します。この1の行を加えると5となりますが、初出の文字列を数えています。 わかりやすい反面、作業列C列を使い、加算しています。 それを使わないでやるのに、配列数式を使います。 =IF(COUNTIF($A$1:A1,A1)=1,1,0) =IF(COUNTIF($A$1:A2,A2)=1,1,0) =IF(COUNTIF($A$1:A3,A3)=1,1,0) ・・・ 合計   Sum() 配列数数式では =SUM(IF(COUNTIF(($A$1:A1:A7,A1:A7)=1,1,0)が $A$1:A1:A7のようにはできません。 そこで常套方法で =SUM(IF(COUNTIF(OFFSET($A$1,0,0,ROW(A1:A7),1),A1:A7)=1,1,0) とOFFSET関数を使います。 すなわち =SUM(IF(COUNTIF(OFFSET($A$1,0,0,ROW(A1:A7),1),A1:A7)=1,1,0)) と入れて、SHIFT+CTRL+ENTERを同時に押します。 結果は5です。 他の方の、配列数式は高級で結構理解が難しいように思う。 この方法も難しいでしょうかね。

key-ko
質問者

お礼

>皆様へ 丁寧なご回答ありがとうございました。 時間があるときに一つずつ試してみたいと思います。

noname#204879
noname#204879
回答No.4

{=SUM(1/COUNTIF(A$1:A$6,A1:A6))} (配列数式)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

次の方法は如何でしょうか。 例えば、A1:A6の場合=ROUND(SUMPRODUCT(1/COUNTIF(A1:A6,A1:A6)),0)です。

  • gatyako
  • ベストアンサー率32% (10/31)
回答No.1

セルに下記の値が入力されている場合 A1 項目 A2  1 A3  2 A4  1 A5  1 A6  3 A7  4 セルA9 に =SUBTOTAL(2,A2:A7) の関数を入力 次にA1をクリックし、データ→フィルタ→フィルタオプションの設定を選択し、次に重複するレコードは無視するにチェックを入れてOKをクリックすると、重複行は表示されずに関数を入力したセルに個数が表示されます。 データの表示をもとの通り表示する場合は データ→フィルタ→すべてを表示をクリックする。 関数 SUBTOTAL の中の 2 はCOUNTをするという関数です。

関連するQ&A