ファイル名やシート名を取得する数式

Microsoft Excel

エクセルブックのファイル名に名前を入力してあって、その名前をエクセルシート上で利用といった場合にエクセルブックのファイル名を取得する数式です。

単純にパスを含むファイル名(フルパス)を取得する場合

=CELL("FILENAME")

この数式の結果。ここではMac OS版のExcelを使った場合です。

/Volumes/HDD/Home/User/Desktop/[テスト.xlsx]Sheet1

CELL関数はセルに関する情報を取得することができます。ここではFILENAMEという文字列を渡して、ファイル名+シート名を取得しています。

ファイル名(拡張子を含む)を取得する場合

=MID(CELL("FILENAME"), FIND("[", CELL("FILENAME"))+1, FIND("]", CELL("FILENAME")) - (FIND("[", CELL("FILENAME"))+1))

この数式の結果。ここではMac版のExcelを使った場合です。

テスト.xlsx

数式の説明

  1. まずFIND("[", CELL("FILENAME"))+1部分でファイル名を括っている”[“の次の位置…ファイル名の最初の位置を計算します。
  2. 次いでFIND("]", CELL("FILENAME")) - (FIND("[", CELL("FILENAME"))+1)部分でファイル名を括っている”]”を取得して、そこからファイル名の最初の位置を引くことでファイル名の文字数を計算しています。
  3. 最後にMID関数を使って、ファイル名とシート名の情報(CELL("FILENAME"))と、先に求めたファイル名の最初の位置、ファイル名の文字数を渡して、ファイル名を取得しています。

シート名だけを取得する場合

シート名に月や日などを入力していて、その情報をセルで利用する場合の数式です。

=RIGHT(CELL("FILENAME"), LEN(CELL("FILENAME"))-FIND("]", CELL("FILENAME")))

この数式の結果。ここではMac版のExcelを使った場合です。

Sheet1

数式の説明

  1. RIGHT 関数は文字列の右側からの文字数を指定して、その文字数分の文字列を取得する関数です。シート名はCELL("FILENAME")で取得できる文字列の”]”以降の値になりますので、LEN(CELL("FILENAME"))-FIND("]", CELL("FILENAME"))で取得する文字数を求めることができます。
  2. 次いで、RIGHT関数を使って、指定した文字数分を右側から取得します。