Microsoft Excel で資料を作る際、ファイル名に日付を入れている人は多いと思う。
仕様書_2015_11_28.xlsx
提案資料_20151128.xlsx
修正を行った際に別の日付のファイルが作成されることになるので、過去の資料も見ることができて便利だ。
せっかくファイル名に日付が入っているのであれば、エクセルのセルにも「更新日:2015/11/28」のようにその日付を表示したくなる。
エクセルの関数には、「最終更新日」を取得する関数が無い。「現在時刻(本日)」を取得する Now 関数や、マクロで最終更新日を取得する方法はあるが、ファイル名に日付を入れていれば、関数だけで更新日を取得できる。
=REPLACE(REPLACE(MID(CELL("filename"),FIND(";",SUBSTITUTE(CELL("filename"),"_20",";",(LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"),"_20","")))/LEN("_20")))+1, 10), 5, 1, "/"), 8, 1, "/")
右の写真のように、セルに日付が入る。
=TEXT(VALUE(MID(CELL("filename"),FIND(";",SUBSTITUTE(CELL("filename"),"_20",";",(LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"),"_20","")))/LEN("_20")))+1, 8)), "0!/00!/00")
右の写真のように、セルに日付が入る。
また、本関数が使えるのは 2099 年までである。
仕様書_2015_11_28.xlsx
提案資料_20151128.xlsx
修正を行った際に別の日付のファイルが作成されることになるので、過去の資料も見ることができて便利だ。
せっかくファイル名に日付が入っているのであれば、エクセルのセルにも「更新日:2015/11/28」のようにその日付を表示したくなる。
エクセルの関数には、「最終更新日」を取得する関数が無い。「現在時刻(本日)」を取得する Now 関数や、マクロで最終更新日を取得する方法はあるが、ファイル名に日付を入れていれば、関数だけで更新日を取得できる。
yyyy_mm_dd 形式の場合
「売上_2015_09_01.xlsx」のように、yyyy_mm_dd 形式でファイル名を付けている場合は、セルに以下の式を入力すれば良い。=REPLACE(REPLACE(MID(CELL("filename"),FIND(";",SUBSTITUTE(CELL("filename"),"_20",";",(LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"),"_20","")))/LEN("_20")))+1, 10), 5, 1, "/"), 8, 1, "/")
右の写真のように、セルに日付が入る。
yyyymmdd 形式の場合
「稼働率_20151001.xlsx」のように、yyyymmdd 形式でファイル名を付けている場合は、セルに以下の式を入力すれば良い。=TEXT(VALUE(MID(CELL("filename"),FIND(";",SUBSTITUTE(CELL("filename"),"_20",";",(LEN(CELL("filename"))-LEN(SUBSTITUTE(CELL("filename"),"_20","")))/LEN("_20")))+1, 8)), "0!/00!/00")
右の写真のように、セルに日付が入る。
注意点
日付の検索の目印として、年の先頭のアンダースコアを使用しているので、_2015 というように、ファイル名を付ける際、アンダースコアを忘れてはいけない。月および日は必ず 2 桁にする。8 月なら 08。また、本関数が使えるのは 2099 年までである。