Excel関数でシート名を取得する方法をお探しですね。
広告
Excelでシート名やファイル名をセルに自動表示する方法【CELL関数の使い方】
Excelで日報や月次資料、見積書などを作っていると、「このシート名をセルに表示したい」「ファイル名や保存場所を自動で出したい」と思うことがありますよね。
手入力でも対応できますが、シート名やファイル名を変更したときに修正し忘れてしまうことも多く、複数のシートを扱っているとなおさら大変です。
この記事では、ExcelのCELL関数を使って、現在のシート名、ファイル名、保存先パスをセルに自動表示する方法を、初心者の方にも分かりやすく解説していきます。
1. CELL関数で取得できる「ファイル情報」の基本
Excelで現在のシート名やファイル名を自動表示したいとき、まず覚えておきたいのが**CELL関数**です。
CELL関数は、指定したセルについて、セル番地や行番号、列番号、表示形式、ファイル情報などを教えてくれる関数です。
今回使うのは、情報の種類に「filename」を指定する方法です。
たとえば、セルに `=CELL(“filename”,A1)` と入力すると、そのA1セルが含まれるブックの保存先パス、ファイル名、シート名がまとめて表示されます。
CELL関数で「filename」を指定すると、次のような文字列が返ってきます。
“`
C:\Users\ユーザー名\Desktop\[売上管理.xlsx]4月
“`
つまり、**保存先フォルダのパス**、**角かっこで囲まれたファイル名**、**最後に現在のシート名**が連結された形です。
この構造を理解しておくと、あとからLEFT関数、MID関数、RIGHT関数、FIND関数などを組み合わせて、必要な部分だけを切り出せるようになります。
なお、`=CELL(“filename”,A1)` のA1は、基本的に同じシート内のセルであれば、別のセルでも大丈夫です。
ただし、参照先を別シートにしてしまうと、その参照先シートの情報が返ってくることがあります。
現在のシート名を表示したい場合は、数式を置くシート内のセルを指定するのが安全です。
また、**CELL関数でファイル情報を取得するには、ブックが一度保存されている必要があります**。
新規作成直後で未保存のブックでは、空白になったり、エラーになったりするので、先に名前を付けて保存してから試してみてください。
基本の数式は次のとおりです。
“`excel
=CELL(“filename”,A1)
“`
この数式だけでも、フルパス、ファイル名、シート名をまとめて確認できます。
まずはこの結果をセルに表示して、「どの位置にファイル名があって、どこからシート名が始まるのか」を確認してから、次の切り出し数式に進むと理解しやすくなりますよ。
2. 現在のシート名をセルに自動表示する数式
現在のシート名だけをセルに表示したい場合は、CELL関数で取得した文字列のうち、右端にあるシート名部分だけを取り出します。
CELL関数の結果は `[ファイル名]シート名` という並びになっているので、シート名は閉じ角かっこ `]` の右側にあります。
そこで、FIND関数で `]` の位置を探して、LEN関数で全体の文字数を数え、RIGHT関数で右端から必要な文字数だけ取り出します。
現在のシート名を取得する代表的な数式は、次のとおりです。
“`excel
=RIGHT(CELL(“filename”,A1),LEN(CELL(“filename”,A1))-FIND(“]”,CELL(“filename”,A1)))
“`
この数式では、まず `CELL(“filename”,A1)` で、保存先パス、ファイル名、シート名を含む文字列を取得します。
次に `FIND(“]”,CELL(“filename”,A1))` で、閉じ角かっこが何文字目にあるかを調べます。
さらに `LEN(CELL(“filename”,A1))` で文字列全体の長さを求めて、全体の文字数から `]` までの文字数を引くことで、シート名の文字数を計算しています。
最後にRIGHT関数で右端からその文字数分を取り出すので、結果として現在のシート名だけが表示されるというわけです。
たとえばCELL関数の結果が `C:\資料\[月次報告.xlsx]2025年4月` であれば、上記の数式は `2025年4月` を返します。
日報のシート名を「1日」「2日」「3日」のようにしている場合や、月別シートを「4月」「5月」「6月」のように分けている場合、各シートのタイトルセルにこの数式を入れておけば、シート名を変更したときにセル内の表示も自動的に追従してくれます。
Microsoft 365など、**TEXTAFTER関数が使える環境**であれば、もっと短い数式で書くこともできます。
たとえば次のように入力すると、CELL関数の結果から `]` の後ろにある文字列、つまりシート名を取り出せます。
“`excel
=TEXTAFTER(CELL(“filename”,A1),”]”,-1)
“`
ただし、TEXTAFTER関数は使えるExcelのバージョンが限られます。
共有先の相手が古いExcelを使っている可能性がある場合は、RIGHT、LEN、FINDを組み合わせた従来型の数式を使うほうが無難です。
社内テンプレートや取引先へ渡すファイルでは、互換性も考えて数式を選ぶといいでしょう。
3. ファイル名・保存先フォルダ・フルパスを自動表示する数式
シート名だけでなく、現在開いているExcelファイルの名前をセルに表示したい場合も、CELL関数の結果から必要な部分を切り出します。
ファイル名はCELL関数の結果の中で `[ファイル名]` のように角かっこで囲まれているので、開始位置は `[` の次の文字、終了位置は `]` の直前です。
この位置関係を利用すれば、MID関数でファイル名だけを取り出せます。
現在のファイル名、つまりブック名を表示する数式は次のとおりです。
“`excel
=MID(CELL(“filename”,A1),FIND(“[“,CELL(“filename”,A1))+1,FIND(“]”,CELL(“filename”,A1))-FIND(“[“,CELL(“filename”,A1))-1)
“`
この数式では、FIND関数で `[` と `]` の位置をそれぞれ探して、その間にある文字列をMID関数で抜き出しています。
たとえばCELL関数の結果が `C:\Users\user\Desktop\[売上管理.xlsx]4月` であれば、返される値は `売上管理.xlsx` です。
拡張子を含めて表示されるので、同じ名前でxlsx、xlsm、csvなどが混在している場合にも識別しやすくなります。
保存先フォルダのパスだけを表示したい場合は、`[` より左側を取り出します。
LEFT関数を使って、`[` の1文字手前までを返すようにすれば、ファイルが保存されているフォルダパスをセルに表示できます。
“`excel
=LEFT(CELL(“filename”,A1),FIND(“[“,CELL(“filename”,A1))-1)
“`
また、フルパス、ファイル名、シート名をすべてまとめて表示したいだけであれば、切り出しは不要です。
`=CELL(“filename”,A1)` をそのまま使えば、レポートの管理情報や印刷用の識別情報として役立ちます。
特に、同じ形式の資料を複数のフォルダで管理している場合、セル内に保存場所まで表示しておくと、あとから「どのフォルダのファイルを印刷したのか」「どの版を確認しているのか」を追跡しやすくなります。
Microsoft 365などで**TEXTBEFORE関数やTEXTAFTER関数が使える場合**は、ファイル名も比較的読みやすい数式で取得できます。
たとえば、次の数式では `[` の後ろを取り出して、さらに `]` の前までを取得します。
“`excel
=TEXTBEFORE(TEXTAFTER(CELL(“filename”,A1),”[“,-1),”]”)
“`
ただし、ファイル名やフォルダ名に角かっこが含まれていると、区切り位置の判定がずれてしまう可能性があります。
特に従来型のFIND関数を使った式では、最初に見つかった `[` や `]` を基準にするので、ファイル名や保存先パスに角かっこを多用していると意図しない結果になることがあります。
Excelの管理用ファイルでは、ファイル名に `[` や `]` を入れない命名ルールにしておくと、こうしたトラブルを避けやすくなりますよ。
4. うまく表示されないときの原因と実務での使い方
CELL関数を使った数式でシート名やファイル名が表示されない場合、**最も多い原因はブックが保存されていないこと**です。
`CELL(“filename”,A1)` は、保存済みファイルのパス情報をもとに結果を返すので、新規ブックのままではファイル名や保存場所を取得できません。
まずは「名前を付けて保存」を行って、そのうえで数式を再計算してみてください。
保存後も表示が変わらない場合は、Excelの計算方法が手動になっている可能性があります。
「数式」タブの「計算方法の設定」で、自動計算になっているか確認するといいでしょう。
次に確認したいのは、**数式内の参照セル**です。
現在のシート名を表示したいのに、`CELL(“filename”,別シート!A1)` のように別シートを参照していると、期待したシート名にならないことがあります。
数式をテンプレート化して複数シートへコピーする場合は、参照先がそのシート内のセルになっているか確認してください。
通常は `A1` のような同一シート内のセル参照にしておけば問題ありません。
実務では、これらの数式を単に表示用として使うだけでなく、**資料管理や印刷ミス防止**にも活用できます。
たとえば、報告書の左上に現在のシート名を表示しておけば、印刷した紙だけを見ても対象月や対象部門を判断しやすくなります。
また、フッターではなくセルにファイル名を入れることで、表紙や帳票内の好きな位置に管理情報を配置できます。
入力担当者が手で直す必要がないので、テンプレート運用との相性もいい方法です。
よく使う表示内容を整理すると、次のようになります。
– **フルパス+ファイル名+シート名を表示**:`=CELL(“filename”,A1)`
– **現在のシート名だけを表示**:`=RIGHT(CELL(“filename”,A1),LEN(CELL(“filename”,A1))-FIND(“]”,CELL(“filename”,A1)))`
– **現在のファイル名だけを表示**:`=MID(CELL(“filename”,A1),FIND(“[“,CELL(“filename”,A1))+1,FIND(“]”,CELL(“filename”,A1))-FIND(“[“,CELL(“filename”,A1))-1)`
– **保存先フォルダだけを表示**:`=LEFT(CELL(“filename”,A1),FIND(“[“,CELL(“filename”,A1))-1)`
注意点として、**CELL関数の結果は常に即時更新されるとは限りません**。
シート名やファイル名を変更した直後に古い表示のまま残る場合は、F9キーで再計算する、ファイルを保存し直す、数式セルを再編集するなどの操作で更新されることがあります。
また、他の人にファイルを渡す場合、保存場所が変わるとフルパスの表示も変わります。
共有フォルダ、OneDrive、SharePointなどで運用する場合は、表示されるパスが利用環境によって異なることも理解しておくと安心です。
まとめ
ExcelのCELL関数を使って「現在のシート名」や「ファイル名」をセルに自動表示させる数式は、一度覚えるといろいろな帳票や管理表に応用できます。
ポイントは、まず `CELL(“filename”,A1)` で全体の文字列を取得して、そこから `[`、`]`、文字数を手がかりに必要な部分を取り出すことです。
手入力を減らして、シート名やファイル名の変更にも対応しやすいExcelファイルを作るために、よく使う数式をテンプレートに組み込んでおくと効率的ですよ。
ぜひ試してみてください。
広告
