- ベストアンサー
【Excel2003】 値の個数を検索する方法(関数)を教えて下さい
お世話になります。 すごく基本的な質問で申し訳ないんですが 値の個数を検索する方法(関数)を教えて下さい。 ただし、重複する値は1つにまとめます。 環境:WindowsXP Excel2003 例えば下記のように列に値が入っているとすると、、、 1 2 1 1 3 4 =4 という回答が欲しいです。(1が3つ+2+3+4) よろしくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんなの 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)
文字列の例で説明してみます 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です。 他の方の、配列数式は高級で結構理解が難しいように思う。 この方法も難しいでしょうかね。
{=SUM(1/COUNTIF(A$1:A$6,A1:A6))} (配列数式)
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 例えば、A1:A6の場合=ROUND(SUMPRODUCT(1/COUNTIF(A1:A6,A1:A6)),0)です。
- gatyako
- ベストアンサー率32% (10/31)
セルに下記の値が入力されている場合 A1 項目 A2 1 A3 2 A4 1 A5 1 A6 3 A7 4 セルA9 に =SUBTOTAL(2,A2:A7) の関数を入力 次にA1をクリックし、データ→フィルタ→フィルタオプションの設定を選択し、次に重複するレコードは無視するにチェックを入れてOKをクリックすると、重複行は表示されずに関数を入力したセルに個数が表示されます。 データの表示をもとの通り表示する場合は データ→フィルタ→すべてを表示をクリックする。 関数 SUBTOTAL の中の 2 はCOUNTをするという関数です。
お礼
>皆様へ 丁寧なご回答ありがとうございました。 時間があるときに一つずつ試してみたいと思います。