【CELL関数】使い方と解説 DL有

CELL関数は、Excelでセルの情報を取得するための便利な関数です。様々な検査の種類を指定することで、セルの参照や値、書式などの情報を取得することができます。この記事では、CELL関数の使い方や戻り値の説明、具体的な使用例を紹介しました。Excelをより効果的に活用するために、CELL関数をマスターしましょう。

本記事はCELL関数を解説します。

CELL関数はExcel 365、Excel2007移行で利用可能です。
昔から存在している関数です。

CELL関数の説明

CELL関数は、セルの情報を返します
この関数の名前「CELL」は、「CELL」(セル)の略語に由来しています。

具体的には、指定した引数に応じて、セルの情報を取得できます。
どの引数に指定すると、どのセルの情報を取得できるから、以降で解説します。

CELL関数の文法(型と引数)

CELL(検査の種類, [対象範囲])

説明:

  • [対象範囲]を、指定した検査の種類を指定し、[対象範囲]のセル情報を取得

引数:

  • 検査の種類(必須)
    • どの項目でセルを検査したいか ≒ どんな情報を取得したいかを指定
  • [対象範囲](任意)
    • 検査したいセルを指定。省略したい場合は、CELL関数を入力したセルを検査する
CELL 関数 – Microsoft サポート より改変

Excel関数のダイアログには、次のように記載されています。
本記事のケースでは、Excel関数のダイアログボックスの引数の説明は分かりづらいかもしれません。

Excel関数のダイアログの使いこなす方法は、記事末尾に記載しておきます。
※分かりやすさのために、本記事では引数名を変更することがあります。

CELL関数の文法(型と引数)
図1

検査の種類戻り値の説明

検査の種類と戻り値の説明を取りまとめた表が次表になります。
次章「CELL関数の使用例」で、検査の種類の1つずつに対して、実際のCELL関数の戻り値をお見せします。

No検査の種類戻り値の説明
1address対象範囲の左上隅にあるセルの参照
2col対象範囲の左上隅にあるセルの列番号
3color負の数を色で表す書式がセルに設定されている場合は 1。それ以外の場合は 0 (ゼロ)。
4contents対象範囲の左上隅にあるセルの値 (数式ではない)。
5filename対象範囲を含むファイルのフル パス名
 ※ 対象範囲を含むワークシートが保存されていなかった場合は、空白文字列 (“”)。
6formatセルの表示形式に対応する文字列定数。各種の表示形式に対応する文字列定数については、次の表を参照してください。 セルが負数に対応する色で書式設定されている場合、文字列定数の末尾に “-” が付きます。 正数またはすべての値をかっこで囲む書式がセルに設定されている場合、結果の文字列定数の末尾に “()” が付きます。
7parentheses正の値またはすべての値をかっこで囲む書式がセルに設定されている場合は 1。それ以外の場合は 0。
8prefixセルの “文字位置” に対応する文字列定数。 セルが左詰めの文字列を含むときは単一引用符 (‘)、右詰めの文字列を含むときは二重引用符 (“)、中央揃えの文字列を含むときはキャレット (^)、両揃えの文字列を含むときは円記号 (¥)、また、セルにそれ以外のデータが入力されているときは空白文字列 (“”) になります。
9protectセルがロックされていない場合は 0、ロックされている場合は 1。
10row対象範囲の左上隅にあるセルの行番号。
11typeセルに含まれるデータのタイプに対応する文字列定数。 セルが空白の場合は “b” (Blank の頭文字)、セルに文字列定数が入力されている場合は “l” (Label の頭文字)、その他の値が入力されている場合は “v” (Value の頭文字) になります。
12width2つのセル幅に関する情報を返す。
1つ目の情報では、セルの列幅で、整数に丸められる。
2 つ目の情報では、セルの列幅が既定値の場合は TRUE、既定値から変更した場合は FALSE です。 
表1「検査の種類と戻り値の説明を取りまとめた表」 CELL 関数 – Microsoft サポート より改変
検査の種類=formatにした場合の戻り値に関して

検査の種類=formatにした場合は、次表の戻り値が返ります。
例えば、次のCELL関数式であれば、「G」が返ります。

=CELL(“format”, “TEST”) -> G

Excel の表示形式検査の種類=formatにした場合の「CELL関数の戻り値」
全般G
0F0
#,##0,0
0F2
#,##0.00,2
$#,##0_);($#,##0)C0
$#,##0_);赤C0-
$#,##0.00_);($#,##0.00)C2
$#,##0.00_);C2-
0P0
0P2
0S2
# ?/? または # ??/??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
表2「検査の種類=formatにした場合の戻り値に関して」 CELL 関数 – Microsoft サポート より改変

CELL関数の使用例

下図から、検査の種類と戻り値の呼応表です。赤文字は、セルに入力された関数式を表しています。
尚、列「No」は、表1「検査の種類と戻り値の説明を取りまとめた表」 の列「No」と対応しています。

例えば、D17セルに、次のような関数式が入力されています。戻り値の結果は「$C$17」となります。

検査の種類に対する戻り値のすべての結果が下図です。
赤文字は、セルに入力された関数式を表しています。
尚、列「No」は、表1「検査の種類と戻り値の説明を取りまとめた表」 の列「No」と対応しています。

図2



それでは、各検査の種類に対する戻り値を一つずつ紹介します。

検査の種類=addressの場合、CELL関数の戻り値

C17には「TEST」という文字列が入力されています(図2)。

=CELL(“address”, C17) -> $C$17

検査の種類=addressの場合、CELL関数の戻り値は「$C$17」です。
検査の種類=addressは、「対象範囲の左上隅にあるセルの参照を表す文字列」 を返すためです。

検査の種類=colの場合、CELL関数の戻り値

C18には「TEST」という文字列が入力されています(図2)。

=CELL(“col”, C18) -> 3

検査の種類=colの場合、CELL関数の戻り値は「3」です。
検査の種類=colは、「対象範囲の左上隅にあるセルの列番号」 を返すためです。

検査の種類=colorの場合、CELL関数の戻り値

C19には「TEST」という文字列が入力されています(図2)。

=CELL(“color”, C19) -> 0

検査の種類=colorの場合、CELL関数の戻り値は「0」です。
検査の種類=colorは、「負の数を色で表す書式がセルに設定されている場合は 1。それ以外の場合は 0 (ゼロ)」 を返すためです。

検査の種類=contentsの場合、CELL関数の戻り値

C20には「TEST」という文字列が入力されています(図2)。

=CELL(“contents”, C20) -> TEST

検査の種類=contentsの場合、CELL関数の戻り値は「TEST」です。
検査の種類=contentsは、「対象範囲の左上隅にあるセルの値 (数式ではない)」 を返すためです。

検査の種類=filenameの場合、CELL関数の戻り値

C21には「TEST」という文字列が入力されています(図2)。

=CELL(“filename”, C21) -> C:\work[CELL.xlsx]Sheet1





検査の種類=filenameの場合、CELL関数の戻り値は「C:\work[CELL.xlsx]Sheet1」です。
検査の種類=filenameは、「対象範囲を含むファイルのフル パス名」 を返すためです。

検査の種類=formatの場合、CELL関数の戻り値

C22には「TEST」という文字列が入力されています(図2)。

=CELL(“format”, C22) -> G

検査の種類=formatの場合、CELL関数の戻り値は「G」です。
検査の種類=formatは、「セルの表示形式に対応する文字列定数 」 を返すためです。
「 セルの表示形式に対応する文字列定数 」は表2「検査の種類=formatにした場合の戻り値に関して」 を確認ください。

検査の種類=parenthesesの場合、CELL関数の戻り値

C23には「TEST」という文字列が入力されています(図2)。

=CELL(“parentheses”, C23) -> 0

検査の種類=parenthesesの場合、CELL関数の戻り値は「0」です。
検査の種類=parenthesesは、「正の値またはすべての値をかっこで囲む書式がセルに設定されている場合は 1。それ以外の場合は 0」 を返すためです。

parenthesesは、日本語版のExcelでは正しく動作しない事例が報告されているようです。
そのため、parenthesesの使用は控えた方が良さそうです。

検査の種類= prefix の場合、CELL関数の戻り値

C24には「TEST」という文字列が入力されています(図2)。

=CELL(” prefix “, C24) ->

検査の種類= prefix の場合、CELL関数の戻り値は、空白文字列(“”)です。
検査の種類= prefix は、「セルの”文字位置”に対応する文字列定数」 を返すためです。
ここでは、セルが左詰め、右詰め、両揃えの文字列を含まれていないため、空白文字列(“”)が返ります。

検査の種類=protectの場合、CELL関数の戻り値

C25には「TEST」という文字列が入力されています(図2)。

=CELL(“protect”, C25) -> 1

検査の種類=protectの場合、CELL関数の戻り値は「1」です。
検査の種類=protectは、「セルがロックされていない場合は0、ロックされている場合は1」 を返すためです。

検査の種類=rowの場合、CELL関数の戻り値

C26には「TEST」という文字列が入力されています(図2)。

=CELL(“row”, C26) -> 26

検査の種類=rowの場合、CELL関数の戻り値は「26」です。
検査の種類=rowは、「対象範囲の左上隅にあるセルの行番号」 を返すためです。

検査の種類=typeの場合、CELL関数の戻り値

C27には「TEST」という文字列が入力されています(図2)。

=CELL(“type”, C27) -> l

検査の種類=typeの場合、CELL関数の戻り値は「l」です。
検査の種類=typeは、「セルに含まれるデータのタイプに対応する文字列定数」 を返すためです。
ここでは、セルに文字列定数が入力されている場合は”l”(Labelの頭文字)が表示されています。

検査の種類=typeの場合、CELL関数の戻り値

C28には「TEST」という文字列が入力されています(図2)。

=CELL(“width”, C28) -> 47, FALSE

検査の種類=widthの場合、CELL関数の戻り値は「47」「FALSE」の2つです。
検査の種類=widthは、「2つのセル幅に関する情報を返す」 を返すためです。

  1. 1つ目の情報では、セルの列幅で、整数に丸められる
  2.  2 つ目の情報では、セルの列幅が既定値の場合は TRUE、既定値から変更した場合は FALSE   

つまり、列幅が既定値から、列幅47に変更されているというわけです。

即利用ファイルのダウンロード

最後に

この記事では、CELL関数について解説しました。

CELL関数はセルの情報を取得するための便利な関数です。
検査の種類に応じて、セルの参照、列番号、色設定、セルの値などさまざまな情報を取得することができます。

以上でCELL関数の解説を終わります。ご質問や疑問点があればお気軽にお尋ねください。


参考記事

Excel関数を操作するための基本概念です。基本概念を理解すると、各関数の理解がより深まります。

構文に関する記事

Excel関数の引数と戻り値は何だっけ?という時に、役立つ記事です。

ダイアログボックスの使い方に関する記事

Excel関数名は何だっけ?VLOOKUP関数の使い方は何だっけ?という時に、ダイアログボックスを使うと便利です。
下記はそのダイアログボックスに関する記事です。

参照形式に関する記事

関数式をコピーする時はどうしたらいい? $マークは、どう付けたらいいだろう?
といった悩みをお持ちの方は以下をご覧ください。