小技集

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



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
トップ > 小技集 > 記事
小技集一覧へ
限定コンテンツ一覧へ


- 人気の記事 -



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



サイト累計閲覧数

4346785

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

Excel完全制覇


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

【Excel】指定項目の先頭の値以外を薄くする

【Excel】カレンダーに休日を反映(VLOOKUP不要)

【Excel】文字列を並べ替えた時の順番

【Excel】ORは「+」、ANDは「*」でも表現できる!?

【Excel】商品ごとの発注単位を考慮したリスト

【ExcelVBA】ダブルクリックで値を切り替える方法

【Excel】○○IFS関数を使ってOR条件で求める

【Excel】商品ごとの販売数の合計を瞬時に集計

【Excel】日付を和暦で表示する

【Excel】締め日を考慮したカレンダーの作成方法

【Excel】深夜退社を考慮した勤務時間の求め方

【ExcelVBA】各要素のデータ行を自動で挿入

【Excel】セル内にミニグラフを作成「スパークライン」

【Excel】選択した範囲内の改行を一括削除

【Excel】一致データの先頭と末尾を抽出

【Googleスプレッドシート】表の最終行を選択するリンク

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

【ExcelVBA】マークされた行を削除する

【Excel】先頭の「0」を維持する簡単な対策

【ExcelVBA】選択セルの列幅を自動調整

【Excel】表の途中の罫線を瞬時に消す方法

【Excel】特定の値の表示非表示を切り替える

【Excel】各担当ごとにシートを分割

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

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





一覧ページへ

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