【エクセル】CELL関数の使い方。「filename」でファイル名やシート名を取得

Excelのセルの情報を取得するCELL関数の使い方

エクセルのCELL関数(セル関数)は、指定したセルの情報を表示する関数です。

例えば、Excelファイルの保存先名や、ワークシート名、行番号、列番号、表示形式などの情報を抽出することができます。

この記事では、CELL関数の使い方と、CELL関数を使った事例を5つ紹介します。

この記事で紹介すること

・CELL関数の使い方

・事例1:CELL関数でファイルの保存先を取得する

・事例2:CELL関数でワークシート名を自動で取得する

・事例3:CELL関数でExcelファイル名を自動で取得する

・事例4:CELL関数とIF関数を組み合わせる

・事例5:CELL関数で異なる表示形式のセルを探す

CELL関数の使い方

エクセルのCELL関数(読み方:セル)とは、Excelファイルの保存先名(アドレス、パス)や、ワークシート名、行番号、列番号、表示形式などのセルの情報を取得する関数です。

英語のcellがExcelのセルのことなので、機能がイメージしやすいと思います。

それでは、CELL関数の使い方を詳しく解説していきます。

CELL関数の書式と引数

CELL関数の書式(構文)と引数は、以下の通りです。

=CELL(検査の種類, 参照セル)

第1引数「検査の種類」:取得したい内容の検査コードを入力します。例えば、セル番号を取得するときは「”address”」と入力します。検査コードは、他にも”filename”、”row”など計12種類あります。(※後で詳しく紹介)

第2引数「参照セル」:セルの情報を抽出したいセル番号を選択します。(例:A1、B5)

CELL関数の引数「検査の種類」について

CELL関数の第1引数「検査の種類」は、計12種類のコード(定数)が存在します。

この検査の種類を指定することで、欲しいセルの情報を取得することができます。

検査の種類          取得できる情報(戻り値)
"address"セル番号(絶対参照で表示)
"col"セルの列番号
"row"セルの行番号
"color"色が付いているセルは”1”、それ以外は”0”
"contents"セルの値を表示。数式の場合は結果が表示。
"filename"ファイルのパス名(保存先、アドレス)
"format"セルの表示形式を表すコード ※別途紹介
"protect"ロックされているセルは”1”、されていないセルは”0”
"type"セルのデータ内容。空白セルは”b”、文字列は”I”、数値などそれ以外は”v”
"prefix"セルの文字配置を取得。左揃えは「'」、中央揃えは「^」、右揃えは「"」、
両端揃えは「\」
"width"セルの列幅。既定のフォントサイズの何文字分の列幅か数字で表示
"parentheses"数値を()で囲む書式のセルは”1”、それ以外は”0”

例えば、検査の種類「address」を使って下のCELL関数を挿入すると、B3セルのセル番号「$B$3」を取得できます。

=CELL("address",B3)

CELL関数の使い方(引数:address)
CELL関数の使い方(引数:address)

上の表のB3セルに対して、CELL関数の残りの「検査の種類」を使った結果は、以下の通りです。この中でも、「”filename”」は良く利用されます。(事例は後で紹介)

検査の種類  CELL関数の書式戻り値
"address"=CELL("address",B3)$B$3
"col"=CELL("col",B3)2
"row"=CELL("row",B3)3
"color"=CELL("color",B3)0
"contents"=CELL("contents",B3)兵庫県神戸市
"filename"=CELL("filename",B3)https://d.doc・・・
"format"=CELL("format",B3)G
"protect"=CELL("protect",B3)1
"type"=CELL("type",B3)1
"prefix"=CELL("prefix",B3)^
"width"=CELL("width",B3)16
"parentheses"=CELL("parentheses",B3)0

CELL関数の検査の種類「format」について

CELL関数の検査の種類「format」は、指定したセルの表示形式を、CELL関数専用の表示形式コードで返します。

表示形式戻り値
全般G
0F0
#,##0,0
0F2
#,##0.00,2
$#,##0_);($#,##0)C0
$#,##0_);[赤]($#,##0)C0-
$#,##0.00_);($#,##0.00)C2
$#,##0.00_);[赤]($#,##0.00)C2-
0%P0
0.00%P2
0.00E+00S2
# ?/? または # ??/??G
m/d/yy または m/d/yy h:mm または mm/dd/yyD4
d-mmm-yy または dd-mmm-yyD1
d-mmm または dd-mmmD2
mmm-yyD3
mm/ddD5
h:mm AM/PMD7
h:mm:ss AM/PMD6
h:mmD9
h:mm:ssD8
 参照先:Microsoft CELL関数

事例1.CELL関数でファイルの保存先(パス名)を表示させる

CELL関数の使い方はイメージできたけど、どんな時に利用したら便利か分からない人は多いはず。

ここからは、CELL関数を使った事例を5つ紹介してきます。

まず、1つ目は、CELL関数でファイルの保存先情報を表示させる方法です。

Excelファイルの保存場所をセルに表示させておくと、用紙に印刷した際、どのファイルから印刷したものか分かりやすくなります。

例えば、検査の種類「filename」を使って、以下のCELL関数を挿入します。そうすると、ファイルの場所を示す「パス名」と「ファイル名」と「ワークシート名」がセルに表示されます。

=CELL("filename",B4)

CELL関数を検査の種類「filename」で使う方法
CELL関数を検査の種類「filename」で使う方法

上の数式では、CELL関数の第2引数に「B4」と入力しますが、filenameを使う場合、「A1」でも「D5」でもどのセル番号でも問題ありません。

また、Outlook(アウトルック)などでメールを送付する際に、CELL関数で取得したURLを貼り付けすると、ファイルの保存先を知らせる際に便利です。

CELL関数の保存先(パス名など)をOutlookに貼り付け
CELL関数の保存先(パス名など)をOutlookに貼り付け

事例2.CELL関数でワークシート名を表示させる方法

下の図のB1セルのように、CELL関数の検査の種類「filename」を使って、ワークシート名をセルに表示させることができます。

CELL関数でワークシート名を表示
CELL関数でワークシート名を表示

シート名をセルに表示させるには、CELL関数以外にも、『MID関数』『FIND関数』の2つの関数を組み合わせて利用する必要があります。

以下の3つの関数を組み合わせた数式をどのセルでもいいので貼り付けすると、上の図のようにワークシート名が表示されます。

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

また、&演算子を用いることで、下の図のように、シート名の前後に別の文字(例:売上管理表)を追加することもできます。

CELL関数と&演算子を組み合わせてシート名と文字を表示
CELL関数と&演算子を組み合わせてシート名と文字を表示

以下の記事で、MID関数やFIND関数の役割など、ワークシート名の表示方法とその応用について詳しく紹介しているので、参考にしてください。

事例3.CELL関数でExcelファイル名を表示させる方法

事例2のテクニックを応用して、CELL関数の検査の種類「filename」を使って、Excelブック名をセルに表示させることができます。

下の『MID関数』『FIND関数』『CELL関数』を組みわせた数式を、どのセルでもいいので、貼り付けてみてください。

=MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",CELL("filename",A1))-FIND("[",CELL("filename",A1))-1)

そうすると、下の図のように、エクセルファイル名が拡張子付きで表示されます。

CELL関数を使ってエクセルファイル名をセルに表示
CELL関数を使ってエクセルファイル名をセルに表示

この数式の仕組みをカテゴリに分けると以下のようになっています。

それぞれの関数の役割は、以下のとおりです。

CELL関数で取得した保存先情報にFIND関数を使って「[」と「]」の位置を調べて、MID関数でファイル名だけを取得しています。

数式の仕組み

MID関数 ⇒指定した文字位置から指定した文字数分を取得

CELL関数 ⇒ファイルの保存先(パス名、ファイル名、ワークシート名)を取得

FIND関数&CELL関数(1つ目、3つ目) ⇒CELL関数で取得した保存先情報の「[」の位置を調べる

FIND関数&CELL関数(2つ目) ⇒CELL関数で取得した保存先情報の「]」の位置を調べる

文字を抽出するMID関数、文字位置を調べるFIND関数の使い方を詳しく知りたい方は、以下の記事を参考にしてください。

事例4.CELL関数とIF関数を組み合わせる方法

CELL関数とIF関数を組み合わせて利用することもできます。

事例を1つ紹介します。下の表のE列には、「C列の値÷D列の値」の数式が挿入されています。

しかし、D6セルとD7セルに文字が入力されているため、E6セルとE7セルの数式の結果はエラー値「VALUE!」と表示されます。

数式の結果でエラー値が発生
数式の結果でエラー値が発生

こんな時、CELL関数の検査の種類の「type」を利用します。「type」は、対象のセルが空白セルの場合は”b”、文字列は”I”、数値は”v”が取得されます。

IF関数の中に以下のCELL関数を挿入することで、D列が数値の場合は「C列の値÷D列の値」を計算し、それ以外の場合は、「-」を表示させます。

=IF(CELL("type",D3)="v",C3/D3,"-")

CELL関数とIF関数を組み合わせる方法
CELL関数とIF関数を組み合わせる方法

事例5.CELL関数で表示形式が異なるセルを探す方法

CELL関数の検査の種類の「format」を利用して、表示形式が異なるセルを見つけることができます。

例えば、下の表の各セルに「-1」の数値を入力すると、フォントが赤字になるセルと、黒字のセルに分かれます。

この現象は、表示形式が特殊なセルが表内に混ざっていることが原因です。

表示形式が異なるセルが混在
表示形式が異なるセルが混在

こんな時、表示形式が異なるセルを調べるために、表の隣の空いているセルにCELL関数を検査の種類「formatd」で使用します。

=CELL("format",B2)

CELL関数で表示形式を調べる方法
CELL関数で表示形式を調べる方法

上記で説明したように、セルの表示形式が通貨や、特殊なユーザー定義を設定している場合は、「G」以外のコードが表示されます。

上の例では、「,0-」というコードが4つのセルで表示されているため、表示形式が異なっているセルを見つけることができます。

実際に、右クリックメニューの「セルの書式設定」画面を見ると、下の図のように、セルの表示形式が「通貨」になっていて、マイナスの数値が赤文字になる設定がされていることが分かります。

CELL関数で調べたセルの表示形式を確認
CELL関数で調べたセルの表示形式を確認

-Excel(エクセル), 数式・関数