• ベストアンサー

エクセルで何種類のデータがあるかを調べる?

セルA1からA30に数値が入っています。 30個全部違う数字のときもあれば、いくつか同じ数字がある場合もあります。 そこで、A1からA30に、同じ数字は1種類と数えて全部で何種類のデータがあるかを調べる関数を知りたいのです。 よろしくお願いします。

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

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

こんにちは。 No.1 Wendy02さんの回答以外では‥ ▼SUMPRODUCT関数 -------------------------------------- =SUMPRODUCT(1/COUNTIF(A1:A30,A1:A30)) -------------------------------------- ▼配列数式 -------------------------------------- =SUM(1/COUNTIF(A1:A30,A1:A30)) -------------------------------------- 配列数式は Ctrl+Shift+Enter で確定してください。 数式の前後に { } がついて、↓のようになったら OKです。 {=SUM(1/COUNTIF(A1:A30,A1:A30))} ◆ただし↑はいずれも範囲内に空白セルがあるとエラーになります。 空白セルがある場合は↓ ----------------------------------------------------- =SUM(IF(ISBLANK(A1:A30),0,1/COUNTIF(A1:A30,A1:A30))) ----------------------------------------------------- または↓ ----------------------------------------------------- =SUM(IF(LEN(A1:A30),1/COUNTIF(A1:A30,A1:A30),0)) ----------------------------------------------------- いずれも配列数式です。Ctrl+Shift+Enter で確定してください。

merlionXX
質問者

お礼

ありがとうございます。 質問では空白セルについて失念していましたが、たしかに空白行もありえます。 また、数値だけではなく文字列の場合も絶対無いわけではなさそうです。 となると ただし以下の式が最適のようです。 感謝いたします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • macchan1
  • ベストアンサー率38% (52/136)
回答No.4

範囲を気にしないで、A列のデータの種類(データが数値の場合)を求めるなら以下のような式が便利です。 =SUMPRODUCT((FREQUENCY(A:A,A:A)>0)*1)

merlionXX
質問者

お礼

ありがとうございます。 データが数値だけの場合はぴったりですね。 FREQUENCY、勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。
noname#12576
noname#12576
回答No.2

それほどデータが多くない場合ですが。 オートフィルタを使えば、全く同じデータは1種類として数えられますので、それをそのまま数えれば、データの種類の数がわかりますよ。

merlionXX
質問者

お礼

ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

=SUMPRODUCT((MATCH(A1:A30,A1:A30,0)=ROW(A1:A30))*1) っていうことかな? (関数は苦手です(^^;)

merlionXX
質問者

お礼

Wendy02さん、ほんとうにいつもありがとうございます。助かります。 ただ、途中に空白があると機能しないんです。 すみません。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで条件ごとに何種類のデータがあるかを調べる?

    セルA1からA30に3種類の文字列が入っています。 セルB1からB30に数値が入っています。 30個全部違う数字のときもあれば、いくつか同じ数字がある場合もあります。 そこで、Aの種類別にB1からB30に、同じ数字は1種類と数えて全部で何種類のデータがあるかを調べる関数を知りたいのです。 よろしくお願いします。

  • EXCELで上位10個のデータを平均したい

    EXCELでA1セルからA100セルまで、任意の数字が入っています。 A1セルからA100セルまでの数字のうち、上位10個の数値を平均した値をB1セルに表示させたいです。 このような関数はありませんでしょうか?

  • エクセルで、2種類のデータを交互に入れなおす方法はありますでしょうか??

    いつもお世話になっております^ ^ エクセルで、2種類のデータを 交互に入れなおす方法はありますでしょうか?? 各データは10000以上あります。 例)データAの数列     1     2     3     4   データBの数列     5     6     7     8   の場合、次のように   数字を交互に並べたいのであります。     1(Aのデータ)     5(Bのデータ)      2(Aのデータ)     6(Bのデータ)     3(Aのデータ)     7(Bのデータ)     4(Aのデータ)     8(Bのデータ)  データAの数列がA1セル~A10000セル以上にあり、 データBの数列がB1セル~B10000セル以上にあります。 CセルにデータAとBを交互に入れなおしたデータを 表示したいと思っております。 文章が稚拙ですので、 説明不足などありましたら、 ご指摘下さい! どなたか知識を分けていただけませんでしょうか? よろしくお願い致しますm(_ _)m

  • Excelでデータが何種類あるか知りたいのですが…

    こんばんは。 Excelで下記のような表があるとします。   A     B 1 注文者  注文品 2 甲さん  商品001 3 甲さん  商品002 4 乙さん  商品001 5 乙さん  商品003 6 乙さん  商品004 7 丙さん  商品002 ここで、A列に何種類のデータがあるかが知りたいのです。 (この場合、甲さん、乙さん、丙さんで注文者は「3」という数値を出したいのです。) 今はオートフィルタをかけ、リストボックスに何行表示されるか 数えています(^^;データ数が膨大なのでツライです。 なにか良い関数はないでしょうか? ちなみにExcel2000を使っています。よろしくお願いします。

  • エクセルのデータ管理について

    エクセル2003を使用しています。 様々なデータを作成するにあたり、どのようにしたらいいのか だれかに相談したく質問致します。。 カテ違いでしたらご指摘ください。 作成するのはABCDEFの6種類の帳票です。 それぞれ少しずつ重なる数値を使用します。 今までは全部それぞれ入力していたのですが、 あまりに同じ数字をあっちにもこっちにも使うので 間違えやすいし、もっとなんとかならないかな~と思ってきました。 帳票の内容は A・・40社(40枚)分あります。これは一番基礎になる数値をだしています B・・↑の数値をもとに各数値を計算 40社をまとめて一覧にしています(5枚位) C・・社内用に数値だけを一覧表にしています(1枚) D・・Bで計算した数値を40社分に振り分けます(請求書のようなものです)40枚 D・・領収書のようなものです 40枚あります E・・名簿のようなものです 40社の一覧 5枚位 本を見ながらどうかな~と思ったのは、 テンプレートウィザードを使いAを作成→マスターファイルに転記 マスターのうしろにBを作りコピペでリンクを貼って・・ 出来上がったところでCを作成するためにデータを加工し index関数でC・Dを作る Eも加工して・・ (一応数値・住所等全部を記載したマスターファイルを作成しました) と・・・ でも、少しやってみたのですが、データ加工した後に新規で会社が追加になると 全部に訂正をかけないといけなく・・ なんか使いにくいのです。。 この5種類の帳票をうまく管理・作成する方法はないものでしょうか・・ これを、Aを作ったら全部出来上がったりとか マスターを変更すると他の帳票も変更になったらいいな・・と・・・ エクセルはまだ使いこなせていなく、各関数なども本をみながらです。。 帳票の説明も不十分かもしれませんが、 何かよい方法を教えて頂けないでしょうか。。 アクセスはないので使えません(技術もありませんが><) 宜しくお願いします。。

  • Excelで、数値データとして参照したいのに、文字列データとしてしか参照してくれません

    Excelで、ある数式セルに表示されたデータを、数値データとして参照したいのですが、どうやっても文字列データとしてしか認識してくれません。 具体的に書くと、 例えばセルA1に、FIND関数で他のセルから抜き出した半角数字のみのデータを表示しているとします。 そのA1の数値を、今度はセルA2で、 if(A1=1000,A1*2,A1/2) などと数式で参照したい時に、私のExcel(2002です)では、どうやってもA1=1000という条件式をきちんと判別してくれません。どうやら、FIND関数で抜き出したために文字列データとして扱われてしまっているようです。 その証拠に、A1が実際に「1000」の時に if(A1="1000",A1*2,A1/2) という風に1000をダブルクォーテーションで囲んで式を書くと、きちんとA1*2を実行してくれます(つまり、A1が実際に1000の時でも条件式の1000をダブルクォーテーションで囲まないと、きちんと判別してくれないという事です)。 この状態から抜け出せずに、どうにも困っています。 どうにかA1の「1000」というデータを文字列でなく数値データとして条件式で利用できるように出来ないものでしょうか。 乱文ですみませんが、よろしくお願いいたします。

  • エクセル関数について

    エクセルの関数について質問です。 例えば、 C1セルには、数値データが入っています。 A2~A10セルに日付データ。 B2~B10セルに数値データが入っている表があります。 B11セルの値に、(C1データ)-(A列の最新日付セルと同行のB列データ)を表示させたい場合、 どのような関数を作成すればよいですか。 宜しくお願いします。

  • エクセル 関数について

    エクセル関数についての質問です。 次の関数をお知らせください。 A1のセルにデータが入っている場合には、B1に任意(例「1」)の数字を入力。 また、A1のセルにデータが入っていない場合には、A1のセルが空白(NULL)になる。 宜しくお願いいたします。

  • エクセルのデータ抽出と隣の列への統合?

    いつもお世話になります。 いきなり分かりづらいタイトルで申し訳ありません。 エクセルの関数(だと思いますが)を教えてください。 たとえば A-1のセルに「1,4,6,8」 B-1のセルに「1,8,10」 という半角数字+半角カンマが入力されています。 A-1の「6」を抜き出し、 (抜き出すのでA-1は「1,4,8」となる) B-1に「1,8,10,6」 とくつけるのにはどうしたらいいでしょうか? ちなみにB-1内の数字は数字の大きい順に ならなくてもかまいません。 このような数値が数百行ありますので、 関数で一揆にできる方法を探しています。 関数初心者でわかりにくい説明かと思いますが よろしくお願いいたします。

  • エクセル操作

    エクセル2007です。A1に0、A2に5、A3に10と数字があります。 B1からK1のセルにA1のセル0のデーター、B2からK2にはA2の5のデーター、B3からK3にはA3の10のデーターが入っています。 あるセルに0,5,10のうち任意の数字を入力した場合にその数字のBからKまでのデーターが他のセルで参照できるようにするにはどの関数を使用すれば宜しいのでしょうか。 ご教示ください。

専門家に質問してみよう