- 締切済み
Excelでデータの数え方
去年1年間で来社した人の数を調べています。A列が日付、B列が人名欄だとします。一日に数回来社した場合もカウントします。 例えば、B列のAさんは、色々な日に何回か来社したのでその記録があるのですが、このB列に記録されている来社した人の数だけを調べるにはどうしたらいいでしょうか?(回数は関係ありません) オートフィルタをかけて、プルダウンのボタンで人名だけ出ますが、何百人といるので数えるわけにもいきません。 簡単にこの数字を出す方法あったら教えてください。 よろしくお願いします。(説明が下手ですみません・・・)
- みんなの回答 (6)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
年を通じて、1回でも現れる顧客をカウントするのですか。 A1:A10の例で 素データのないところで =SUM(IF(COUNTIF(OFFSET($A$1,0,0,ROW(A1:A10)),A1:A10)=1,1,0)) と入れて、SHIFT+CTRL+ENTER(3つのキーを同時に押す)で出ます。 式の意味は A1からその行までの範囲に対し、その行の文字列が何回出現するか COUNTIFで勘定し、1と出た行の場合だけ1を足して、2件以上の行の場合は0を足す。 作業列を使わないのが特徴。
- haccyan
- ベストアンサー率43% (27/62)
こんにちは。 C列を作業列として、C1に =1/(COUNTIF($B$1:$B$NN,B1)) ("$B$1:$B$NN"は、データのある範囲を絶対参照で指定) (B1からデータ(人名)があるものとする) データの最後尾までフィルコピー。 後は、C列全ての値を合計すれば求める答えが出ます。 ただし、#1さんの注意にあるように少しでも異なる人名は別人としてカウントされます。
- kirin0413
- ベストアンサー率23% (12/52)
次の様な手順でどうでしょう。 但し1行目は項目名(A列は日時、B列には人名など)が入っていると仮定します。 C2列に =IF(COUNTIF(B$1:B1, B2), 0, 1) を入れ、B列に入っている行全てにコピーする。 (コピーされた行には=IF(COUNTIF(B$1:Bn-1, n), 0, 1) となる筈です。nは行番) D2列に =SUM(C:C) で答えが出ると思います。 *** C列の意味は n番目より前にBnの人名(文字)の数を数え、あれば0、無ければ1にする です。 これで過去に来られたかどうかが判断出来ます。 D列はC列に現れた1を数えるだけです。 関数1つで出来るかも知れませんが、ちょっと判りません。
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法があります。 ・B列以外の空きセルに=COUNTA(B:B);空白でないセル数を計数します ・表示時だけですが、B列を選択し、画面下段のコマンド欄でデータ個数で表示(通常は合計になっていますので、コマンド欄で右クリックしデータの個数を選択して下さい)されます。
=COUNTIF(B1:B20,"Bさん") これでBさんの数がわかります。 (範囲は変えてください) ってか、しつもんの意味取り違えてるかな?
- mshr1962
- ベストアンサー率39% (7417/18945)
=SUMPRODUCT(1/COUNTIF(B列の範囲,B列の範囲)) ただし漢字が違っていたり(誤入力や旧字体)、余分なスペースがあると2重にカウントしますのでご注意ください。