CELL関数のfilenameでエクセルのシート名を取得する方法

エクセルのCELL関数の使い方や、ファイルパスを取得する方法をご紹介します。フルパスからシート名だけを抽出する方法や、ブック名だけを抽出する方法についても解説しているので、ぜひ参考にしてみてください。

スポンサーリンク

CELL関数でファイルパスを取得する方法

CELL関数の基本的な使い方と、検査の種類「filename」について解説します。なおGoogleスプレッドシートの場合、検査の種類にfilenameはありません。

CELL関数の使い方

エクセルのCELL関数でシート名を取得する方法

CELL関数は指定した「対象範囲」について、「検査の種類」で要求した情報を返します。

検査の種類とは、返すセル情報の種類を指定するテキスト値です。例えば検査の種類に”filename”を指定すると、CELL関数は対象範囲を含むファイルのフルパスを返します。

※すべての「検査の種類」は、引用符 (” “) で囲ってください。

CELL関数の構成要素:(検査の種類, [対象範囲])
対象範囲を含むシートが未保存の場合は、空白文字列(“”)を返します。

CELL関数の対象範囲とは?

エクセルのCELL関数でシート名を取得する方法

2番目の要素「対象範囲」は省略可能ですが、基本的には任意のセルを指定してください。

何故ならCELL関数は対象範囲を省略した場合に限り、アクティブセルの情報を返すからです。

例えば「Book1」でfilenameを要求したとしても、「Book2」を編集するとファイルパスがBook2のものに置き換わってしまいます。

セルの行番号を返す検査値「”row”」などの場合も同様です。対象範囲を省略した場合に限り、セルを編集する毎にCELL関数が返す値も置き換わります。

エクセルのCELL関数でシート名を取得する方法

検査の種類がfilenameの場合、対象範囲はCELL関数を入力したセルにしておくと良いでしょう。

なぜなら「対象範囲」に別のセルを指定した場合、該当の行や列を削除すると参照元がなくなり「#REF!エラー」になってしまうからです。

#REF!エラー:数式が無効なセルを参照していることを意味します。

スポンサーリンク

CELL関数でシート名・ブック名を取得する方法

CELL関数で取得したフルパスからシート名だけを抽出する方法と、ブック名だけを抽出する方法を解説します。必要に応じてセル値を変更すれば、コピーしてそのまま使用可能です。

CELL関数でシート名を抽出する方法

エクセルのCELL関数でシート名を取得する方法

ファイルパスからシート名を取得するには、まずシート名の文字数を取得します。シート名の文字数を取得するための手順は以下の通りです。

  1. LEN関数でファイルパス全体の文字数を取得する
  2. FIND関数で閉じ括弧( ] )を検索し、シート名までの文字数を取得する
  3. 全体の文字数から、シート名までの文字数を減算する。

LEN(文字列):指定した文字列の文字数を返します。
FIND(検索文字列, 対象, [開始位置]):検索文字列が最初に現れる位置を返します。

エクセルのCELL関数でシート名を取得する方法

最後に、RIGHT関数でファイルパスの右側から「シート名の文字数」分の文字を取得します。

全体の数式としては、RIGHT(A1,LEN(A1)-FIND(“]”,A1))になります。

RIGHT(文字列,[文字数]):文字列の右側から、指定した文字数の文字を返します。

CELL関数でブック名を抽出する方法

エクセルのCELL関数でブック名を取得する方法

シート名の取得と同じ方法で、ファイルパスからブック名を取得することもできます。ブック名を取得するための手順は以下の通りです。

  1. FIND関数で閉じ括弧( ] )を検索し、シート名までの文字数を取得する
  2. FIND関数で開き括弧( [ )を検索し、1を加算することでブック名までの文字数を取得する
  3. シート名までの文字数から、ブック名までの文字数を減算する

手順3:ブック名までの文字数は、本来FIND関数で円記号(¥)を検索します。しかし(¥)はファイルパスに複数回出現するため、閉じ括弧に1を加算して代用しています。

エクセルのCELL関数でブック名を取得する方法

最後に、MID関数で「ブック名までの文字数」から、「ブック名の文字数」分の文字を取得します。

全体の数式としては、
=MID(A1,FIND(“[“,A1)+1,FIND(“]”,A1)-(FIND(“[“,A1)+1))になります。

MID(文字列, 開始位置, 文字数):開始位置から、指定した文字数の文字を返します。

タイトルとURLをコピーしました