エクセルの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)
上の表の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 |
0 | F0 |
#,##0 | ,0 |
0 | F2 |
#,##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+00 | S2 |
# ?/? または # ??/?? | G |
m/d/yy または m/d/yy h:mm または mm/dd/yy | D4 |
d-mmm-yy または dd-mmm-yy | D1 |
d-mmm または dd-mmm | D2 |
mmm-yy | D3 |
mm/dd | D5 |
h:mm AM/PM | D7 |
h:mm:ss AM/PM | D6 |
h:mm | D9 |
h:mm:ss | D8 |
事例1.CELL関数でファイルの保存先(パス名)を表示させる
CELL関数の使い方はイメージできたけど、どんな時に利用したら便利か分からない人は多いはず。
ここからは、CELL関数を使った事例を5つ紹介してきます。
まず、1つ目は、CELL関数でファイルの保存先情報を表示させる方法です。
Excelファイルの保存場所をセルに表示させておくと、用紙に印刷した際、どのファイルから印刷したものか分かりやすくなります。
例えば、検査の種類「filename」を使って、以下のCELL関数を挿入します。そうすると、ファイルの場所を示す「パス名」と「ファイル名」と「ワークシート名」がセルに表示されます。
=CELL("filename",B4)
上の数式では、CELL関数の第2引数に「B4」と入力しますが、filenameを使う場合、「A1」でも「D5」でもどのセル番号でも問題ありません。
また、Outlook(アウトルック)などでメールを送付する際に、CELL関数で取得したURLを貼り付けすると、ファイルの保存先を知らせる際に便利です。
事例2.CELL関数でワークシート名を表示させる方法
下の図のB1セルのように、CELL関数の検査の種類「filename」を使って、ワークシート名をセルに表示させることができます。
シート名をセルに表示させるには、CELL関数以外にも、『MID関数』『FIND関数』の2つの関数を組み合わせて利用する必要があります。
以下の3つの関数を組み合わせた数式をどのセルでもいいので貼り付けすると、上の図のようにワークシート名が表示されます。
=MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31)
また、&演算子を用いることで、下の図のように、シート名の前後に別の文字(例:売上管理表)を追加することもできます。
以下の記事で、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関数で取得した保存先情報に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,"-")
事例5.CELL関数で表示形式が異なるセルを探す方法
CELL関数の検査の種類の「format」を利用して、表示形式が異なるセルを見つけることができます。
例えば、下の表の各セルに「-1」の数値を入力すると、フォントが赤字になるセルと、黒字のセルに分かれます。
この現象は、表示形式が特殊なセルが表内に混ざっていることが原因です。
こんな時、表示形式が異なるセルを調べるために、表の隣の空いているセルにCELL関数を検査の種類「formatd」で使用します。
=CELL("format",B2)
上記で説明したように、セルの表示形式が通貨や、特殊なユーザー定義を設定している場合は、「G」以外のコードが表示されます。
上の例では、「,0-」というコードが4つのセルで表示されているため、表示形式が異なっているセルを見つけることができます。
実際に、右クリックメニューの「セルの書式設定」画面を見ると、下の図のように、セルの表示形式が「通貨」になっていて、マイナスの数値が赤文字になる設定がされていることが分かります。