以下の表は、商品の価格を管理したものです。
最新の価格を末尾に追加することで、各商品の価格の推移を管理しています。
この表から、数式だけで各商品の最新価格を抽出する方法について解説していきます。
※こちらで作成したファイルは、記事の最後にて配布しています。
今回紹介する数式を使えば、今後の更新も一切不要です。
1. テーブル化
数式を入力する前に、表のデータの増減に簡単に対応するため、対象の表を「テーブル」に変換します。
まずは、表の中にカーソルを移動させ、[挿入]タブから[テーブル]を選択します。
指定されている範囲が正しいことを確認し、表の先頭行が見出し行のため、[先頭行をテーブルの見出しとして使用する]にチェックした状態で確定します。
テーブルに変換すると、以下のようにデザインが変わってしまいます。
デザインは、[テーブルデザイン]タブの[テーブルスタイル]から簡単に変更することができます。
こちらでは、元の書式を生かすため、[テーブルスタイル]を[なし]にします。
フィルターボタンが不要な場合は、フィルターボタンのチェックを外しておきます。
次に、テーブル名を変更します。
テーブル名は[テーブルデザイン]タブから変更できます。
こちらでは「価格一覧」にしています。
以上の手順で、テーブルの完成です。
2. 数式の入力
次は、数式の入力です。
最新価格を表示する用の表の見出しは、数式ではなく直接用意しておきます。
見出しの用意ができたら、数式を入力していきます。
まずは、テーブルの商品名から重複を除いた一覧を数式で作成します。
指定した範囲から重複を除外するには、UNIQUE関数が便利です。
UNIQUE関数を活用する場合、以下のように入力します。
=UNIQUE(価格一覧[商品名])
数式を入力することで、以下のように商品名一覧を抽出できます。
テーブルの範囲は、構造化参照という特殊な参照方法で指定できます。
構造化参照については、以下で詳しく解説しています。
>構造化参照とは
次は、各商品の最新価格を抽出します。
まずは、先頭の「消しゴム」の最新価格のみを抽出していきます。
商品名が指定した値と一致する行の末尾の価格のみを抽出する場合は、XLOOKUP関数が便利です。
XLOOKUP関数を活用する場合、以下のように入力します。
=XLOOKUP(F3,価格一覧[商品名],価格一覧[価格],,,-1)
// F3:検索値
// 価格一覧[商品名]:検索範囲
// 価格一覧[価格]:抽出範囲
// (省略):見つからない場合
// (省略):一致モード(省略時は完全一致)
// -1:検索モード(「-1」は末尾から先頭へ検索)
数式を入力することで、以下のように最新価格を抽出できます。
他の行の商品も一括で抽出する場合は、XLOOKUP関数の検索値に商品名一覧の全体を指定します。
商品名一覧は1つの数式により展開されています。
そのような数式で展開されている範囲は、数式が入力されているセルに「#」を加えることで、全体を指定できます。
=XLOOKUP(F3#,価格一覧[商品名],価格一覧[価格],,,-1)
数式を入力することで、以下のように各商品の最新価格を一括で抽出できます。
3. 完成
以上の手順で完成です。
テーブルにデータを追加すると、自動でテーブルの範囲が拡張されます。
そのため、数式を更新する必要がなく、継続的に活用することができます。
▼サンプルファイル▼