[[20090722185611]] 『データをカウントしたい』(花子) ページの最後に飛ぶ

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

 

『データをカウントしたい』(花子)

 エクセルで誕生日が入ったデータ表を作成しました。同じ月生まれのセル数をカウントする方法を教えてください。
 値は5月10日生まれなら5/10となっています。
 COUNTAを使って値1ボックスでカウントしたい範囲を指定して、値2ボックスで1月生まれなら1*と入力すると「入力した数式は正しくありません」と表示されてしまいました。
 COUNTIFを使って範囲ボックスでカウントしたい範囲を指定して、検索条件ボックスで1*と入力すると結果が「0」となってしまいました。
 数式バーは「=COUNTIF(B4:B35,"1*")」
 どこが間違っているのでしょうか?
 どなたか、わかる方よろしくお願い致します。


 方法はいろいろありますが

 1月の場合
 =COUNTIF(B4:B35,">=1/1")-COUNTIF(B4:B35,">=2/1")

 あと
 ある程度関数を使用した数式の入力に慣れてきたら
 直接手入力で入力するようにしたほうが楽だと思います。

 (えくせる青年)2009/7/22 19:21

 データが日付値になっているのでしょう?

 12月の場合には、=COUNTIF(B4:B35,">=12/1")でしょうが、
 その他の月は、=COUNTIF(B4:B35,">=2/1")-COUNTIF(B4:B35,">=3/1")などと、されたらどうでしょう?

 =COUNT(IF(MONTH(B4:B35)=2,))として、Enterの代わりにCtrl+Shift+Enterなどとするのもありますね。 (PENSIONER)

  ちなみに

 > どこが間違っているのでしょうか?
 > COUNTAを使って
 COUNTA関数は「空白ではない」セルの数をカウントする関数です。

 > 「=COUNTIF(B4:B35,"1*")」
 この数式はB列の範囲内で「1ではじまる文字列」をカウントします。
 ですがExcelは日付をシリアル値で管理していますので
 たとえば 1/1 と表示されていても
 実際の値は数値の 39814 ですので
 期待する値を返すことはできません。

 いい機会ですのでシリアル値に関しても勉強なさってみてください。

 (えくせる青年)2009/7/22 19:31

 > 値は5月10日生まれなら5/10となっています。

 日付をどのように入力しましたか?
 そのまま 5/10 ですか?
 そうだとすると年はすべて2009年になると思いますが(入力日が今年なら)
 誕生日なのにそれでいいのですか?

 年を無視して月だけでカウントする場合は
 作業列に =IF(B4="","",MONTH(B4)) こんな数式を入れ、
 その列を COUNTIF でカウント。

 配列数式なら作業列を使わなくてもカウントできますが、
 範囲に未入力セルを含む場合は注意を要します(未入力セルが 1月でカウントされないような工夫)

 ピボットテーブルでもできるでしょう(月でグループ化、または作業列使用)。

 (R)


えくせる青年さん、PENSIONERさん、Rさん、ありがとうございました。

 初心者なので、日付をシリアル値で管理していることとか、不等号記号を使った数式があることなど初めて知りました。おかげで勉強になりました。

 1月生まれをカウントする場合、
 =COUNTIF(B4:B35,">=1/1")-COUNTIF(B4:B35,">=2/1")
の数式ですと、最初、結果が「1/3」と出てしまったのですが、

 =COUNT(IF(MONTH(B4:B35)=1,))として、Enterの代わりにCtrl+Shift+Enterでうまく出来たので
 試しに最初の数式もEnterの代わりにCtrl+Shift+Enterを使用しましたら、うまく出来ました。

 Rさんの方法は私にはかなり難しいですが、興味がありますので、これから勉強していきたいと思います。

 見ず知らずの者に丁寧に教えていただいて、皆さん本当にありがとうございました。
 またよろしくお願いいたします。


 >結果が「1/3」と出てしまったのですが、
 セルの表示形式が、元データにあわせられて、日付表示なったのでしょう?
 未入力のセルを黄色のブラシのアイコンでクリックし、
 さらに数式を入力したセルをクリックしますと、普通の表示になります。

 また、
 =COUNT(IF(MONTH(B4:B35)=1,))として、Enterの代わりにCtrl+Shift+Enter
 この数式の適用範囲を拡大し、未入力セルを含むようにする場合には、
 =COUNT(IF(MONTH(""&B4:B35)=1,))として、Enterの代わりにCtrl+Shift+Enter
 のように変更して使用するようお願いします。        (PENSIONER)

 > 1月生まれをカウントする場合、
 > =COUNTIF(B4:B35,">=1/1")-COUNTIF(B4:B35,">=2/1")
 > の数式ですと、最初、結果が「1/3」と出てしまったのですが

 普通にEnterで確定し、表示形式を標準にすれば「3」になるでしょう。

 それが期待値なら全員が2009年生まれということなんですね?
 ただし、全員2009年生まれでも期待値が返るのは今年の12月31日までだと思いますよ。

 来年になれば「0」になるような気がします。
 来年の話をすると鬼に笑われそうですが(笑

 きちんと年まで指定しましょう。
 何回もしつこいようですが、全員が2009年生まれならね。

 (R)


 質問者さんのみぞ知る・・・といったところではありますが

 ポイントは
 誕生日=生年月日 かどうかですね 
 「年」は関係ないのかも

 (えくせる青年)2009/7/23 16:04

 > 「年」は関係ないのかも

 質問者が「年」は関係ないと思っても、シリアル値入力する以上
 無関係ではいられないでしょう。

 > =COUNTIF(B4:B35,">=1/1")-COUNTIF(B4:B35,">=2/1")

 ポイントは、来年になったらこの数式では期待値が返りませんよ、ということです。

 (R)

コメント返信:

[ 一覧(最新更新順) ]


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