Python in Excel実践:バラバラな日付文字列をExcel日付に変換する方法

pandas python 1

Excel では、見た目は日付でも、実際には文字列として扱われているデータに出会うことがあります。
この記事では、Python in Excel と dateutil ライブラリを使って、書式がバラバラな日付文字列を Excel の日付として扱える形に変換する手順を確認します。

Python には、日付文字列を柔軟に解析するためのdateutil ライブラリがあります。

Python in Excelの導入記事は以下。

Python in Excelにおけるpandas DataFrameの基本 – Lean Data Office

このライブラリは、書式が統一されていない日付文字列でも
datetime として解釈できる点が特徴です。

公式ドキュメント:dateutil

https://dateutil.readthedocs.io/en/stable/examples.html#parse-examples

image

公式ドキュメントの例から、parse 関数が
数値形式、月名を含む表記、文を含んだ日付表現まで
幅広く対応していることが分かります。

今回の変換処理は、この仕様を前提に進めます。

image

Python in Excel の Python セルで
dateutil.parser を import し、parse 関数を使用できるようにします。

image

Excel 上の B4 から B8 に入力された日付文字列を、
xl("B4:B8") を使って Python 側に取り込みます。

この時点では、データはまだ文字列のままです。

image

日付に変換する:parse

取り込んだデータに対して、
リスト内包表記を使って parse を適用します。


df = xl("B4:B8")
dates_col = df[0]
result = [parse(s) for s in dates_col]
image

ここで、文字列だった日付が
Python 側では日付として解釈された状態になります。

image

変換結果を Excel に展開したあと、
セルの表示形式を「短い日付形式」に変更します。

表示形式を変更しても問題なく日付として表示されることで、
Excel 側でも日付として認識されていることが分かります。

image
image

テスト:DAYS関数を適用する

変換された日付を参照して、
Excel の DAYS 関数を使用します。

image
=DAYS("1/1/2025", B11)

この計算が成立することで、
文字列ではなく Excel 日付として機能していることが確認できます。

image

計算結果を下方向にコピーすることで、
対象となるすべての日付に同じ処理が適用されます。

これにより、

  • バラバラな日付文字列
  • Python での日付変換
  • Excel での日付計算

という一連の流れが成立していることが確認できます。

image

まとめ

dateutil を使うことで、書式が統一されていない日付文字列でも、Python 側で柔軟に日付へ変換できます。
Python in Excel を介して日付に変換しておけば、Excel 上でも日付関数や計算をそのまま活用できます。

筋トレとオートメーションが趣味。 モバイルアプリ個人開発者。 データ処理・可視化とレポートにハマり備忘録と情報共有のためにブログ開設し運営している。