[[20070307112739]] 『データの件数を数えたい(同一のデータは、1つと数』(しらりんご) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『データの件数を数えたい(同一のデータは、1つと数える)』(しらりんご)

はじめまして、しらりんごです。

データの件数をCOUNTする際に、同一のデータを一つとして
数える方法をご存知の方おられますでしょうか。
#SQLだと、DISTINCT COUNTの機能になるかと思います。

COUNT、COUNTIFのヘルプを参照したのですが、
そのような機能の紹介は、されておりませんでした。

現状では、オートフィルタ機能を使って、
なんとか気合で数えている状態です。。(涙)

もし、お分かりになる方がおられましたら、
教えて頂けますでしょうか。

例:以下のデータの中から、利用者の人数を数えなさい。
  ただし、同一のデータは1つとして数えること。


(利用者)
社員A、社員B、社員C、社員B、社員C 、社員A、社員A、社員A

→利用者の人数 3人


#横に書いておりますが、実際は、縦に表示されます(行データ)。

以上、よろしくお願いします。


 こんにちは〜♪

 ★データ範囲に、未入力セルが無いのでしたら

 こんな式でも計算できます。
 A1〜A10に、利用者名がある場合です。

 =SUMPRODUCT((1/COUNTIF(A1:A10,A1:A10))) 

 ★データ範囲に、未入力セルがある場合です。

 =COUNT(INDEX(1/(MATCH(A1:A10,A1:A10,)=ROW(A1:A10)),))

 ご参考にどうぞ〜。。

 。。。。Ms.Rin〜♪♪


 念のため、このような指摘があります。↓  (#REF!MAN)
[[20050406101241]]『カウントの方法』(キョーコ)

 Ms.Rinです。。。♪

 (#REF!MAN)さん
 いつもお世話になっています。
 フォローありがとうございます。

 >念のため、このような指摘があります
 のリンクの検証は、知ってはいるのですが。

 つい

 =SUMPRODUCT((1/COUNTIF(A1:A10,A1:A10))) 
 をアップしてしまいました。

 私もこの式は、
 かなりの桁数の小数点以下の数値を
 足すので、演算誤差が出る可能性は高いのかなと。

 リンク先の表の6行目は

 ただ
 =SUMPRODUCT(1/COUNTIF(A$1:A6,A$1:A6))) 

 だけだと → 1 が返ります。

 ですが

 =REPT("ok",SUMPRODUCT(1/COUNTIF(A$1:A6,A$1:A6))) → 空白

  になります。

 どうしてそうなるのか、疑問です?

 ただ以前、10000行位で

 =SUMPRODUCT(1/COUNTIF(A$1:A10000,A$1:A10000))

 を色々試した事があったのですが
 検証例が、良くなかったかのかも知れませんけれど
 ちゃんと、種類は計算された事があります。
 これも未だに、疑問です?。

 やっぱり、演算誤差が出る可能性のある式は
 提示を控えた方が、良いのでしょうね。

 という事で、

(しらりんご)さんへ

 =COUNT(INDEX(1/(MATCH(A1:A10,A1:A10,)=ROW(A1:A10)),))

 を使って下さい。。
 ただ、データ数が多いと重くなります。

 。。。Ms.Rin〜♪♪


 Ms.Rinさんへ。
 エクセルの仕様は、まったく理解できないところがあります。
 以前に調査して、こちらにも掲載させていただいたように思っていましたが、
 見つかりません。お役には、立ちそうにありませんが、参考までに書いてみます。

 =REPT("ok",SUMPRODUCT(1/COUNTIF(A$1:A6,A$1:A6))) は、空白を戻しますが、
 =INT(SUMPRODUCT(1/COUNTIF(A$1:A6,A$1:A6)))は、1を戻し、
 =SUMPRODUCT(1/COUNTIF(A$1:A6,A$1:A6))=1は、TRUEを戻します。

 =INT(SUMPRODUCT(1/COUNTIF(A$1:A27,A$1:A27)))や
 =INT(SUMPRODUCT(1/COUNTIF(A$1:A31,A$1:A31)))は、0を戻します。
 =SUMPRODUCT(1/COUNTIF(A$1:A27,A$1:A27))=1もFALSEです。
  
 しかし、=LEFT("X",0.99)は、空白を戻すものの、
 =LEFT("X",SUMPRODUCT(1/COUNTIF(A$1:A27,A$1:A27)))は、Xを戻します。 (#REF!MAN)

 こんばんは〜♪

 (#REF!MAN)さん
 色々とありがとうございます。

 >お役には、立ちそうにありませんが

 そんな事はありません。
 勉強になりました。

 やっぱり、浮動小数点数が原因でしょうか。

 検証していくと眠れなくなりそうですから
 深入りは、やめます。

 これからもご指導お願いします。。。。Ms.Rin


おはようございます、しらりんごです。

>Ms.Rinさん、(#REF!MAN)さん

いろいろ教えて下さり、ありがとうございました。

各カウント方法の式の意味が、まだ理解できていないので、
Ms.Rinさんのアドバイスの通り、
=COUNT(INDEX(1/(MATCH(A1:A10,A1:A10,)=ROW(A1:A10)),))
を使わせて頂きます。
#式の意味については、これから勉強します。

本当にありがとうございました。


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.