PR

ExcelでISO8601表示の時刻を日本時間に変換する方法

Excel
当サイトはアフィリエイト広告を利用しています。

コンピュータで時間を表示する方法は色々あります。

しかし、大体の場合、コンピュータのシステムから取得できる時間は、国際標準時(UTC)だったり、ISO8601やUNIX時間など、IT関連の仕事に関係していない人にはなかなかつらい表示だったりします。

この度、自分の仕事でISO8601表示の時間を日本標準時(JST)に変換しなければならなくなったので、EXCELを使ってISO8601表示された時刻を日本時間に変換する方法をまとめました。

スポンサーリンク

構文の書き方

ISO8601による時間表記が「YYYY-MM-DDThh:mm:ssZ」である場合の構文はこちらです。

=DATEVALUE(MIDB(A1,1,10))+TIMEVALUE(MIDB(A1,12,8))+TIME(9,0,0)

セル上で右クリック⇒[セルの書式設定]から[表示形式]を「日付」のなかからお好みの形式を選んでください。
何もせずにこの式を入れると、「8:45 PM」のような表示になります。

使用するEXCEL関数

数式で使われている関数はそれぞれ次の通りです。

DATEVALUE

DATEVALUE(日付文字列)

文字列で表された日付をExcelが日付として認識できるシリアル値(数値)に変換します。

DATEVALUE 関数 – Microsoft サポート

TIMEVALUE

TIMEVALUE(時刻文字列)

文字列で表された時刻をExcelが時刻として認識できるシリアル値に変換します。

TIMEVALUE 関数 – Microsoft サポート

MIDB

MIDB(文字列(セルの指定), 開始位置, バイト数)

文字列の任意の位置から指定されたバイト数の文字を返します。

スポンサーリンク

MID 関数、MIDB 関数 – Microsoft サポート

TIME

TIME(時, 分, 秒)

指定した時刻をExcelが時刻として認識できる小数として返します。
カッコ内の1番目は時、2番目は分、3番目は秒を指定します。

この関数を挿入する前のセルの表示形式が [標準] であった場合、結果は日付形式になります。
例えば、TIME(13,0,0)を挿入すると「3:00PM」を返します。

TIME 関数 – Microsoft サポート

解説

この構文は日付と時間をExcelが認識できる数値(シリアル値)に変換し、そこへ時差分を足して日本標準時に修正しています。

ポイントとなる関数は「MIDB」です。
MIDB(A1,1,10)のカッコ内の数(引数)の意味は前から順に

1番目:セルA1の文字列を読み込む
2番目:1番目の数で指定した文字列から取り出したい文字列の開始位置を指示する
3番目:取り出したい文字列のバイト数を指示する

となっています。
2番目の数字を「1」とすると文字列の先頭から引用されます。

A1セルのISO8601時刻表示が「2024-03-13T08:45:32Z」の場合、MIDB(A1,1,10)とMIDB(A1,12,8)で取り出せる文字列は以下の通りです。

2024-03-13T08:45:32Z
MIDB(A1,1,10)⇒文字列先頭から10文字「2024-03-13」
MIDB(A1,12,8)⇒文字列12文字目から8文字「08:45:32」

実行結果はこの通りです。

参照元

先人の知恵に感謝します。

ISO 8601をエクセルで日本時間に変換 |

スポンサーリンク
この記事を書いた人
よこやま

横浜の山のほうに住んでいます。
基本的には自分で購入したもののレビューを中心に時々は地元の情報なども書いていきます。

よこやまをフォローする
Excel仕事
よこやまをフォローする
よこやま

コメント

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