小技集

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



2024年1月8日【ID:0】

【Excel】VLOOKUP関数で効率的に抽出


VLOOKUP関数で値を抽出する際に、通常であれば、列番号を数える必要があります。
実は、ある関数を使うことで、列番号を数えずに抽出することができます。
また、その関数を使うことで、連続した項目の抽出にも活用できます。

例えば、以下の表を活用して、IDから「カテゴリー、文房具名、単価」と連続した項目の値を抽出していきます。

VLOOKUP関数の通常の使い方の場合、IDからカテゴリーを抽出すると、以下のような数式になるかと思います。

=VLOOKUP($B22,$B$3:$E$17,2,FALSE)

こちらでは、検索値の列名(B)と、表の範囲(B3:E17)を絶対参照にしています。
この状態で、隣の項目にコピーすると、恐らく同じ値が抽出されてしまいます。

この原因は、列番号に直接、値を入力しているためです。
直接入力された値は、コピーした場合も、そのまま貼り付けられてしまいます。

そのため、列番号に関しても、相対参照で移動させたいという時は、関数で表現する必要があります。

その時に活用できる関数の1つが、COLUMN関数です。


この関数の使い方は、以下の通りです。

=COLUMN([参照])
// 参照したセルの列番号を返す

この関数を活用して、表の中のカテゴリーの列番号(2)を取得するには、2列目であるB列を参照、もしくは、該当列を参照し、差分を計算することで求めることができます。

方法1
=COLUMN(B1)
→ 2

・方法2
=COLUMN(C1)-1
// カテゴリーの項目の位置(C列)から、表の開始位置までの差(1列)を引く
→ 2

実際に、方法2を活用してカテゴリーの列番号を求めた数式が以下になります。

=VLOOKUP($B22,$B$3:$E$17,COLUMN(C1)-1,FALSE)

この数式の場合、隣にコピーした際も、参照が相対参照になるため、以下のように連続した項目を抽出することができます。

連続した項目の中の一部の項目が不要な場合は、その項目を削除すると良いです。


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


メンバー募集
ExcelVBA学習ロードマップ配布 ExcelVBA学習ロードマップ配布





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

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


- 人気の記事 -



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



サイト累計閲覧数

5387608

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

Excel完全制覇


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

【Word】特定の文字を改行に置換する

【Excel】スピルを使って要素単位で自動集計

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

【Excel】REPLACE関数とSUBSTITUTE関数の使い分け

【Excel】シートを完全に非表示にする

【Excel】時間や時給からの給料を正しく計算

【Excel】指定した範囲内で列幅を自動調整

【Excel】指定の倍数で金額を求める(時間にも活用できる)

【Excel】表の途中に行を一瞬で挿入

【Excel】日付を用いた一意の番号を生成

【Excel】誰でも簡単に集計表を作成

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

【Excel】直近の退会者を表から自動抽出

【Excel】数式が入力されているセルを自動で色付けする

【Excel】連続した文字の色を自動で薄くする

【Excel】更新箇所を自動で色付け

【Excel】FILTER関数で存在しない場合に好みのデータを表示

【Excel】複数行のデータを瞬時に1列にする方法

【Excel】月単位の集計表を作成

【Excel】表の行列を入れ替えて表示する

【Excel】改行を保持しながら値を参照する

【Excel】生年月日から年齢を瞬時に求める

【Excel】直近3か月をスクロールバーで表示

【Excel】価格の下三桁を480円または980円にする

【Excel】文字列を右詰めで1つ1つの枠に割り当てる





一覧ページへ

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