この記事では、エクセルでファイル名をセルに表示(拡張子なしも:自動入力・取得:関数など)する方法について解説していきます。
主な対応方法は以下です。
CELL関数と文字列操作関数を組み合わせる
名前の定義を利用
それではサンプルを見ていきましょう。
エクセルでファイル名を取得・セルに表示する方法【ハイパーリンクの使用:相対パス】
※※ ・関数を使用して、より自動に近い方法で対応したい
・相対パスでなく絶対パスを使用したい
方は、見出し2cell関数での処理方法にお進みくださいませ ※※
ハイパーリンクを使用する方法をご紹介します。ファイル名を表示したい任意のセルを右クリックして「リンク」をクリックします。
ハイパーリンクの挿入メニューが開くので表示したいファイルを選択します。
セルにリンクされたファイル名が表示されます。
このままだとこのセルをクリックしたときに、ファイルが開いてしまうので値で貼り付けしなおせば純粋のファイル名を取得することができます。
ファイル名を取得できました。
なお、この方法はいま開いているエクセルからの相対パスを表示することになるので、注意しましょう。
同一フォルダにあるファイルなら上記の方法でファイル名だけ表示されますが、一つ上のフォルダだと下記wk01.xlsmのようになりますし、一つ下のフォルダだと下記の新規テキストドキュメントのように表示されます。
エクセルでファイル名を取得・セルに表示する方法2【拡張子無も:CELL関数の使用:絶対パス】
次は関数を組み合わせた方法をご紹介します。ベースとなる関数はCELL関数です。
=CELL(“filename”)を使用すると以下のように現在開いているエクセルの絶対パスがセルに表示されます。
これに文字列操作の関数を組み合わせてファイル名だけ抜き出します。
MID関数とFIND関数を組み合わせて以下の式を作ります。
=MID(A1, FIND(“[“, A1) + 1, FIND(“]”, A1) – FIND(“[“, A1) – 1)
ファイル名を抜き出すことができました。
拡張子を表示しないケース
拡張子を表示したくない場合はさらに以下の式を作ります。
=LEFT(A2, FIND(“.”, A2) – 1)
拡張子無しで表示することができました。
1つの式で表すと少し長いですが以下になります。
※セルA2を置き換えただけです。
=LEFT(MID(CELL(“filename”), FIND(“[“, CELL(“filename”)) + 1, FIND(“]”, CELL(“filename”)) – FIND(“[“, CELL(“filename”)) – 1), FIND(“.”, MID(CELL(“filename”), FIND(“[“, CELL(“filename”)) + 1, FIND(“]”, CELL(“filename”)) – FIND(“[“, CELL(“filename”)) – 1)) – 1)
エクセルでファイル名を取得・セルに表示する方法3【名前の定義の活用】
上記の方法ですが、一つの式で表すと多少長くなってしまいます。そこで名前の定義を使って自作の関数を用意します。
関数の名前を任意でつけて、方法2の最後でご紹介した長い関数を参照範囲の式にコピペしましょう。
新しい関数としてFILENAMEが完成しました。セルに式を打ち込んでみます。
現在開いているエクセルのファイル名が表示されました。拡張子無しで表示したい場合は参照範囲の式を拡張子無しの式にしたら実現できます(方法2を参照してください)
まとめ エクセルでファイル名をセルに表示(自動入力・取得:関数:絶対や相対パスなど)する方法
この記事ではエクセルでファイル名をセルに表示する方法について解説しました。
ハイパーリンクを使った方法では現在のエクセルファイル以外も表示できます。CELL関数を使った方法は便利ですが関数がやや複雑です。頻繁に使うようであれば名前の定義を使うと簡単に呼び出せるようになるので効率がいいですね。
ご自分の環境にあった方法をお試しください。
コメント