大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excelで、文字列の時間とシリアル値の変換について、ご紹介します。文字列の時間をシリアル値に変換するには、「VALUE関数」を使います。反対に、シリアル値を文字列の時間に変換するに際に使うのは、「TEXT関数」です。便利な関数ですので、具体的に解説していきます。

はじめに

この記事では、文字列の時間とシリアル値との変換について、ご紹介します。

文字列の時間を、シリアル値に変換するには、「VALUE関数」を使います。

反対に、シリアル値を、文字列の時間に変換する際に使うのは、「TEXT関数」です。

TEXT関数とVALUE関数をちょっと応用して、時間の誤差をゼロにすることもできます。

では、文字列の時間とシリアル値との変換について、解説していきます。

この記事で紹介すること

  • 「文字列の時間」を「シリアル値」に変換
  • 「シリアル値」を「文字列の時間」に変換

目次から見たい項目へ移動すると便利ですよ。

目次

Excelで文字列の時間をシリアル値に変換

Excelで、文字列の時間を、シリアル値に変換する方法です。

シリアル値に変換するには、「VALUE関数」を使います。

では、解説していきます。

VALUE関数を使う

「VALUE関数」には次のように入力します。

=VALUE(文字列の時間)

という感じです。

では、入力していってみます。

シリアル値に変換してみる

セルに「"17:01:02"」の文字列の時間を入力しておきます。

文字列をシリアル値に変換するVBAコードは、こんな感じです。

=VALUE(A1)

では、セルに入力してみます。

シリアル値に変換

VALUE関数を使って文字列の時間をシリアル値に変換した結果

結果は、「0.70905093」となりました。

これで、シリアル値になりました。

ただ、これだと意味が分からないので、時間の表記に変更します。

表示形式を「h:mm:ss」にして時間表記

先ほどシリアル値に変換した値で、表示形式を「h:mm:ss」の時刻表記に変更します。

「ホーム」タブ→「数値」の「時刻」を選択します。

表示形式を時間表記に変更

表示形式を時刻表記に変換する

これで、表示形式を「時刻」に変換できます。

時間表記となる

表示形式を時刻に変換した結果

結果は、「17:01:02」となりました。

時間が右に寄っているので、時刻ですね。

念のため確認してみます。

=A3=A5

セルに入力した「17:01:02」と一致するかを確認します。

シリアル値となっている

セルに入力した時刻と一致するかを確認

結果は、「TRUE」となりました。

「VALUE関数」を使って、正しく、シリアル値に変換できています。

Excelでシリアル値を文字列の時間に変換

先ほどとは反対に、シリアル値を文字列の時間に変換する方法を、ご紹介します。

使うExcel関数は、「TEXT関数」です。

では、解説していきます。

TEXT関数を使う

TEXT関数を使って、シリアル値を、文字列の時間に変換するには、次のように入力します。

=TEXT(時間,表示形式)

という感じです。

表示形式のところには、時間の場合は、「"h:mm:ss"」のように入力します。

  • 時間:"h:mm:ss"(例:17:01:02)

では、時間を「文字列の時間」に変換してみます。

文字列の時間に変換する

時間「17:01:02」をセルに入力しておいて、文字列の時間に変換してみます。

=TEXT(A1,"h:mm:ss")

では、セルに入力してみます。

文字列の時間に変換

時間を文字列の時間に変換した結果

結果は、「"17:01:02"」となりました。

左に寄っているので、「文字列」に変換されています。

時間「17:01:02」と一致するかを確認してみます。

=A3=A5

セルに入力して確認してみます。

文字列の時間となっている

変換した文字列の時間が時間と一致するかを確認した結果

結果は、「FALSE」となりました。

文字列なので、時間とは一致しないですね。

こんな感じで、TEXT関数を使うと、文字列の時間に変換することができます。

【応用】日付+時間から時間だけを取り出す

ちょっと応用で、TEXT関数とVALUE関数を使って、「日付+時間」から「時間のみ」を取り出してみます。

INT関数でもできますけども、誤差が発生してしまいます。

誤差をなくして、時間のみを取り出すのに、TEXT関数とVALUE関数の組み合わせが使えます。

では、解説していきます。

INT関数で時間だけを取り出す

「INT関数」を使って、「日付+時間」から「時間のみ」を取り出してみます。

こんな感じで、時間だけを取り出せます。

=A1-INT(A1)

では、セルに入力してみます。

INT関数で「時間のみ」を抽出

INT関数で日付+時間から時間のみを取り出した結果

結果は、「17:00:00」のみを取り出せました。

では、誤差がでていないか確認してみます。

誤差が出る

セルに入力した「17:00:00」と比較してみます。

=A3=A5

セルに入力して比較してみます。

誤差が出る

セルに入力した時間と取り出した時間を比較してみる

結果は、「FALSE」となってしまいました。

原因は、時間を取り出す際に計算したことで、誤差が出たという結果です。

時間を計算してしまうと誤差が出てしまう場合があるんですね。

こんな場合にTEXT関数とVALUE関数が使えます。

TEXT関数で時間のみ抽出

「TEXT関数」で時間のみを抽出します。

=TEXT(A1,"h:mm:ss")

セルに入力してみます。

TEXT関数で「時間のみ」を抽出

TEXT関数を使って時間のみを抽出

結果は、「"17:00:00"」となりました。

左に寄っているので、文字列です。

次は、VALUE関数を使って、文字列の時間を、時間に変換します。

VALUE関数でシリアル値に変換

先ほど取り出した文字列の時間を、VALUE関数で、シリアル値に変換します。

=VALUE(A3)

セルに入力してみます。

VALUE関数でシリアル値に変換

VALUE関数で文字列の時間をシリアル値に変換

結果は、「0.708333333」と、シリアル値に変換できました。

表示形式を、時間表記に変更します。

時間表記に変更

先ほど変換したシリアル値を、時間表記に変更します。

時間表記に変更

時間表記に変更する

結果は、「17:00:00」となりました。

TEXT関数とVALUE関数をまとめると、こんな感じです。

=VALUE(TEXT(A1,"h:mm:ss"))

では、セルに入力してみます。

TEXT関数とVALUE関数をまとめる

TEXT関数とVALUE関数をまとめた結果

結果は、先ほどと同じで「17:00:00」です。

表示形式も「h:mm:ss」としています。

では、誤差を確認してみます。

誤差がなくなる

セルに入力した時間「17:00:00」と一致するかを確認してみます。

=A3=A5

では、セルに入力してみます。

誤差がなくなる

セルに入力した時間と一致するかを確認

結果は、「TRUE」となりました。

こんな感じで、TEXT関数とVALUE関数を組み合わせると、時間の誤差をゼロにすることができます。

おわりに

この記事では、文字列の時間とシリアル値との変換について、ご紹介しました。

文字列の時間を、シリアル値に変換するには、「VALUE関数」を使います。

反対に、シリアル値を、文字列の時間に変換する際に使うのは、「TEXT関数」です。

TEXT関数とVALUE関数をちょっと応用して、時間の誤差をゼロにすることもできます。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

アーカイブから探す