小技集

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



2025年1月22日【ID:0】

【Excel】表の一番右側のデータを自動抽出


以下の表は、各商品の価格をまとめた表になります。

価格が改定される度、表の右側に改定後の価格を登録する想定になります。
この表から、以下のように最新価格(表の一番右側の価格)を自動で抽出する数式の作成方法について解説していきます。


手順1: 抽出方法

こちらでは、VLOOKUP関数COUNTA関数を組み合わせて最新の価格を抽出していきます。
まずは、VLOOKUP関数から順番に解説していきます。


手順2: VLOOKUP関数の基本設定

VLOOKUP関数の使い方は、以下になります。

=VLOOKUP(検索値, 範囲, 列番号, [検索方法])
// 指定した[範囲]から[検索値]で検索し、該当するデータの指定した[列番号]の位置にある項目値を返す
// [検索値]で検索する項目は、指定した[範囲]の一番左側の項目である必要がある
// [検索方法]で抽出する条件を指定する(TRUE:近似一致(省略時)、FALSE:完全一致)

実際に活用して、最新の価格(4列目)を抽出する場合の数式は、以下になります。

=VLOOKUP(B4,$B$13:$XFD$16,4,FALSE)
// B4: 検索する商品名が入力されているセル
// $B$13:$XFD$16: 商品別価格表の範囲(「$」で固定)
// 4: 最新価格がある列番号(仮設定)
// FALSE: 完全一致で検索

最新価格の列の位置が固定の場合は、上記のような数式で、最新価格を抽出することができます。


手順3: COUNTA関数の組み合わせ

先ほどの数式のままですと、価格が追加された際に、最新価格を抽出することができなくなります。

そのため、COUNTA関数を用いて、常に最新の価格が抽出されるように修正します。
COUNTA関数の使い方は、以下になります。

=COUNTA(値1, [値2], [値3], …)
// 指定した[値]の中で空でない値の数を返す

COUNTA関数を活用することで、動的な列番号を取得することができます。
VLOOKUP関数で抽出する列番号とは、今回の表の場合、改定日が入力されている、もしくは今後入力される範囲(セルC12からセルXFD12)内で値が入力されているセルの数に1を加えた数になります。

実際に列番号を抽出する場合の数式は、以下のようになります。

=COUNTA(C12:XFD12)+1
// C12:XFD12:改定日の範囲

こちらの数式をVLOOKUP関数に組み合わせると、以下のようになります。

=VLOOKUP(B4,$B$13:$XFD$16,COUNTA($C$12:$XFD$12)+1,FALSE)
// COUNTA($C$12:$XFD$12)+1:列番号の取得(「$」で固定)

このように、先頭の商品に関して、最新価格を抽出することができました。

手順4: 数式のコピー

最後に、先頭に入力した数式を下の行までコピーすることで、以下のように、各商品に対して、最新価格を自動で抽出することができます。

関数を組み合わせることによって、実現できることが大幅に広がります。
ぜひ試してみてください。


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


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





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

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


- 人気の記事 -



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



サイト累計閲覧数

4633902

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

Excel完全制覇


ちょっとした機能 便利ツール

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