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

公式ドキュメントの例から、parse 関数が
数値形式、月名を含む表記、文を含んだ日付表現まで
幅広く対応していることが分かります。
今回の変換処理は、この仕様を前提に進めます。

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

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

日付に変換する:parse
取り込んだデータに対して、
リスト内包表記を使って parse を適用します。
df = xl("B4:B8")
dates_col = df[0]
result = [parse(s) for s in dates_col]

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

変換結果を Excel に展開したあと、
セルの表示形式を「短い日付形式」に変更します。
表示形式を変更しても問題なく日付として表示されることで、
Excel 側でも日付として認識されていることが分かります。


テスト:DAYS関数を適用する
変換された日付を参照して、
Excel の DAYS 関数を使用します。

=DAYS("1/1/2025", B11)
この計算が成立することで、
文字列ではなく Excel 日付として機能していることが確認できます。

計算結果を下方向にコピーすることで、
対象となるすべての日付に同じ処理が適用されます。
これにより、
- バラバラな日付文字列
- Python での日付変換
- Excel での日付計算
という一連の流れが成立していることが確認できます。

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