【Excel】CELL関数でセルの情報を取得!Excelの列番号・ファイル名・書式を数式で調べる方法

【Excel】CELL関数でセルの情報を取得!Excelの列番号・ファイル名・書式を数式で調べる方法
🛡️ 超解決

ExcelのCELL関数を使えば、セルの様々な情報を数式で取得できます。例えば、特定のセルの列番号やファイル名、シート名、さらにはセルの書式設定まで調べることが可能です。これらの情報は、複雑な表の管理や、特定の条件に基づいて動的に表示を切り替えたい場合に役立ちます。この記事では、CELL関数の使い方と、具体的な活用例を解説します。

CELL関数は、指定したセルの属性情報を文字列または数値で返します。どのような情報を取得できるかは、引数で指定する「情報種別」によって決まります。この関数を使いこなすことで、Excel作業の効率化や、より高度なデータ管理が可能になります。それでは、CELL関数で取得できる情報種別と、それぞれの使い方を見ていきましょう。

ADVERTISEMENT

CELL関数で取得できる情報種別と基本構文

CELL関数は、以下の構文で使用します。

CELL(情報種別, [セル])

情報種別には、取得したいセルの属性を示す文字列を指定します。セルは省略可能で、省略した場合は、数式が入力されているセルが対象となります。省略せず指定した場合は、そのセルの情報が取得できます。

情報種別として指定できる文字列は、以下の通りです。

取得できる情報種別一覧

CELL関数で指定できる主な情報種別は以下の通りです。それぞれ、どのような情報を取得できるか確認しておきましょう。

情報種別 説明 返り値の例
“address” セルの番地(例: “$A$1”) “$A$1”
“col” セルの列番号(例: 1) 1
“row” セルの行番号(例: 1) 1
“filename” ファイル名(パスを含む) C:\Users\…\Book1.xlsx
“pathname” ファイル名(パスなし) Book1.xlsx
“sheet” シート名 Sheet1
“protect” シートが保護されているか(保護されている場合は 1、されていない場合は 0) 0
“formulatext” セルの数式(例: “=SUM(A1:A10)”) =SUM(A1:A10)
“color” セルの文字色が赤の場合 1、そうでなければ 0 0
“contents” セルの内容(数式の結果) 100
“prefix” セルの文字列配置(左揃えは “L”、右揃えは “R”、中央揃えは “C”、均等割りは “”、両端揃えは “”) L
“width” セルの幅 8.43
“height” セルの高さ 15
“parentheses” セルの数値が括弧で囲まれている場合 1、そうでなければ 0 0

これらの情報種別をCELL関数の第一引数に指定することで、セルの詳細な情報を取得できます。特に “filename” や “sheet” は、複数のブックやシートを扱う際に、現在の状況を把握するために便利です。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

CELL関数を使った具体的な活用例

CELL関数は、単にセルの情報を取得するだけでなく、他の関数と組み合わせることで、より高度な処理が可能になります。ここでは、いくつかの具体的な活用例を紹介します。

1. 現在のファイル名やシート名をセルに表示する

Excelファイル名やシート名を数式で取得し、シート上に表示させたい場合があります。例えば、レポートのフッターにファイル名とシート名を表示させることで、どのファイル・シートの情報か一目でわかるようになります。

ファイル名を表示する手順

  1. ファイル名を表示したいセルを選択する
    例として、シートのA1セルにファイル名を表示させます。
  2. 以下の数式を入力する
    A1セルに「=CELL(“filename”)」と入力します。
  3. Enterキーを押す
    数式が確定され、ファイル名(フルパス)が表示されます。

この数式は、ファイルが保存されていない場合は空文字列を返します。また、ファイル名部分だけを表示したい場合は、MID関数やFIND関数などと組み合わせて、パス部分を除外する必要があります。

シート名を表示する手順

  1. シート名を表示したいセルを選択する
    例として、シートのA2セルにシート名を表示させます。
  2. 以下の数式を入力する
    A2セルに「=CELL(“sheet”)」と入力します。
  3. Enterキーを押す
    数式が確定され、現在のシート名が表示されます。

CELL関数の “filename” 情報種別は、シート名も含まれるため、シート名だけを取得するには、ファイル名からシート名を抽出する処理が必要です。例えば、以下の数式でシート名のみを取得できます。

=MID(CELL(“filename”),FIND(“[“,CELL(“filename”))+1,FIND(“]”,CELL(“filename”))-FIND(“[“,CELL(“filename”))-1)

2. セルの列番号・行番号を数式で取得する

特定のセルの列番号や行番号を知りたい場合に、CELL関数が役立ちます。これは、配列数式を作成する際や、行・列のオフセットを計算する際に便利です。

列番号を取得する手順

  1. 列番号を取得したいセルを選択する
    例として、シートのB1セルに、同じくB1セルの列番号を表示させます。
  2. 以下の数式を入力する
    B1セルに「=CELL(“col”,B1)」と入力します。
  3. Enterキーを押す
    数式が確定され、B1セルの列番号である「2」が表示されます。

行番号を取得する手順

  1. 行番号を取得したいセルを選択する
    例として、シートのC1セルに、同じくB1セルの行番号を表示させます。
  2. 以下の数式を入力する
    C1セルに「=CELL(“row”,B1)」と入力します。
  3. Enterキーを押す
    数式が確定され、B1セルの行番号である「1」が表示されます。

これらの列番号や行番号は、MATCH関数やOFFSET関数などと組み合わせて、動的な範囲参照を作成する際に応用できます。

3. セルの書式設定(数値形式、配置など)を確認する

CELL関数は、セルの書式設定に関する情報も取得できます。例えば、セルの数値形式が日付になっているか、文字列として扱われているかなどを、数式で確認することが可能です。

セルの内容(書式)を確認する手順

  1. 書式を確認したいセルを選択する
    例として、シートのD1セルに、同じくD1セルの書式情報(内容)を表示させます。D1セルには「123」という数値が入力されているとします。
  2. 以下の数式を入力する
    D1セルに「=CELL(“contents”,D1)」と入力します。
  3. Enterキーを押す
    数式が確定され、D1セルの内容である「123」が表示されます。

この “contents” 情報種別は、セルの値そのものを返します。数値、文字列、日付など、セルの入力内容によって返される値が変わります。

セルの配置を確認する手順

  1. 配置を確認したいセルを選択する
    例として、シートのE1セルに、同じくE1セルの配置情報(文字列配置)を表示させます。E1セルは左揃えになっているとします。
  2. 以下の数式を入力する
    E1セルに「=CELL(“prefix”,E1)」と入力します。
  3. Enterキーを押す
    数式が確定され、E1セルの文字列配置を示す「L」(左揃え)が表示されます。

文字列配置は、左揃えが “L”、右揃えが “R”、中央揃えが “C” で返されます。この情報を利用して、特定の配置になっているセルに対して条件付き書式を適用するなどの応用が可能です。

4. シートの保護状態を確認する

シートが保護されているかどうかを数式で判定できます。これは、マクロでシートの保護・解除を自動化する際などに、現在の状態を確認するために利用できます。

シート保護状態を確認する手順

  1. 保護状態を確認したいシートの任意のセルを選択する
    例として、シートのF1セルに、現在のシートの保護状態を表示させます。
  2. 以下の数式を入力する
    F1セルに「=CELL(“protect”)」と入力します。
  3. Enterキーを押す
    数式が確定されます。

シートが保護されている場合は「1」が返され、保護されていない場合は「0」が返されます。この数値を利用して、IF関数と組み合わせることで、「シートが保護されている場合はメッセージを表示する」といった処理を記述できます。

CELL関数と関連する関数

CELL関数で取得できる情報は、他の関数と組み合わせることで、さらに強力な機能を発揮します。ここでは、CELL関数と特に関連性の高い関数を紹介します。

CELL関数とINFO関数の違い

CELL関数と似た機能を持つ関数にINFO関数があります。INFO関数は、Excelの実行環境に関する情報を返しますが、CELL関数は特定のセルの属性に特化しています。

項目 CELL関数 INFO関数
主な用途 特定のセルの属性情報(番地、列番号、ファイル名など)を取得 Excelの実行環境情報(OSの種類、Excelのバージョン、メモリ使用量など)を取得
引数 情報種別(文字列)、セル(省略可) 情報種別(文字列)
返り値 文字列または数値 文字列または数値

INFO関数は、例えば “osversion” でOSのバージョンを取得したり、”numfile” で開いているブックの数を取得したりできます。CELL関数が個々のセルに焦点を当てるのに対し、INFO関数はExcel全体やシステムに関する情報を提供します。

ファイルパス・シート名抽出の応用

CELL(“filename”) はファイル名全体(フルパス)を返しますが、ファイル名部分だけ、あるいはシート名だけを抽出したい場面は多いです。その際には、文字列操作関数であるLEFT、RIGHT、MID、FIND、SEARCHなどを組み合わせて使用します。

例えば、ファイル名部分のみを抽出するには、以下の数式が考えられます。

=MID(CELL(“filename”),FIND(“[“,CELL(“filename”))+1,LEN(CELL(“filename”))-FIND(“[“,CELL(“filename”))-1)

この数式は、CELL(“filename”) が返す文字列から、まず “[” の位置を探し、その後の文字列を抽出しています。LEN関数で全体の長さを取得し、FIND関数で “[” の位置を特定することで、ファイル名部分だけを正確に抜き出すことができます。

INDIRECT関数との連携

CELL関数で取得したセルの番地情報(“address”)や列番号(“col”)、行番号(“row”)は、INDIRECT関数と連携させることで、動的に参照するセルを変更するのに役立ちます。

例えば、A1セルの値を知りたい場合に、B1セルに「A1」と入力しておき、C1セルに「=INDIRECT(B1)」と入力すると、C1セルにはA1セルの値が表示されます。さらに、CELL(“col”)などで動的に取得した列番号や行番号をINDIRECT関数に渡すことで、参照するセルを数式で制御することが可能になります。

ADVERTISEMENT

CELL関数利用時の注意点

CELL関数は非常に便利ですが、利用する上でいくつか注意すべき点があります。これらの点に留意することで、意図しない結果になることを防ぐことができます。

ファイルが保存されていない場合

CELL関数で “filename” や “pathname”、”sheet” などのファイルやシートに関連する情報を取得しようとした場合、ファイルがまだ保存されていない状態では、これらの情報種別は空文字列(“”)を返します。ファイルが保存されていないブックでこれらの関数を使用すると、期待通りの結果が得られないため注意が必要です。必ず一度ファイルを保存してから使用してください。

再計算のタイミング

CELL関数は、Excelの再計算時に値が更新されます。手動計算に設定している場合、明示的に再計算を実行しないと、CELL関数の値は最新の状態にならないことがあります。例えば、ファイル名を変更した場合、Excelを再起動しないとCELL(“filename”) の値が更新されないことがあります。

自動計算が有効な場合は通常問題ありませんが、手動計算にしている場合は、F9キーを押すか、数式タブの「今すぐ再計算」を実行して、CELL関数の値を更新してください。

情報種別 “color” の制限

CELL関数の “color” 情報種別は、セルの文字色が赤色かどうかのみを判定します。セルの背景色や、赤色以外の文字色については判定できません。また、条件付き書式によって文字色が赤色になっている場合も、「0」を返すことがあります。文字色が赤かどうかを厳密に判定したい場合は、VBA(Visual Basic for Applications)を使用する必要があります。

Excel 2019・2021との互換性

CELL関数は、Excelの初期バージョンから存在する標準的な関数です。そのため、Excel 2019、Excel 2021、Microsoft 365など、ほとんどのExcelバージョンで問題なく利用できます。バージョンによる機能の差異はありません。

まとめ

【要点】CELL関数でセルの属性情報を取得し、Excel作業を効率化

  • CELL(“filename”): 現在開いているExcelファイルのフルパスを取得し、ブックの管理に役立てる。
  • CELL(“col”), CELL(“row”): セルの列番号・行番号を取得し、配列数式や動的な範囲参照の基盤とする。
  • CELL(“sheet”): 現在アクティブなシート名を取得し、シートの特定やレポート作成に活用する。
  • CELL(“contents”), CELL(“prefix”): セルの値や文字列配置を確認し、条件に応じた処理や表示の制御を行う。

CELL関数を利用することで、セルの番地、列番号、行番号、ファイル名、シート名、さらにはセルの内容や書式設定といった詳細な情報を数式で取得できます。これらの情報を活用することで、Excelファイルの管理が容易になり、より高度で動的なワークシートを作成することが可能になります。ファイルが保存されていない状態での利用や、再計算のタイミングに注意しながら、ぜひCELL関数を様々な場面で活用してみてください。

📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】