- 公開日:
- 更新日:
ExcelのCELL関数の使い方|指定したセルの情報を得る
この記事では、ExcelのCELL関数の使い方についてご紹介します。
CELL関数は引数によって、対象セルの様々な情報を得ることが出来る関数です。
CELL関数の引数の詳細や、他の関数と組み合わせる方法などについてもご説明していますので、参考にしてみてください。
CELL関数とは?
CELL(セル)関数とは、Excelにおいてセルの内容や書式、位置等を調べることが出来る関数です。

例えば、上の画像ではD3セルに入力したCELL関数でB3セルに入力されたデータが何かを調べています。
B3セルは空白で何もデータが入っていないため、CELL関数の結果は「空白(Blank)」を表す「b」が表示されています。
このように、CELL関数では対象のセルに関する情報を調べることが出来ます。
CELL関数の書式
まずは、CELL関数の書式を確認していきましょう。

CELL関数は、「=CELL(検査の種類,[参照])」のように記述します。
引数を1つずつ確認していきましょう。
※引数(ひきすう)とは、Excelの関数を使用する際に必要な情報です。関数が結果を返すための判断材料とイメージしましょう。関数名の後の括弧「()」内に入力します。
第1引数(検査の種類)

1番目の引数は「検査の種類」です。この引数は必須です。対象のセルについてどんな情報を得たいかをここで指定します。
この引数には、以下のリストの「検査の種類」をダブルクォーテーションで囲んで入力することで、それぞれに対応した結果が得られます。
検査の種類 | 戻り値 |
---|---|
address | 対象範囲の左上隅にあるセル番地を表す文字列 |
col | 対象範囲の左上隅にあるセルの列番号 |
color | セルに負の数を色で表すように書式設定されている場合は「1」 それ以外の場合は「0」 |
contents | 対象範囲の左上隅にあるセルの値 |
filename | ファイルの名前 保存されていない場合は「""(空白文字列)」 |
format | セルの表示形式 |
parentheses | 正の値またはすべての値をかっこで囲む書式がセルに設定されている場合は「1」 それ以外の場合は「0」 |
prefix | セル内のデータの配置 左詰めの文字列を含むときは単一引用符「'」 右詰めの文字列を含むときは二重引用符「"」 中央揃えの文字列を含むときはキャレット「^」 両揃えの文字列を含むときは円記号「¥」 セルにそれ以外のデータが入力されているときは空白文字列「""」 |
protect | セルがロックされている場合は「1」 ロックされていない場合は「0」 |
row | 対象範囲の左上隅にあるセルの行番号 |
type | セルに含まれるデータのタイプ 空白の場合は「b(Blankの頭文字)」 文字列定数が入力されている場合は「l(Labelの頭文字)」 その他の値が入力されている場合は「v(Valueの頭文字)」 |
width | セルの幅 |
第2引数(参照)

2番目の引数は「参照」です。この引数は省略できます。どのセルから情報を得るかをセル番地で指定します。省略した場合は、CELL関数を入力したセルの情報が得られます。
CELL関数の使い方
CELL関数の使い方について、ご紹介します。
基本操作を行う
CELL関数を使って、対象セル内のデータが「空白/文字列/値」のどれかを調べる方法についてご説明します。

まずはCELL関数を入力します。エクセルファイルを開き、上の画像のような表を準備しましょう。【任意のセル(例:D3)】を選択し、『=CELL(』と入力します。

検査の種類の引数を入力します。今回はB3セルが「空白/文字列/値」のどれかが入力されているかを調べたいので「type」という検査の種類を入力します。「=CELL」に続いて『"type",』と入力します。

参照の引数を設定します。今回はB3セルのデータについて調べるので「"type",」に続いて『B3)』と入力し、【Enter】キーを押します。

B3セルは空白のセルなので、D3セルに空白を表す「b」が表示されました。これで、CELL関数を使って対象セル内のデータが「空白/文字列/値」のどれかを調べることが出来ました。検査の種類は「type」以外にも複数あり、それぞれに応じた情報を得ることが出来ます。その他の検査の種類については、上記「第1引数(検査の種類)」セクションをご参照ください。
条件付き書式を使用する
CELL関数の結果を使って、条件付き書式を設定することが出来ます。

今回は画像のようにC3に表示されたCELL関数の結果に応じてE3セルの背景を自動的に塗りつぶすという設定を行っていきます。

まずは上記「基本操作を行う」セクションを参考に画像のような表を作成しましょう。
今回は、CELL関数を使ってB3セルが「空白/文字列/値」のどれかを調べて、空白だった場合(つまりC3セルに「b」と表示された場合)に、E3セルの背景を自動的に塗りつぶすように設定します。
①【自動的に塗りつぶしたいセル(例:E3)】を選択します。
②【ホーム】タブ、③【条件付き書式】、④【新しいルール】の順に選択します。

「新しい書式ルール」ダイアログボックスが表示されました。
①【数式を使用して、書式設定するセルを決定】を選択します。
②「次の数式を満たす場合に値を書式設定」に『=C3="b"』と入力し、③【書式】ボタンを押します。

「セルの書式設定」ダイアログボックスが表示されます。
①【塗りつぶし】タブ、②「背景色」の【任意の色(例:緑)】を選択し、③【OK】ボタンを押します。

「新しい書式ルール」ダイアログボックスに戻ります。
【OK】ボタンを押します。

これで、CELL関数を使ってB3セルが空白だった場合にE3セルの背景を自動的に塗りつぶすように設定することが出来ました。
試しに、B3セルのデータを数値である『10』に変更し、Enterを押してみます。

B3セルのデータが数値になり、C3セルのCELL関数の結果が「v」になりました。
これによって、E3セルの塗りつぶしがなくなりました。
これで、全ての設定は完了です。
他の関数と組み合わせる
CELL関数を他の関数と組み合わせる方法について、ご説明します。
CELL関数×IF関数
CELL関数とIF関数を組み合わせると、対象のセルに数値が入力されていた場合に「数値」と表示する数式を作成できます。
IF関数の詳細については、以下の記事をご参照ください。
ExcelのIF関数の使い方|論理式の条件(IF文)によって処理を分岐
方法の詳細は以下の通りです。

まずはIF関数を入力します。
IF関数の書式は、「=IF(論理式,[値が真の場合],[値が偽の場合])」です。
エクセルファイルを開き上の画像のような表を準備します。
【任意のセル(例:D3)】を入力し、『=IF(』と入力します。

次にCELL関数を入力します。
「=IF(」に続いて『CELL("type",B3)="v",』と入力します。
「CELL("type",B3)="v"」は、「対象のセルが数値だった場合は」という意味のCELL関数です。

IF関数の真の場合の引数を設定します。
B3セルが数値の場合は「数値」と表示したいので、「CELL("type",B3)="v",」に続いて『"数値"』と入力します。

IF関数の偽の場合の引数を設定します。
対象のセルが数値以外の場合は空白にしたいので、「"数値"」に続いて『"")』と入力し、Enterを押します。

これで、CELL関数とIF関数を組み合わせた数式が完成しました。
試しにB3セルに文字列を入力して、D3セルの表示が変わるかを確かめてみます。
【データが入力された任意のセル(例:B3)】を選択して、『文字』と入力し、Enterを押します。

B3セルのデータが数値ではなく文字列になったため、D3セルが空白になりました。
これで、CELL関数とIF関数を組み合わせて、対象のセルに数値が入力されていた場合に「数値」と表示する数式が完成しました。
CELL関数とADDRESS関数について
CELL関数の「検査の種類」である「address」とADDRESS関数はどちらも対象のセルの場所を表示する関数ですが、得られる情報が少し違います。
CELL関数の「address」では「対象範囲の左上隅にあるセル番地を表す文字列」が表示されるのに対し、ADDRESS関数では「列番号と行番号をもとにして検索したセル番地を表す文字列」が表示されます。

例えば、上の画像ではCELL関数とADDRESS関数を使ってそれぞれA1セルの場所を表示しています。
CELL関数では、「A1からA5セルの中で一番左上にあるセル番地」を「=CELL("address",A1:A5)」という数式で表示しています。
ADDRESS関数では、「1行目、1列目に該当するセル番地」を「=ADDRESS(1,1)」という数式で表示しています。
用途によって関数を使い分けましょう。
ADDRESS関数の詳細については、以下の記事をご参照ください。