こんにちは、sysin-jamです。
セル内にシート内に表示させる方法です!
エクセルでマニュアルや説明資料を作る際に、シート名をヘッダーがわりにセルに表示させることで見やすくなったり、統一感が出ますよね。
1,2シートだけなら手入力でも良いですが、沢山シートがあると手間になります。。。
CELL関数(とMID関数、FIND関数)を使ってセル内にシート名を表示させます!
※↓のようにヘッダーがわりにシート名を表示したりしてます
CELL関数とは
CELL関数とは、セルの位置や書式、内容などを返す関数です。
=CELL(検査の種類, [参照])
「検査の種類」に取得したい種類を設定します。
色々設定できるみたいですが、私がよく使うのは「address」と「filename」です。
検査の種類 | 戻り値 |
“address” | セルの参照を表す文字列。 ($A$1など) |
“col” | セルの列番号。 |
“color” | 負の数を色で表す書式がセルに設定されている場合は 1。それ以外の場合は 0 。 |
“contents” | セルの値 (数式ではない)。 |
“filename” | 対象範囲を含むファイルのフル パス名 (文字列)。 シートが未保存の場合は””。 |
“format” | セルの表示形式に対応する文字列定数。 |
“parentheses” | 正の値またはすべての値をかっこで囲む書式がセルに設定されている場合は 1。それ以外の場合は 0。 |
“prefix” | セルの “文字位置” に対応する文字列定数。 |
“protect” | セルがロックされていない場合は 0、ロックされている場合は 1。 |
“row” | セルの行番号。 |
“type” | セルに含まれるデータのタイプに対応する文字列定数。 セルが空白: “b” (Blank の頭文字) セルに文字列定数が入力: “l” (Label の頭文字) その他の値が入力: “v” (Value の頭文字) |
“width” | 2 つの項目を含む配列を返す。 配列の 1 つめはセルの列幅で、整数に丸められる。 配列の 2 つ目の項目はブール値で、列幅が既定値の場合は TRUE、幅がユーザーによって明示的に設定されている場合は FALSE 。 |
セルをシート名を表示 (Sheet1シートのシート名を表示)
以下関数をA1セルに入力します。
=CELL("filename", A1)
するとシート名までのフルパスが表示されます。
⇒「C:\Users\xxx\Downloads[シート名表示.xlsx]Sheet1」と表示
そこからMID関数でシート名だけ文字列抽出します。
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,LEN(CELL("filename",A1)))
①シート名までのフルパスを抽出対象とします。
②ブック名末尾の”]”から後ろを取得します。(FIND(“]”,CELL(“filename”,A1))+1)
③全桁数分取得対象とします。(LEN(CELL(“filename”,A1)))
③は本当なら”]”より後ろの文字列を算出しないと正しくはないですが、シート名より後ろは何もないのでフルパス桁数分の数値をいれてしまって問題ないと思います。
⇒「Sheet1」と表示
まとめ
エクセルを使う場合、CELL関数を使うことがちょこちょこ多い気がします。
“filename”以外だと”address”とかをindirect関数と併用したり。
なので覚えておいて損はない、、、はず。
コメント