タイムゾーン付きISO日時をUTCの時刻順に並べる
Zや+09:00が付いたISO日時を日時型で読み、UTC基準で並べ替えます。地域ごとの現地時刻への変換とは区別します。
異なるタイムゾーンで出力された記録を文字列として並べると、実際の発生順と合わないことがあります。Zや+09:00などを含むISO日時は「日時」型にし、UTCの同じ基準で並べ替えます。
文字列順と実際の時刻順が違う例
架空のEventsでは、AはUTC+9の午前9時、BはUTC−4の前日午後8時30分、CはUTCの午前0時15分です。UTCでは順に00:00、00:30、00:15となるため、Bが最後です。
Events
| Event | At |
|---|---|
| A | 2026-10-01T09:00:00+09:00 |
| B | 2026-09-30T20:30:00-04:00 |
| C | 2026-10-01T00:15:00Z |
日時型にしてからAtを並べ替える
- Eventsを取り込み、Atの全値にZや+09:00などが付いていることを確認します。元の表記を確認できるよう、元ファイルも保管します。
- Atのデータ型バッジから「日時」を選びます。「日付」では、この操作に必要な時刻が失われるため使いません。
- 結果を開き、「結果を整理」→「並べ替え」でAtと「昇順」を選びます。「適用」を押して結果を確認します。
- Aが00:00、Cが00:15、Bが00:30の順になっているか確認します。表示にはタイムゾーン記号が付かないため、この値がUTC基準であることも記録します。
UTCではA・C・Bの順になる
並び順はA・C・Bの3行です。Bの元の文字列は前日の日付から始まりますが、UTCでは三つの中で最も遅い時刻です。
| Event | At |
|---|---|
| A | 2026-10-01 00:00:00 |
| C | 2026-10-01 00:15:00 |
| B | 2026-10-01 00:30:00 |
地域の現地時刻へ変換する操作ではありません
2026-10-01 09:00:00だけでは、どの地域の時刻か分かりません。元データに+09:00など、UTCとの時差を示す値(オフセット)を正しく付けてください。この手順はその値を使って並べるもので、都市名からタイムゾーンや夏時間を判定する機能ではありません。
各地域の現地時刻で表示したい場合や、元のオフセット表記も残したい場合は、別の準備が必要です。日付だけで結合するために時刻を除く操作とは使い分けてください。
自分のファイルで始めましょう
JOIN SHEETを使ってみる ↗Excel・CSVの作業はPCでご利用ください。
新しいタブで開くため、作業中のデータは置き換わりません。
サンプルの検証日:
出典
Parsing an ISO8601 date/time (including TimeZone) in Excel (Stack Overflow)
原文はタイムゾーン付きISO日時の解釈に加え、現地時刻への変換も扱っています。この記事はそのうち、明示されたoffsetを反映してUTCで時刻順に並べる部分に範囲を絞っています。 説明には別途作成した架空のデータを使用しています。