スプレッドシートのISDATE関数の使い方|日付判定

スポンサーリンク

「このセルに入っている値、日付として認識されている?」と気になったことはありませんか。

見た目は日付っぽいのに計算するとエラーになる。そんなトラブルは、セルの値が本当に日付データかどうかを確認すれば防げます。

スプレッドシートのISDATE関数を使えば、セルの値が日付かどうかを一発で判定できますよ。

この記事では、ISDATE関数の基本から実務で役立つ活用パターンまでまとめて紹介します。

スプレッドシートのISDATE関数とは?

ISDATE関数(読み方: いず でいと)は、指定した値が日付かどうかを判定する関数です。

名前は英語の「IS DATE(日付ですか?)」からきています。

対象が日付データであれば TRUE を返し、日付でなければ FALSE を返します。日付だけでなく、日時(日付+時刻)の値もTRUEになります。

ISDATE関数にできることをまとめると、次のとおりです。

  • セルの値が日付データかどうかをTRUE/FALSEで返す
  • IF関数と組み合わせて日付・非日付で処理を分岐する
  • 入力データのバリデーション(日付チェック)に使う
  • FILTER関数で日付データだけ抽出する

NOTE

ISDATE関数はGoogleスプレッドシート独自の関数です。Excelには存在しません。Excelとの違いは記事の後半で詳しく解説しています。

ISDATE関数の書き方(構文と引数)

基本構文

=ISDATE(値)

カッコの中に日付かどうか判定したい値を指定します。

引数の説明

引数必須/任意説明
必須日付かどうか判定したい値またはセル参照

引数は1つだけです。省略はできません。セル参照・直接値・数式の結果のいずれも指定できます。

TIP

ISDATE関数が判定するのは「セルの値が日付型かどうか」です。見た目が日付っぽい文字列(例: “2026/3/22″)でも、スプレッドシートが日付として認識していなければ FALSE になります。

ISDATE関数の基本的な使い方

まずはシンプルな例で動きを確認してみましょう。

値の種類ごとの判定結果

さまざまなデータをISDATE関数で判定すると、次のような結果になります。

数式結果理由
=ISDATE(A1) ※A1に日付「2026/3/22」TRUEスプレッドシートが日付として認識している
=ISDATE(A1) ※A1に数値「100」FALSE数値は日付ではない
=ISDATE(A1) ※A1に文字列「こんにちは」FALSE文字列は日付ではない
=ISDATE(A1) ※A1に日時「2026/3/22 10:30」TRUE日時も日付型として扱われる
=ISDATE(A1) ※A1が空白FALSE空白セルは日付ではない
=ISDATE(A1) ※A1に文字列「3月22日」FALSE書式設定で日付表示しているだけの文字列はFALSE

ポイントは「見た目」ではなく「データ型」で判定されることです。

セル参照で判定する

セル参照を使えば、特定のセルの値が日付かどうかを確認できます。

=ISDATE(A1)

A1 にカレンダーから入力した日付が入っていれば TRUE を返します。手入力の文字列なら FALSE です。

DATE関数の結果を判定する

ISDATE関数の引数に数式を直接入れることもできます。

=ISDATE(DATE(2026,3,22))

DATE関数は日付型の値を返すので、この結果は TRUE です。

ISDATE関数の実践的な使い方・応用例

IF関数と組み合わせて日付チェックする

データ入力が日付かどうかに応じてラベルを付けたい場面で使えます。

=IF(ISDATE(A2),"OK","日付を入力してください")

A2 が日付なら「OK」と表示します。日付でなければ「日付を入力してください」と表示されます。

アンケートや申込フォームの回答チェックに便利ですよ。

入力データのバリデーションに使う

複数人で共有するシートでは、日付欄に文字列やおかしな値が入ることがあります。ISDATE関数で一括チェックできます。

  1. B列に =ISDATE(A2) を入力します
  2. 下方向にコピーします
  3. FALSE が表示された行が「日付として認識されていない」データです

COUNTIF関数と組み合わせれば、不正データの件数もすぐわかります。

=COUNTIF(B2:B100,FALSE)

これで日付として認識されていないセルの数が出ます。データクレンジングの第一歩として活用してみてください。

FILTER関数で日付データだけ抽出する

日付が入っている行だけを取り出したい場面があります。FILTER関数と組み合わせると便利です。

=FILTER(A2:C20,ISDATE(A2:A20))

A列の値が日付のデータだけが抽出されます。日付と文字列が混在するリストの整理に役立ちますよ。

ARRAYFORMULA関数で一括判定する

大量のデータを一括で判定したいときは、ARRAYFORMULA関数と組み合わせます。

=ARRAYFORMULA(ISDATE(A2:A100))

A2からA100まで、すべてのセルに対して日付判定が一括で実行されます。1つずつ数式をコピーする手間が省けます。

よくあるエラーと対処法

ISDATE関数で「思った結果にならない」ケースをまとめました。

症状原因対処法
日付っぽいのにFALSEになるセルの値が文字列として入力されているセルを選択して「表示形式」→「日付」に変更する。またはDATEVALUE関数で日付型に変換する
数値なのにTRUEになるセルの表示形式が「日付」に設定されている表示形式を「数値」に変更する。ISDATE関数はセルの型を見るため、表示形式が日付なら数値でもTRUEになる場合がある
時刻だけ入力したセルの結果が知りたい時刻のみ(例: 10:30)はスプレッドシート内部では日付+時刻として扱われる時刻のみのセルもTRUEになることがある。用途に応じて追加チェックが必要
空白セルでFALSEになる空白は日付ではない仕様どおりの動作。空白を許容したい場合は =IF(A1="","未入力",IF(ISDATE(A1),"OK","日付ではありません"))
「2026/13/01」でFALSEになる存在しない日付のため、スプレッドシートが日付として認識しない正しい日付を入力し直す

Excelとの違い

ISDATE関数はGoogleスプレッドシート独自の関数です。Excelには存在しません。

項目GoogleスプレッドシートExcel
ISDATE関数使える存在しない
構文=ISDATE(値)
代替方法ISNUMBER関数で代用する

Excelで同じことをしたい場合は、ISNUMBER関数を使って代用できます。

=ISNUMBER(A1)

日付はExcel内部ではシリアル値(数値)として管理されています。そのため、ISNUMBER関数がTRUEを返せば日付の可能性があります。

ただし、ISNUMBER関数は普通の数値でもTRUEを返すため、日付だけを正確に判定することはできません。より厳密に日付かどうかを判定したい場合は、次の数式を使います。

=AND(ISNUMBER(A1),A1>=1,A1<=2958465)

この数式は、数値でありかつExcelの日付範囲(1900/1/1~9999/12/31)に収まるかを判定します。完璧ではありませんが、ISDATEの代わりとして実用的ですよ。

TIP

Googleスプレッドシートで作成したISDATE関数入りのファイルをExcelで開くと、ISDATE関数の部分はエラーになります。Excel環境との共有が前提のファイルでは注意してください。

ISDATE関数とISNUMBER関数の違い

ISDATE関数とISNUMBER関数は、どちらもデータ型を判定するIS系関数です。判定する対象が異なります。

比較項目ISDATE関数ISNUMBER関数
判定対象日付型かどうか数値型かどうか
日付セルに対してTRUETRUE(日付はシリアル値=数値)
数値セルに対してFALSETRUE
文字列セルに対してFALSEFALSE
Excel互換なし(Sheets独自)あり

注目すべきポイントは、日付セルに対する動作の違いです。ISNUMBER関数は日付セルでもTRUEを返します。日付はスプレッドシート内部で数値(シリアル値)として管理されているためです。

「日付かどうか」だけを判定したい場合はISDATE関数を使いましょう。「数値全般(日付含む)かどうか」を判定したい場合はISNUMBER関数が適しています。

まとめ

ISDATE関数は、セルの値が日付かどうかを判定するシンプルな関数です。

ポイントを整理します。

  • 構文は =ISDATE(値) で、引数は1つだけ
  • 日付型なら TRUE、それ以外は FALSE を返す
  • 「見た目」ではなく「データ型」で判定される
  • 日時(日付+時刻)の値もTRUEになる
  • IF関数と組み合わせて入力データのバリデーションに使うのが定番
  • FILTER関数やARRAYFORMULA関数との組み合わせも便利
  • Googleスプレッドシート独自の関数でExcelには存在しない
  • Excelでの代替はISNUMBER関数を使う

まずは =ISDATE(A1) で、セルの値が日付として認識されているか確認してみてください。


関連記事

タイトルとURLをコピーしました