• ベストアンサー

日付の入力されてるセルの個数

列に日付が入力されている個数を知りたいの ですが、COUNTIFで検索条件に何をいれれば いいのか分かりません。 他の方法もあるならば教えて欲しいです。 宜しくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.6

#4です。#5のご解答を見て、良く見ると、CELL関数に format指定が出来ました。書式を調べられます。 ロータス123との互換性の機能のようで、このCELL関数だけは異色であることは知っておりましたが。謹んで訂正します。「赤恥をかくかきました」。 それで件数ですが、空き列に =CELL("format",A1)をいれ下方向に複写(C列とする)。 答えを出したいセルに=SUM(IF(C1:C6="D1",1,0))といれ SHIFT+CTRL+ENTER配列数式で件数が出ました。 これを一体化できると思いますが、上段の件取り急ぎ訂正 します。

その他の回答 (6)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.7

No.2です。 CELL関数の合計は、わざわざ配列数式を使う必要はないでしょう。 CELL関数がB列にあるとすると、 =COUNTIF(B1:B6,"D*") です。 ただし、いちいち各セルの表示形式を変更しているかどうかは疑問です。 (A列ごと日付の表示形式にしておいて、ところどころ文字を入力しているような・・・) No.1の補足欄のように、日付以外は、「欠番」という文字が入っているだけなら、私のNo.2の数式で十分ですが。

smn
質問者

お礼

皆さん、返事が遅くなり申し訳ありません。 日付は文字列に設定されており、 日付以外の単語も全て文字列になっています。 悪戦苦闘の末、私には出来ませんでした。 折角、教えていただいたのに情けないです・・・・ 色々ありがとうございました。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

=CELL("format",調べるセル) で「調べるセル」の表示書式の種類がわかります。 一般的な日付だと"D1"になります。 (くわしくは、CELL関数のヘルプ参照) なので、 適当な列で、上記の関数で種類を表示して、 その種類("D1")になっているセルを数えます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

これは不可能だと思います。 多数回答のある方も既にご解答あるあとでもあり、出来たという解答が出て赤恥をかくかもしれませんが、その時はお許しを。 理由は、 エクセルでは、日付を日付として認識させている所以は 書式にあると思います。例えば38231と言う整数は 値段の場合は38231円で、書式を日付にすれば2004/9/1になり、その場合、関数もYEAR(A1)などを使うと、意味のあるデータ(年)がかえってきます。 関数はCEll関数(注)を除いて、そのセルの書式を割り出して返してくれません。関数は値を計算・加工・検索してその結果を値で、返してくれるものなんです。 だから関数の中で日付を判別して、個数を出すことは不可能と思います。(注)しかしCELL関数には日付かどうかを返させる指定はありません。CELL関数は一般的に、書式を割り出してくれるものではありません。 一方で、VBAを使うと、書式を判別することが出来そうで す。 聞き方は Sub Macro1() For i = 1 To 5 MsgBox Cells(i, 1).NumberFormatLocal Next End Sub を実行して、設定してある書式(例えばyyyy/m/dなど)を知り、日付書式がこの1種であれば Sub Macro1() n = 0 For i = 1 To 5 If Cells(i, 1).NumberFormatLocal = "yyyy/m/d" Then n = n + 1 End If Next MsgBox n End Sub のように数えられると思います。

noname#8027
noname#8027
回答No.3

日付以外の別のものが入力されていないのであれば、 =COUNTIF(範囲,">0") で大丈夫だと思い夫ます。同一列に、他の数値などいろいろ混ざっていると、上記では無理です。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 列内に数値が入力されていなければ、 =COUNT(A:A) で出来ます。 数値がある場合は、どんな数値が入力されているかの条件が必要です。

  • snoopy64
  • ベストアンサー率42% (337/793)
回答No.1

日付というのはデリケートです。 ・値はシリアル値で、表示形式が日付である。 ・数字8桁で「20040916」のように入っている。 ・文字で「9月16日」のように入っている。 この辺を補足していただけると、回答しやすいと思います。

smn
質問者

補足

説明不足で申し訳ありません。 日付は04/09/16というように入力しています。 表示形態はユーザー定義で指定してます。 日付の他に「欠番」だの文字もあります。

関連するQ&A