本記事では、エクセル(Excel)でマクロを使用せず、ファイル名を自動で取得し特定のセルに表示する方法をご紹介します。似た形式のファイルを複数作成する場合などに、ファイル名を参照して結果を管理できるようになるため、作業効率化のテクニックとして使用できます。
結論
エクセルでファイル名を自動で取得し、セルに表示するための関数は以下のとおりです。こちらの数式をファイル名を出力したい任意のセルに入力してください。
=TEXTBEFORE(TEXTAFTER(CELL("filename", A1), "["), "]")
関数を実行する方法の詳細な解説
エクセルでファイル名を自動出力する下記の数式では、CELL
, TEXTAFTER
, および TEXTBEFORE
という3つの関数を組み合わせて使用します。こちらのセクションではステップごとに各関数を解説しています。
- ステップ1
- ステップ2
- ステップ3
CELL関数でファイル情報を取得
まず、CELL
関数を使用して現在のファイル情報を取得します。ここでは今回は情報タイプ
として “filename” 、参照
として A1 を指定しています。これにより、現在シート名を含むファイル情報が出力されます。
- 構文
CELL(情報タイプ, 参照)
- 出力結果のステップ
=CELL("filename", A1) ="C:\Users\UserName\Documents\[テストファイル_v1.0.xlsx]Sheet1"
- 参考
CELL 関数 – Microsoft サポート
TEXTAFTER関数でファイルのパス以降の情報を取得
次に、CELL
関数で取得したファイル情報から、ファイルパス以降(ファイル名とシート情報)を取得します。TEXTAFTER
関数は、指定された区切り文字の後のテキストを取得する関数で、今回は区切り文字
に “[” を指定しています。
- 構文
TEXTAFTER(テキスト, 区切り文字)
- 出力結果のステップ
=TEXTAFTER(CELL("filename", A1), "[") =TEXTAFTER("C:\Users\UserName\Documents\[テストファイル_v1.0.xlsx]Sheet1", "[") ="テストファイル_v1.0.xlsx]Sheet1"
- 参考
TEXTAFTER 関数 – Microsoft サポート
TEXTBEFORE関数でファイル名のみを取得
最後に、ファイル名の部分のみを抽出し取得します。TEXTBEFORE
関数は、指定された区切り文字の前のテキストを取得するための関数です。今回は区切り文字
として “]”を指定しています。これにより、TEXTAFTER
関数の結果から、“]”の前のテキストとしてファイル名のみを取得します。
- 構文
TEXTBEFORE(テキスト, 区切り文字)
- 出力結果のステップ
=TEXTBEFORE(TEXTAFTER(CELL("filename", A1), "["), "]") =TEXTBEFORE("テストファイル_v1.0.xlsx]Sheet1", "]") ="テストファイル_v1.0.xlsx"
- 参考
TEXTBEFORE 関数 – Microsoft サポート
以上が、エクセル(Excel)でマクロを使用せずファイル名を自動で取得し特定のセルに表示する方法のご紹介となります。
おわりに
エクセル作業を効率化するための小技の一つとして、ファイル名を自動で取得する方法は非常に便利です。この記事で紹介した関数を活用して、ご自身のビジネス戦闘力を高めましょう。
ご質問やご不明点などがありましたらお気軽にコメントお待ちしております。
ご精読いただきありがとうございました。
コメント