Excel のファイル名の一部から日付を抽出する数式

"hogehoge_20081105.xlsx" といった Excel シートで、"2008 年 11 月 05 日" という文字列を生成する数式を作ってみた。ググって調べたファイル名を取得する方法を参考にしている。正規表現を利用するには VBA でやるしかないようだ。

= REPLACE(REPLACE(CELL("filename"),FIND(".xls",CELL("filename"))-4,255,""),1,FIND(".xls",CELL("filename"))-9,"") & " 年 " & REPLACE(REPLACE(CELL("filename"),FIND(".xls",CELL("filename"))-2,255,""),1,FIND(".xls",CELL("filename"))-5,"") & " 月 " & REPLACE(REPLACE(CELL("filename"),FIND(".xls",CELL("filename")),255,""),1,FIND(".xls",CELL("filename"))-3,"") & " 日"

追記

  • DATEVALUE 関数で単純化できないかという指摘をもらったけど、"2008/11/05" といった形式は認識したが、"20081105" はダメだった