小技集

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ



2025年9月9日【ID:0】

【Excel】複数行1データの表から数式で検索&抽出

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


まず前提として、可能ならば1行1データの表に変換した方が良いです。
しかし、いろんな理由(入力しやすさ、見やすさなど)で、以下のような複数行1データの表で管理することがあります。

このような複数行1データの表から、特定の項目で検索して値を抽出する方法について、以下の表の「会員番号」で検索し、「氏名」を抽出する数式を例に解説していきます。


1. 法則性を見つける

理想の値を抽出するためには、まずは法則性を見つける必要があります。

以下の表の場合は、次のような法則性があります。

・「会員番号」の下のセルが「氏名」

そのため、該当する「会員番号」の行番号が分かれば、その1つ下の行番号の、同じ列のセルの値を抽出すれば良いです。

ExcelVBAレベル確認

2. 対象の行番号を取得する

特定の値が入力されているセルの行番号を取得するには、MATCH関数が便利です。
MATCH関数を使った以下のような数式で、行番号を取得することができます。

=MATCH(F3,C:C,0)
// F3:検索値
// C:C:検索範囲
// 0:検索方法(完全一致)
// 指定した「検索範囲」の先頭から指定した「検索値」と完全一致する値の位置情報を返す

上記では、「C:C」と列全体を指定していますが、表の先頭からの相対的な行番号でも問題ないです。
表の先頭からの相対的な行番号を取得する場合、以下のような数式になります。

=MATCH(F3,C4:C21,0)

3. 指定した行番号のセルの値を取得する

次は、先ほど取得した行番号に1を加えた行番号の、同じ列のセルの値を抽出します。

指定した範囲の相対的な行番号のセルの値を抽出するには、INDEX関数が便利です。
先ほど抽出した行番号に1を加えた行番号に位置するセルの値を抽出する場合、以下のような数式になります。

=INDEX(C4:C21,G3+1)
// C4:C21:抽出対象となる範囲
// G3+1:指定した範囲から抽出する値の位置情報
// 指定した「抽出対象となる範囲」の先頭から指定した「位置情報」の位置にある値を返す

ちなみに、考え方によっては、MATCH関数で取得した行番号に1を加えなくても、相対的な範囲を1つ下に移動することでも抽出することができます。

=INDEX(C5:C21,G3)

ただ、前者の以下の数式の方が直感的に分かりやすく感じます。(好みに合わせてください)

=INDEX(C4:C21,G3+1)

最後に、MATCH関数の数式とINDEX関数の数式を、以下のように組み合わせることで完成です。

=INDEX(C4:C21,MATCH(F3,C4:C21,0)+1)

4. まとめ

今後の保守を考えると、データを管理する表は1行1データに揃えた方がよいです。
しかし、一時的な表や見やすさを重視した表で、集計する必要のない表の場合は、今回のような複数行1データの表で管理しても問題になることは少ないです。

そのような表形式を保ったまま、特定の値を検索&抽出する際は、今回のように法則性を見つけることが大切になります。
※法則性がない場合は、数式での抽出は困難です。

ぜひ試してみてください。


パソコンで開く場合は、記事の最後に「リンクコピー」があるためご活用ください。

※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。


メンバー募集 メンバー募集





リンクの共有はこちらから行えます。

  リンクコピー    X Facebook はてなブックマーク Pocket
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



- メンバー限定 [一覧] -



サイト累計閲覧数

7149002

有料動画講座
(買い切り)

Excel完全制覇


ちょっとした機能 便利ツール
【小技集】

【Excel】値を変えずに千の位以上を表示

【Excel・Googleスプレッドシート】マウスで横方向へスクロール

【Excel】PHONETIC関数の結果を「ひらがな」にする

【Excel】連動したドロップダウンリスト

【Excel】8桁の数値の日付を日付形式に変換

【Excel】英単語のスペルチェック機能

【Word】指定した範囲内を全角文字に統一

【Word】「表記ゆれ」を瞬時に修正する方法

【Excel】PDFファイルを読み込む方法

【ExcelVBA】ActivateとSelectの違い

【Excel】未割当の行を自動で色付け

【Excel】同じ日付が一定間隔で続く予定表を効率的に作成

【ExcelVBA】表の先頭にデータを追加する機能(ノーコード)

【Excel】分表記を時刻表記(時:分)に変換

【Excel】勤務日数を瞬時に求める

【ExcelVBA】削除したデータを別シートに記録

【Word】文頭のアルファベットが自動で大文字になる

【Excel】グラフのラベルテキストを改行する

【Excel】最初に覚えるべき集計関数(7選)

【Excel】複数の目標値を自動で計算「ソルバー」

【ExcelVBA】ダブルクリックで塗りつぶしとリセットを繰り返す

【Excel】誤って上書き保存しないための対策

【Excel】テスト用の数値データを瞬時に入力

【Excel】数式を短く表現する

【ExcelVBA】誤操作防止!実行ボタンを押したときに確認画面を表示する





一覧ページへ

トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ