Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

ExcelのDATEVALUE関数の使い方|文字列の日付をシリアル値に変換する方法

知っておくべきポイント

  • ExcelのDATEVALUE関数は、文字列形式で保存された日付をシリアル値に変換します。
  • インポートやコピーしたデータなど、セル内の日付が数値ではなくテキストになっている場合にこの関数を使用します。
  • 関数の構文と引数は =DATEVALUE(date_text) です。

この記事では、Excel 2019やMicrosoft 365を含むすべてのバージョンのExcelでDATEVALUE関数を使用する方法を解説します。

DATEVALUE関数とは?

ExcelのDATEVALUE関数は、文字列として入力された日付をシリアル値に変換する関数です。Excelはこのシリアル値を読み取ることで、日付として認識できるようになります。

セルに日付の情報が含まれていても、それが通常のテキストとして保存されている場合、Excelは自動的に日付へ変換してくれません。そのセルは単なる数字や文字の並びとして扱われるため、操作が難しくなります。これは、日付データを別の場所からコピーしたりインポートしたりした際によく発生します。

DATEVALUE関数を使えば日付のシリアル値を取得でき、それをもとにセルを正しい日付形式に書式設定したり、他の日付関連の数式で利用したり、他の日付と一緒に並べ替えたりすることが可能になります。

ExcelのDATEVALUE関数の使い方|文字列の日付をシリアル値に変換する方法

DATEVALUE関数は、すべてのバージョンのExcelで使用できます。

DATEVALUE関数の構文と引数

この関数を使った数式は、次のような形式で記述します。

=DATEVALUE(date_text)

date_text(日付文字列)は、この関数がサポートする唯一の引数です。他のセルを参照してもよいですし、日付情報を数式の中に直接含めることもできます。

DATEVALUE関数に関して覚えておきたいルールは以下のとおりです。

  • date_textで年が省略された場合、現在の年が適用されます。
  • date_textに時刻の情報が含まれていても、Excelはそれを無視します。
  • 日付情報を数式に直接入力する場合は、ダブルクォーテーション(")で囲む必要があります。
  • 参照先のセルに月の名前(MarやMarchなど)が含まれている場合、月は2番目の位置になければなりません(例:31-Mar-2020)。
  • date_textが1900年1月1日~9999年12月31日の範囲外の日付だと、#VALUE!エラーが表示されます。
  • date_textが数値のように見える場合(ハイフンやスラッシュといった日付特有の区切りがない場合)も、#VALUE!エラーが表示されます。

DATEVALUE関数の使用例

続いて、この関数のさまざまな使い方を見ていきましょう。

別のセルに入力された日付を参照する

=DATEVALUE(A2)
ExcelのDATEVALUE関数の使い方|文字列の日付をシリアル値に変換する方法

セルA2に「4-4-2002」という文字列が入力されている場合、このDATEVALUEの数式はシリアル値「37350」を返します。

数式の中に日付を直接入力する

=DATEVALUE("12/25/2007")
ExcelのDATEVALUE関数の使い方|文字列の日付をシリアル値に変換する方法

これはもうひとつの基本的な使い方です。日付をダブルクォーテーションで囲んで数式内に直接入力すれば、別のセルを参照する代わりになります。この数式はシリアル値「39441」を返します。

複数のセルを組み合わせて日付を作る

=DATEVALUE(A2 & "/" & A3 & "/" & A4)
ExcelのDATEVALUE関数の使い方|文字列の日付をシリアル値に変換する方法

この例でも同じ構成を使っていますが、日付情報を3つの別々のセル(A2=5、A3=18、A4=2017)から取得している点が異なります。

日・月・年をスラッシュで区切るためにアンパサンド(&)を使用しています。ただし、結果はあくまでシリアル値です。それがこの関数の役割だからです。「5/18/2017」と表示させたい場合は、セルを実際の日付として書式設定する必要があります(後述)。

日付の数式でアンパサンドを使う

=DATEVALUE("3" & "/" & A2 & "/" & "2002")
ExcelのDATEVALUE関数の使い方|文字列の日付をシリアル値に変換する方法

この例は直前の例とよく似ていますが、日と年をセル参照で求める代わりに、ダブルクォーテーションで囲んで手動で入力している点が異なります。

他のデータが混在するセルから日付を取り出す

=DATEVALUE(LEFT(A20,10))
ExcelのDATEVALUE関数の使い方|文字列の日付をシリアル値に変換する方法

セルに不要な情報が含まれている場合は、LEFT関数やRIGHT関数などを使って日付部分だけを切り出せます。この例では、DATEVALUE関数をLEFT関数と組み合わせ、左端から10文字分だけを対象にしています。結果は「41654」で、Excelが日付として書式設定すると「2014/1/15」になります。

MID関数で日付を抽出する

=DATEVALUE(MID(A40,FIND(" ",A40)+1,7))
ExcelのDATEVALUE関数の使い方|文字列の日付をシリアル値に変換する方法

最後に紹介するのは、MID関数に加えてFIND関数も組み合わせ、日付を抽出してシリアル値として表示する数式です。MID関数はセルA40を対象とし、FIND関数によってスペース(" ")の位置を抽出開始点として特定します。MID関数の末尾の数値は抽出する文字数を表しており、この例では「7」です。結果は「43944」で、日付として書式設定すると「2020/4/23」になります。

DATEVALUE関数のエラー例

以下は、DATEVALUE関数がエラーを返す状況の例です。前述のルールに照らし合わせると、#VALUE!エラーが表示されている行には、この関数では処理できないデータが含まれていることがわかります。

ExcelのDATEVALUE関数の使い方|文字列の日付をシリアル値に変換する方法

シリアル値を日付表示に書式設定する

Excelが返す日付のシリアル値は、1900年1月1日から何日経過しているかを示す数値にすぎません。このままでは実用性が低いため、そのセルを通常の日付形式に書式設定しましょう。

セルがテキスト形式なのか日付形式なのかを手っ取り早く見分けるには、セル内での文字の配置を確認する方法があります。テキスト形式の日付は一般的に左揃えになり、日付形式のセルは右揃えになる傾向があります。

  1. 日付として書式設定したいセルを選択します。
  2. Excel上部のホームタブにある数値グループを探します。
  3. ドロップダウンメニューを開き、短い日付形式長い日付形式などの日付オプションを選択します。
ExcelのDATEVALUE関数の使い方|文字列の日付をシリアル値に変換する方法
  1. ExcelのRANDBETWEEN関数の使い方|指定した範囲内の乱数を簡単に生成する3つの方法

    Microsoft ExcelのRANDBETWEEN(ランドビトウィーン)関数は、数学/三角関数に分類される関数の一つで、指定した2つの数値の間からランダムな整数を返します。サイコロの目のような1〜6の乱数を作りたいときや、くじ引きの番号、テストデータなどを自動生成したい場合にとても便利です。 この記事では、RANDBETWEEN関数の書式と、セルへの直接入力、「関数の挿入」ダイアログボックス、「数式」タブを使った3つの方法を、初心者の方にもわかりやすく解説します。 RANDBETWEEN関数の書式 RANDBETWEEN関数の書式は以下の通りです。 =RANDBETWEEN(最小値, 最大

  2. ExcelのNETWORKDAYS関数の使い方|土日・祝日を除いた営業日数を簡単に計算する方法

    Microsoft ExcelのNETWORKDAYS(ネットワークデイズ)関数は、日付/時刻関数の一つで、開始日から終了日までの間に含まれる「完全な稼働日(平日)」の日数を返します。この関数は、週末(土曜日と日曜日)および引数で指定された祝日を自動的に除外して計算します。なお、引数が無効な場合は、エラー値 #VALUE! が返されます。 NETWORKDAYS関数の書式は次のとおりです。=NETWORKDAYS(開始日, 終了日, [祝日]) NETWORKDAYS関数の構文 開始日(start_date):計算の起点となる日付。必須の引数です。 終了日(end_date):計算の終点とな