大量のデータを扱うExcelでは、「ある値がどこにあるのか」を特定したい場面がよくあります。
たとえば、顧客リストから「田中」という名前がどの行にあるのか、売上データで「最高金額」が何行目にあるのかなど。
そんなときに役立つのが、「検索してセル番号を返す」関数の活用です。
Excelの標準関数を組み合わせることで、対象データの行番号・列番号・セル位置(文字列形式)を自動で取得できます。
この記事では、検索結果からセル番号を求めるさまざまな方法を、初心者にもわかりやすく解説します。
「MATCH」「CELL」「ADDRESS」などの関数を使いこなすことで、目視で探す時間をゼロにしましょう。
目次
- ✅ 「セル番号を返す」とはどういうことか?|行番号と列番号を理解する
- ✅ MATCH関数で「検索して行番号を返す」
- ・具体例:名前を検索してセル番号(行位置)を返す
- ・MATCH関数の引数を理解しよう
- ✅ COLUMN・ROW関数で列番号・行番号を取得する
- ・行番号を返す
- ・列番号を返す
- ✅ 検索結果から実際のセル位置を文字列で返す
- ・MATCH関数+ADDRESS関数で位置を文字列で取得
- ・シート名付きで表示
- ✅ CELL関数でセル情報を直接取得する
- ・MATCH+INDEX+CELLの応用例
- ✅ 検索条件を変えて複数ヒットさせる方法
- ・複数セルの位置を一括取得(FILTER関数)
- ✅ 実務での応用シナリオ
- ・1. 顧客リストから特定人物の行番号を特定
- ・2. データ更新時の位置変化を検知
- ・3. 集計表のリンクを自動生成
- ✅ よくある質問(FAQ)
- Q1. 同じ値が複数ある場合、どのセル番号が返されますか?
- Q2. 検索範囲にエラーが含まれていると動きません
- Q3. 部分一致で検索できますか?
- ✅ RPA・自動化への応用:位置取得をトリガーにする
- ✅ まとめ:検索してセル番号を返すとExcel操作が一気に効率化する
✅ 「セル番号を返す」とはどういうことか?|行番号と列番号を理解する
Excelで「セル番号を返す」とは、検索条件に合うデータの位置(行・列)を数値として取得することを指します。
例えば下のような表があるとします:
| 行 | 名前 | 地域 | 売上 |
|---|---|---|---|
| 2 | 田中 | 東京 | 50000 |
| 3 | 鈴木 | 大阪 | 40000 |
| 4 | 高橋 | 名古屋 | 35000 |
「田中」を検索してそのセル番号を返す場合、A列の「田中」は 2行目にあるため、結果は「2」となります。
この「行番号」や「列番号」を取得できれば、さまざまな応用が可能です。
たとえば:
- 該当データの位置をもとに別列の値を抽出
- データ構造を自動分析
- グラフやダッシュボードで動的に参照範囲を変更
参考:【Excel】シート内の特定のセルの検索方法
✅ MATCH関数で「検索して行番号を返す」
最も代表的な方法は、MATCH関数を使う方法です。
MATCHは「検索値が範囲の中で何番目にあるか」を返す関数です。
=MATCH(検索値, 検索範囲, [照合の型])
・具体例:名前を検索してセル番号(行位置)を返す
=MATCH("田中", A2:A10, 0)
この式は、A2:A10の範囲内で「田中」を探し、
一致するセルが範囲内で何番目にあるかを返します。
たとえば、A2:A10の3行目に「田中」があれば結果は「3」。
ただし、実際のExcel上ではA2が「2行目」なので、必要に応じて「+1」補正することでシート上の行番号を取得できます。
=MATCH("田中",A2:A10,0)+1
結果 → 「4」(田中がA4セルにある場合)
・MATCH関数の引数を理解しよう
| 引数 | 内容 |
|---|---|
| 検索値 | 探したい文字列や数値(例:"田中") |
| 検索範囲 | 探す列(例:A2:A10) |
| 照合の型 | 0=完全一致、1=以下、-1=以上(基本は0推奨) |
実務では「0(完全一致)」を使うのが最も安全です。
参考:【Excel】範囲から値を検索して隣のセルの値を取得する方法|VLOOKUP・INDEX・MATCHの使い分けガイド
✅ COLUMN・ROW関数で列番号・行番号を取得する
MATCHで検索結果の順番を取得した後に、実際の行番号や列番号を求めたい場合は、ROWやCOLUMN関数と組み合わせます。
・行番号を返す
=ROW(A4)
結果 → 4
・列番号を返す
=COLUMN(D2)
結果 → 4
(A列=1、B列=2、C列=3、D列=4)
これらをMATCH関数と組み合わせると、「どのセルがヒットしたか」を正確に数値化できます。
✅ 検索結果から実際のセル位置を文字列で返す
「セル番号を返す」と言っても、実際には「A4」「C10」などの形式で表示したいケースも多いでしょう。
その場合は、ADDRESS関数を使います。
・MATCH関数+ADDRESS関数で位置を文字列で取得
=ADDRESS(MATCH("田中",A2:A10,0)+1,1)
結果 → "A4"
解説:
MATCH("田中",A2:A10,0)→ 何行目かを求める+1→ シート上の行番号に補正ADDRESS(行番号, 列番号)→ 「A1」形式のセル位置に変換
これにより、検索結果の位置を人間がわかりやすい形で表示できます。
・シート名付きで表示
=ADDRESS(MATCH("田中",A2:A10,0)+1,1,4,TRUE,"顧客リスト")
結果 → '顧客リスト'!A4
異なるシートにデータがある場合にも位置を明確に示せます。
✅ CELL関数でセル情報を直接取得する
Excelには「セルの情報」を返すCELL関数も用意されています。
=CELL("address", A4)
結果 → $A$4
CELL関数の主な情報タイプ
| 情報タイプ | 内容 |
|---|---|
| "address" | セルの参照(例:$B$5) |
| "row" | 行番号 |
| "col" | 列番号 |
| "filename" | ファイル・シート名 |
| "type" | データの種類(b=空白、l=文字列、v=数値) |
MATCH関数と併用すると、「検索結果のセル位置を自動でCELL関数に反映」させることも可能です。
・MATCH+INDEX+CELLの応用例
=CELL("address", INDEX(A2:A10, MATCH("田中",A2:A10,0)))
結果 → $A$4
この式では、
MATCHで検索位置を求めINDEXで該当セルを指定しCELL("address")でセル参照(アドレス)を文字列として返しています。
この構成は、シンプルかつ安定して動作するおすすめの方法です。
参考:【Excel】「一致したら別のセルの値を返す」方法|IF・VLOOKUP・INDEX関数のガイド
✅ 検索条件を変えて複数ヒットさせる方法
MATCH関数は最初に一致した1件しか返しませんが、FILTER関数を使えば複数件の位置を一度に返すことができます(Microsoft 365限定)。
・複数セルの位置を一括取得(FILTER関数)
=FILTER(A2:A100,ISNUMBER(SEARCH("田中",A2:A100)))
これにより、「田中」を含むすべてのセルを抽出できます。
抽出後にROW関数を組み合わせれば、行番号一覧も生成可能です。
=FILTER(ROW(A2:A100),ISNUMBER(SEARCH("田中",A2:A100)))
結果例 → {2;7;12}
(「田中」が2行目・7行目・12行目にある)
参考:【Excel】条件に合うデータを抽出する関数|FILTER・IF・VLOOKUP徹底解説
✅ 実務での応用シナリオ
・1. 顧客リストから特定人物の行番号を特定
営業担当者が顧客リストで「田中」さんの情報を探す際に、
=MATCH("田中",顧客一覧!A:A,0)
で行番号を取得し、INDEX関数と組み合わせて住所や電話番号を自動表示することができます。
・2. データ更新時の位置変化を検知
CELL("address", ...)で抽出したセル位置を記録しておけば、次回更新時に「データが別行に移動したか」を比較できます。
特定セルの移動を監視する簡易トラッキングとしても有効です。
・3. 集計表のリンクを自動生成
=HYPERLINK("#"&ADDRESS(MATCH("東京",B2:B100,0)+1,2),"東京のデータへ")
クリックすると自動で該当セルへジャンプ。
プレゼン資料やダッシュボードでよく使われる手法です。
✅ よくある質問(FAQ)
Q1. 同じ値が複数ある場合、どのセル番号が返されますか?
→ MATCH関数は最初に一致した1つ目のみを返します。
複数の一致をすべて取得したい場合は、FILTER関数(Microsoft 365)やCOUNTIFと組み合わせた繰り返し処理が必要です。
Q2. 検索範囲にエラーが含まれていると動きません
→ MATCH関数は#N/Aなどのエラーを含む範囲では正しく動作しない場合があります。
IFERROR関数で囲むことで安全に運用できます。
=IFERROR(MATCH("田中",A2:A10,0),"該当なし")
Q3. 部分一致で検索できますか?
→ 可能です。
SEARCHまたはFIND関数とISNUMBERを組み合わせてください。
=MATCH(TRUE,ISNUMBER(SEARCH("田中",A2:A10)),0)
(配列数式の場合はCtrl+Shift+Enterで確定)
✅ RPA・自動化への応用:位置取得をトリガーにする
UiPathやPower AutomateなどのRPAツールでも、Excelのセル位置取得は自動化の核となります。
特定の文字列を検索してセル番号を返し、その結果をもとに:
- 該当セルへ入力
- 行全体を別ファイルにコピー
- 条件一致時のみ通知
など、動的な処理を実現できます。
その基礎となるのが、今回紹介した「MATCH+CELL+ADDRESS」の概念です。
関数レベルで理解しておくと、RPA構築時にも正確なロジックが作れます。
✅ まとめ:検索してセル番号を返すとExcel操作が一気に効率化する
- MATCH関数で検索位置(行番号)を取得
- ADDRESS関数でセル位置を文字列化
- CELL関数で詳細な情報を取得
- INDEX+MATCHで値を動的に抽出
- FILTERで複数ヒットも処理可能
- HYPERLINKでクリック移動も可能
- RPA化の基礎としても活用できる
「どこにあるのか?」を瞬時に特定できることは、Excel操作の中でも大きな時短効果を生みます。
これらの関数を組み合わせて、“データを探す”から“自動で見つける”へ。
毎日の作業が、驚くほどスムーズに変わります。