こんな人にオススメの記事です
- Excelのシート名を取得する関数を知りたい人
Excelを使っていると、シート名をセルに表示したい場面があります。
特に複数シートを使うテンプレートでは、「このシートは何という名前なのか」を関数で表示すると便利です。
この記事では、CELL("filename") から取得できる「ブックのフルパス+シート名」からシート名だけを抜き出す3つの方法を紹介します。
Excelのバージョンや数式の書き方が異なるので、自分の環境に合ったやり方を選んでみてください。
Excelのシート名を取得する関数は3つある
シート名を取得する関数は大きく分けて3種類あります。
使っているExcelのバージョンや、慣れによって使い分けてみてください。
- 最新の Excel (Microsoft 365 のサブスクリプション版) を使っている場合
→TEXTAFTER
が最もシンプルでおすすめ。 - 古いバージョンの Excel だが、置換という考え方がしっくり来る場合
→REPLACE + FIND
を使う。 - 従来の文字列切り出しテクニックに慣れている場合
→RIGHT + LEN + FIND
の組み合わせが無難。
TEXTAFTER関数
この関数は圧倒的に簡単で数式もわかりやすい一方、Microsoft 365 のサブスクリプション版 でしか使用できません。
=TEXTAFTER(CELL("filename", A1), "]")
■ 仕組み
TEXTAFTER
は、指定した区切り文字の後ろにあるテキストを抽出する、新しいExcel関数です。
CELL("filename", A1)
で取得した文字列に対して、区切り文字を"]"
に設定。"]"
の後ろにある部分、つまりシート名だけをそのまま返してくれます。
■ こんな人におすすめ
- Microsoft 365 のサブスクリプション版 を使っている
- とにかくシンプルで可読性の高い数式がいい
- 「狙った文字列を一気に取り出したい」という方
REPLACE関数 + FIND関数
書式がシンプルで、置換操作に慣れている方には使いやすい関数です。
すべてのExcelバージョンで利用できるため、互換性にも優れています。
ただし、FIND関数で文字数を取得してから置換する仕組みを把握していないと、やや直感的にわかりにくいかもしれません。
=REPLACE(CELL("filename", A1), 1, FIND("]", CELL("filename", A1)), "")
■ 仕組み
- まず、
CELL("filename", A1)
でファイル名とシート名を含む文字列を取得します。 FIND("]", … )
で"]"
が何文字目にあるかを調べます。- 文字列の先頭(1文字目)から
"]"
までを、一気に空文字""
で置き換えて削除します。 - 結果として、
"]"
の直後にあるシート名だけが残ります。
■ こんな人におすすめ
- 「置換」(REPLACE) のほうがイメージしやすい方
- 古いバージョンの Excel を使っている(
TEXTAFTER
は使えない) - なるべく短め・シンプルな数式で書きたいという場合
RIGHT関数 + LEN関数 + FIND関数
RIGHTとLEN、FINDを組み合わせると、どうしても数式が長くなる点が難点です。
しかし、昔からある関数ばかりで構成されているため、慣れている人にはこちらのほうが使いやすいかもしれません。
=RIGHT(CELL("filename", A1), LEN(CELL("filename", A1)) - FIND("]", CELL("filename", A1)))
■ 仕組み
CELL("filename", A1)
で「ブックのフルパス+シート名」という文字列を取得します。FIND("]", CELL("filename", A1))
は、その文字列内で"]"
が何文字目にあるかを探します。LEN(… ) - FIND(… )
で、"]"
より後ろに何文字あるか計算します。- その分だけ文字列の右側から取り出せば、シート名だけが得られるわけです。
■ こんな人におすすめ
- 昔ながらの Excel 関数の組み合わせに慣れている方
RIGHT
、LEN
、FIND
での文字数計算が苦にならない方- どのバージョンの Excel でも動く 安定した方法を使いたい場合
まとめ
- とにかく簡単に実現したい&Excel 365 なら →
TEXTAFTER
一択 - 古めのバージョンでも通用するシンプルさなら →
REPLACE + FIND
- 従来の文字列切り出しが得意なら →
RIGHT + LEN + FIND
どの関数も最終的には「CELL("filename")」の戻り値からシート名だけを抽出する点は同じです。
Excelのバージョンや慣れ親しんだ操作方法に合わせて、使いやすいものを選んでみてください。
以上、Excelでシート名をセルに表示する関数のまとめでした。ぜひ活用してみてください。
CELL("filename")の役割を覚えておこう
CELL関数は、指定したセルのいろいろな情報を返します。
その中でも、CELL("filename", A1)
と書くと「ブックのフルパス+ファイル名+シート名」をまとめて返してくれます。
たとえば、次のような文字列です。
C:\Users\SampleUser\Documents\[SampleBook.xlsx]Sheet1
この文字列には、「フォルダの場所(パス)」「ファイル名(拡張子つき)」「シート名」の3つがいっしょに含まれています。
- フォルダの場所(パス):
C:\Users\SampleUser\Documents\
- ファイル名:
SampleBook.xlsx
(本当は[ ]に囲まれています) - シート名:Sheet1
「CELL("filename")」は、これらを全部つなげて返しているのです。
Excelのファイル名やファイルの保存先をセルに表示する方法
ここまでは、CELL("filename") を使って シート名 をセルに表示する3つの方法を紹介しました。
実はこの関数を少し応用すると、ファイル名(拡張子付き) や フルパス(フォルダパス部分) を抽出することも可能です。
Excelのファイル名だけを取り出す方法
CELL("filename", A1)の結果には、[ファイル名]という形でファイル名が含まれています。
ここでは、Excel 365の新機能であるTEXTAFTER(テキストアフター)とTEXTBEFORE(テキストビフォア)を使う方法と、古いExcelで実現する方法をあわせてご紹介します。
Excel 365での方法
=TEXTBEFORE(TEXTAFTER(CELL("filename", A1),"["),"]")
- STEP 1: TEXTAFTER
TEXTAFTER(CELL("filename", A1), "[")
で、「[」のすぐ後ろからの文字列を取り出します。
例:「C:...[SampleBook.xlsx]Sheet1」→「SampleBook.xlsx]Sheet1」になります。 - STEP 2: TEXTBEFORE
次にTEXTBEFORE(..., "]")
を使い、「]」の手前だけを取り出します。
例:「SampleBook.xlsx]Sheet1」→「SampleBook.xlsx」となり、ファイル名だけが残ります。
文字列を「[」から後ろと「]」より前で区切るイメージなので、仕組みもわかりやすいですよ。
Excel 365以外での方法
古いExcelを使っている方は、REPLACE(リプレイス)関数などを組み合わせる方法がおすすめです。
以下の例では、まず先頭から「[」までを削除し、続いて「]」以降を削除するという手順でファイル名だけを残します。
=REPLACE(REPLACE(CELL("filename", A1),1,FIND("[",CELL("filename", A1)),""),FIND("]",REPLACE(CELL("filename", A1),1,FIND("[",CELL("filename", A1)),"")),99,"")
- STEP 1: 「[」までを削除
FIND("[", CELL("filename", A1))
で「[」の位置を調べ、その位置までを空文字に置き換えます。
例:「C:...[SampleBook.xlsx]Sheet1」→「SampleBook.xlsx]Sheet1」になります。 - STEP 2: 「]」以降を削除
残った「SampleBook.xlsx]Sheet1」で、さらにFIND("]", ...)
を使って「]」以降を空文字にします。
例:「SampleBook.xlsx]Sheet1」→「SampleBook.xlsx」となり、ファイル名が完成します。
数式は長めですが、「いらない部分を2回削除しているだけ」という考え方です。
フォルダの場所(パス)だけを取り出す方法
フォルダの場所(パス)だけを取り出したい場合は、[
の前まで取得すればよいため、数式はさらに簡単です。
文字列の先頭から [
の直前まで切り取るイメージで考えてみてください。
Excel 365での方法
=TEXTBEFORE(CELL("filename", A1),"[")
TEXTBEFORE(...,"[")
は「[」より前の文字列を丸ごと取り出します。
例:「C:...[SampleBook.xlsx]Sheet1」→「C:...\」だけが取り出せるので、フォルダの場所(パス)がわかります。
Excel 365以外での方法
=LEFT(CELL("filename", A1),FIND("[",CELL("filename", A1))-1)
- STEP 1: 「[」の位置を調べる
FIND("[", CELL("filename", A1))
で、「[」が何文字目にあるか取得します。 - STEP 2: LEFTで「[」の手前までを取得
「[」の手前(-1した数)だけをLEFT関数で抜き出します。
例:「C:...[SampleBook.xlsx]Sheet1」→「C:...\」となり、パスが取り出せます。
まとめ
- CELL("filename") は、「フルパス+[ファイル名]シート名」 を返してくれます。
- ファイル名だけ →
[ ]
に挟まれた部分を取り出すと取得できます。- Excel 365なら
TEXTAFTER
/TEXTBEFORE
で区切ると簡単です。 - 古いExcelは
REPLACE
やFIND
を使って不要な部分を削除します。
- Excel 365なら
- フォルダの場所(パス)だけ → 「[」より前だけを切り取ります。
- Excel 365なら
TEXTBEFORE(...,"[")
- 古いExcelなら
LEFT(..., FIND("[",...)-1 )
- Excel 365なら
最初は数式が長く感じるかもしれませんが、実際は「どこを切り取り、どこを削除するか」を決めるだけの単純な作業です。
使っているExcelのバージョンに合わせて始めてみてください。
文字列操作に慣れると、ファイル名やパスを表示したり、自動化の仕組みに組み込んだりすることも簡単になります。
Excelでシート名をセルに表示する関数に関するよくある質問と答え
シート名をセルに表示する関数に関するよくある質問と答えをまとめました。
CELL("filename")の仕組み
バージョンや互換性について
ファイル名やフォルダの場所を引き出すときの疑問
ファイルの複製や共有関連
その他Excelに関する記事
その他Excelに関する記事はこちらです。是非御覧ください。
-
エクセル(Microsoft Office Excel)
【Excel】画像をセルに埋め込む方法
こんな人にオススメの記事です 画像をセルの中に埋め込みたい人 セルの中に埋め込まれた画像を元に戻したい人 Excelでセルに画像を埋め込むと、セルの移動やサイズ変更... -
エクセル(Microsoft Office Excel)
【エクセル】自動計算されない場合の原因と対処法
こんな人にオススメの記事です エクセルの計算式が突然自動計算されなくなった場合 エクセルの計算式を自動計算したくない人 エクセルは普段は自動計算されていて、関数... -
エクセル(Microsoft Office Excel)
【エクセル】ハイパーリンクを簡単に解除する方法
こんな人にオススメの記事です セルのハイパーリンクを削除(解除)したい人 入力した文字が自動的にハイパーリンクになる設定を解除したい人 エクセルで作業をしている... -
エクセル(Microsoft Office Excel)
【Excel】リボン(メニューバー)を常に表示する方法|デスクトップ版・Web版対応
こんな人にオススメの記事です Excelでリボン(メニューバー)が消えてしまい、戻し方がわからず困っている人 デスクトップ版だけでなくWeb版Excelでも同様の設定を行い... -
エクセル(Microsoft Office Excel)
【Excel】破損したファイルを修復する方法
こんな人にオススメの記事です Excelのファイルがアプリの強制終了などで破損してしまった場合 Excelで日々の業務をこなしていると、「ファイルが開かない」「保存した... -
エクセル(Microsoft Office Excel)
【Excel】「マクロの実行がブロックされました」と表示された場合の対処法
こんな人にオススメの記事です ダウンロードしたExcelのファイルを開いたら「セキュリティリスク このファイルのソースが信頼できないため、Microsoftによりマクロの実... -
エクセル(Microsoft Office Excel)
エクセル(Excel)で作成したデータをワード(Word)に貼りつける方法7選
こんな人にオススメの記事です エクセルからワードに貼り付けると毎回形が崩れてしまう エクセルのデータを更新したらワードに貼り付けた表も自動的に更新されてほしい ... -
エクセル(Microsoft Office Excel)
xls(古いエクセル)からxlsx(新しいエクセル)に変換する方法
こんな人にオススメの記事です xls形式からxlsx形式に変換したい人 新しいエクセルファイルに変換したい人 古いエクセル形式(.xls)では行や列が不足している人 エクセ... -
エクセル(Microsoft Office Excel)
【Excel】空白行を一括で削除する方法
こんな人にオススメの記事です 不要な空白行を一括で削除する方法を知りたい人 空白行を一括で削除するマクロを作成したい人 Excelでデータを扱っていると、途中に空白...
最後までご覧いただきありがとうございました。
このサイトは情シスマンが半径3m以内のITに関する情報を掲載してるサイトです。
Windows系を主として、ソフトや周辺機器の操作や設定について画像も用いながらわかりやすく解説しています。
解説している内容に誤りがあった場合や、補足が必要な場合、もっと知りたい場合はこちらのお問い合わせフォームからご連絡ください。
個人の方を限定にサポートさせていただきます。
実行環境
Windows11 Home 24H2
64 ビット オペレーティング システム
11th Gen Intel(R) Core(TM) i7-11375H @ 3.30GHz 3.30 GHz
16.0 GB RAM
Microsoft 365
コメント