[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『データの件数を数えたい(同一のデータは、1つと数える)』(しらりんご)
はじめまして、しらりんごです。
データの件数をCOUNTする際に、同一のデータを一つとして
数える方法をご存知の方おられますでしょうか。
#SQLだと、DISTINCT COUNTの機能になるかと思います。
COUNT、COUNTIFのヘルプを参照したのですが、
そのような機能の紹介は、されておりませんでした。
現状では、オートフィルタ機能を使って、
なんとか気合で数えている状態です。。(涙)
もし、お分かりになる方がおられましたら、
教えて頂けますでしょうか。
例:以下のデータの中から、利用者の人数を数えなさい。
ただし、同一のデータは1つとして数えること。
→利用者の人数 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.