Excelで日付の検索をする方法

このQ&Aのポイント
  • Excelで日付を検索する際に、# 記号を使用する必要はありません。# 記号はAccessでの日付の書式指定方法であり、Excelでは使用されません。
  • Excelの関数COUNTIFを使用して日付を検索する場合、日付をダブルクォーテーションで囲んで文字列として指定する必要があります。例えば、COUNTIF(A:A,"2012/5/1")と指定することで、指定した日付に一致するセルの数を数えることができます。
  • ダブルクォーテーションで囲まれたテキストは、Excelでは文字列として認識されます。日付型のデータを文字列として扱いたい場合は、テキストとして囲んで指定する必要があります。
回答を見る
  • ベストアンサー

日付なのに「#」で括らないのですか?

A列に 2012/5/1 2012/5/1 2012/5/1 2012/5/2 2012/5/3 と入力して、 B1に =COUNTIF(A:A,#2012/5/1#) としたら 「入力した数式は正しくありません。」 となってしまいました。 =COUNTIF(A:A,"2012/5/1") にしたら、3になり、うまく出来ました。 =COUNTIF(A:A,2012/5/1)は、0になりました。 理由は、 検索条件が2012÷5÷1=「402.4」になってしまうからだと思います。 accessでは 日付は「#」で括ると習ったのですがExcelでは違うのでしょうか? また、=COUNTIF(A:A,"2012/5/1")では 「”」で括ったら、「2012/5/1」が日付型なのに 文字列として認識されてしまうのではなないですか? なぜ「"」で括って文字列にしても、日付を検索できるのか教えてください。 ご回答よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

日付リテラルはワークシートでは使いません(使えません)。 マクロの中では使えます。 >なぜ エクセルのオマケ機能で、読み替えてくれるからです。 エクセルは表「計算」ソフトなので、文字で記入されていても「数値として読み替えて矛盾がない」場合は、数値に読み替えて計算を続行しようとする"サービス"機能があります。 ただし万能では無いので、いつでもそうしてくれると勝手に期待すると、間違った結果になる場合も多くあります。 計算できる例:(ある日付の翌日を計算したい) ="2012/5/1"+1 計算できない例: =SUM("2012/5/1", 1) ご質問のケースで言えば、あまり当てにせずに =COUNTIF(A:A,DATE(2012,5,1)) あるいは =COUNTIF(A:A,DATEVALUE("2012/5/1")) などのように、明示的に日付を計算して利用するのが正解です。

goemonn133
質問者

お礼

ありがとうございました。大変参考になりました。

関連するQ&A

  • 【Excel】日付を条件のひとつに指定してデータ集計

    Excel2003を使用しています。 Sheet1   A    B         C 1 4/1  (株)Excel    \100 2 4/1  ACCESS    \300 3 4/1  Excel(株)    \200 4 4/2  Word       \150 5 4/2  Excel       \100 6 4/3  ACCESS(有)  \200 7 4/3  Excel       \100 7 4/3  (有)ACCESS  \100 が入力されている表があります。 Sheet2に   A    B    C 1 4/2  合計値 個数 2 4/3  合計値 個数 Sheet2のA1セルに日付(仮に4/2とします)を入力したら、Sheet1にある条件に一致する日付を検索し、尚且つ、部分一致する文字列(仮にExcelとします)を検索し、両条件に一致したC列の合計を Sheet2のB1セルに表示させる様にしたいのですが、どのようにすればいいでしょうか? 又、上記同様で Sheet2のA1セルに日付(仮に4/3とします)を入力したら、Sheet1にある条件に一致する日付を検索し、尚且つ、部分一致する文字列(仮にACCESSとします)を検索し、両条件に一致した個数を Sheet2のC2セルに表示させる様にしたいのですが、どのようにすればいいでしょうか? 関数で試してみたのですが、うまくいかなかったので、質問させていただきました。 よろしくお願いします。

  • エクセル 条件付書式 日付

    こんにちは。エクセルの条件付書式について教えてください。     A    B 1  3/16  回答 2  4/1   未回答 3  5/15  未回答 Aには任意の日付を入力してあります。 Bには適当な文字が入れてあります。 B1にはA1の日付より20日前になったら特定の色を付ける このような場合の数式を教えていただいても宜しいでしょうか? 宜しくお願い致します。

  • エクセル COUNTIF関数 検索条件を 5月中のように広く指定したい

    エクセル COUNTIF関数で 検索条件の項目を 一つの数値や文字列でなく、 シリアル値で入力されている5月というふうに指定したいのですが、 どのように入力したらいいのでしょうか。 仮に =COUNTIF(A1:A10,検索条件) として、A1からA10にはシリアル値で日付が入力されているとして 5月1日から5月31日を調べたいとき 検索条件にどのように入力したらよいでしょうか。 宜しくお願いします。

  • エクセルの数式で日付=日付がTRUEにならない

    エクセル2010のA列に日付、B列に時刻、C列にある数字が入っており、D列で指定した日付のC列の数字を足したいとします。  A       B   C      D     E 2014/3/4   0:00   1   2014/3/4    2014/3/4   1:00   0   2014/3/5 2014/3/4   2:00   1   2014/3/6   ・      ・    ・      ・   ・      ・    ・      ・   ・      ・    ・      ・ 2014/3/4  23:00   0 2014/3/5   0:00   1   ・      ・    ・      ・   ・      ・    ・      ・   ・      ・    ・      ・ この時、E列には数式「=sumif($A$:$A$,D1,$C:$C)」を入れれば、求めたい数字が出てくるはずです。 ここで質問なんですが、このときにA列に入っている日付とD列に入っている日付が同じなのに、認識されずにsumが行われない時があります。 これは何が原因と考えられますか? データの入力をwindowsでやったりMacでやったりしたことも原因の一つとも考えられますが、その場合に起こり得る問題は何があるでしょうか?

  • エクセルの日付機能

    エクセルの日付機能に関する質問です。 あるワークシートのA列に日、B列に月、C列に年が入力されています。これらの日付を行ごとに結合して、D列にdd/mm/yyという形式で表示させたいと考えています。 先ほど、D2に[=A2&"/"&B2&"/"&C2]という計算式を入力し、D列を右クリックして[セルの書式設定]→[表示設定]→[ユーザー定義]で[種類]欄に[dd/mm/yy]と入力しましたが、D2は日付として認識されず、ただの文字列として認識されているようです。 統合された文字列が日付として認識される良い方法を教えていただけないでしょうか?よろしくお願いします。

  • セルに数式が入ってるかどうかを取得する関数は?

    C1には、=SUM(A1:B1) C2には、0 が入力されています。 実際、A1:B1の値は0なので、 C1もC2も0が表示されています。 D列で、ちゃんとC列にsum関数が入ってるか調べてたいのですが =COUNTIF(C1,"*sum*") をオートフィルしても、0が返ります。 C3に「sum」と言う文字列を入れて、=COUNTIF(C3,"*sum*")をしたら 1が返りました。 COUNTIF関数は文字列は認識しますが数式は認識しないようです。 このような場合、セルに数式が入ってるかを取得する方法はありますか?

  • 日付に対応した○と×の合計を求めたい。Excel 2003です。

    日付に対応した○と×の合計を求めたい。Excel 2003です。 ○と×の合計はCOUNTIFで求められるのですが、「4/1の」という条件はどのようにしたらよいのでしょうか。よろしくお願いします。 A列 B列 C列        4/1  ○  4/1       ←空白 4/1     × 4/1  ○ 4/2  ○ 4/2  ○ 4/2     ×   4/2       ←空白 4/2     × 4/3  ○ 4/3     ×       求めたい結果  4/1   4/2   4/3               3    4    2

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

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

  • COUNTIF 日付

    エクセル2003です。 A列 2008/12/1 2008/12/2 2008/12/3 2008/12/4 2008/12/5 と入力されています。 B1にCOUNTIFで「A列の2008/12/1から2008/12/3までの個数」を表示させたいのですが 関数式がわかりません。 =COUNTIF(A:A,"2008/12/1<2008/12/3") だと答えは3なのに0が返ってきます。 どういう式を作ればいいのでしょうか? よろしくお願い致します。

  • 【関数】B列の日付がA1より5日前なら文字色変更

    エクセルの関数について教えてください。 条件付き書式でもよいです。 A1に「=today()」で日付を表示させています。 B列は、手入力で任意の日付を入力しています。 C列には人数を入力しています。 何日(B列)は何人(C列)という表です。 たとえば、 B2の日付が、A1の日付より5日前なら、 B2、C2の文字色を赤色にする ということはできますか?

専門家に質問してみよう