セルにシート名を表示する

ちょっとした小技

e18-1.png
ヘッダーには &[シート名] でシート名を表示するのは簡単で知られていますが、セルに表示する方法は単純ではありませんが、ちょっと一手間加えた関数で表示することが出来ます。文字列操作の応用になります。

CELL関数

あまり使い慣れないCELL関数というモノを使います。
CELL関数とは参照のセルの色々な情報を引き出せる関数で、そのエクセルファイル名というのも引き出せます。エクセルフィイル名というと「決算書.xls」などそういうものになるんですが、このCELL関数で引き出すファイル名は
D:\[決算書.xls]Sheet1 というように絶対パスでファイルの保存場所からそのセルのシート名までを引き出します。
e18-2.png
=CELL(“filename“,A1)
このダブルクォーテーションで括った filename という引数を指定するとファイル名を返します。

あとはSheet1だけを抜き出すだけ

です。
簡単に言いましたが、ではどうするのか?
この抜き出されたファイル名をよく見てください。実ファイル名は [ ] で囲まれていますよね。その後ろにシート名が来ている。
わかりますか?
] の後ろにシート名です。
MID関数では指定した文字数の場所から指定した文字数分だけ引き出せます。「あいうえお」という文字の3文字目から2文字抜き出す「うえ」という事が出来ます。
ですから ] の文字が何文字目にあるのか?というのが分かればシート名だけを抜くことが出来るのです。
e18-3.png
これはFIND関数というのを使います。FIND関数は指定した文字が最初に現れる位置を検索します。「あいうえお」で「う」は頭から何番目?ということで3を返します。
これで ] の位置を探し、MID関数でこの位置の1つ後ろから最後までを抜くとシート名だけ抜く事ができます。

=MID(CELL(“filename”,A1),FIND(“]”,CELL(“filename”,A1))+1,31)

これが最終的な式になります。分解して考えると
MID( 全ファイル名 , FINDで全ファイル名から]の文字位置検索 +1 , 31文字引っこ抜く)
31文字というのはSheetの制限文字数です。Excel2010まではこれを超えてのシート名を設定することが出来ませんので31にしております。99とかでも全然問題ないですけどね。

コメントをどうぞ

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  • ▼お小遣い稼ぎしませんか?▼ 日々の生活にhappyをプラスする|ハピタス

    クレジットカード・FX口座を作るだけで簡単に3万円GETです。一切支出はありません。

TODAY SUM 置換 検索 NA() ユーザー定義関数 COLUMN VLOOKUP バーコード DATE フロー図 SUMIF HLOOKUP INDEX コピペ MATCH 図形 グラフ 印刷 変換 無料 目標 日付 COUNTIF 条件付き書式 作業効率UP SUMIFS テンプレート XLSTART ワイルドカード
  • 関西在住の30代サラリーマン。事務職で毎日Excelと戯れています。
    システム導入なんて資金が無い!Excelでなんとかやりたい零細中小の社長さん・事務員さんの力になればと思います。
    詳しいプロフィール


PAGE TOP ↑