サイトアイコン puti se blog

エクセルでセルに自動でファイル名の一部を取得する方法

エクセルのセルにファイルの更新日付を自動で入れたいのですが、
普通にやると、どうやらマクロでしか実現できないようです。
マクロまで行うと面倒なので、例えばファイルを更新した時にファイル名の一部に日付を入れた場合、そのファイル名から日付部分だけ取得してセルに自動入力出来ないものでしょうか?

エクセルサンプルファイル-20140404.xlsx

 

エクセルでセルに自動でファイル名の一部を取得する方法

=MID(
  CELL("filename"),
  SEARCH("-",CELL("filename"),SEARCH("[",CELL("filename"))+1)+1,
  SEARCH(".",CELL("filename"),SEARCH("[",CELL("filename"))+1)-SEARCH("-",CELL("filename"),SEARCH("[",CELL("filename"))+1)-1
)

で試してみてください

環境:

 

エクセル関数の説明、CELL、MID、SEARCHを駆使する

1、まずはCELL関数の第1引数に「"filename"」からフルパスを取得

CELL関数に”filename”を入れると、ファイルのフルパスがエクセルセルに取得出来ます。

 

2、MID関数で文字列から間抜き


MID関数を使用すると文字列から厳選した文字を取得できます。

問題は、MID関すんの”開始位置”と”文字数”です

 

3、SEARCH関数で文字数を取得。エクセルファイル名をセルに入れる

SEARCH関数を使用してフルパスから”[”と”]”の左からの文字数を取得します。
この方法で、エクセルファイル名をセルに自動入力できます。

この方法を応用して、ファイル名から日付を取得したいのですが・・・

 

4、SEARCH関数で文字数を取得。応用

“[”や”]”ではなく、”-”や”.”を検索すれば、ファイル名から日付を取得できるのですが、“[”や”]”はWindowsのフルパスに指定できない文字なので問題ないのですが(フルパスに一回しか出てこない)
”-”や”.”はフルパスのフォルダ名とかで出てきてしまう恐れがあります・・・

そこでさらなる工夫

 

5、SEARCH関数で文字数を取得。検索開始する文字数を指定

もしも、フルパスのフォルダ名に”-”や”.”が使われてしまうと、4の方法では、日付が取得できません。
なので、SEARCHの検索開始位置を、ファイル名からにします。
こうすれば、ファイル名の命名規則さえ注意すれば、エクセルセルに日付が取得できますからね!

モバイルバージョンを終了