ピボットテーブルとVLOOKUP関数を組み合わせて使う【Excelの応用】

midSun31midSun31
IT・デジタル

ピボットテーブルはExcelの便利な機能ですよね。VLOOKUPと組み合わせることで、ピボットテーブルの値の種類を増やしたり、レイアウトの弱点を補ったりといった使い方ができます。

この記事では、Excelの応用例としてピボットテーブルとVLOOKUP関数を組み合わせて使う方法をご紹介します。

ピボットテーブルとVLOOKUP関数を組み合わせて使う

ピボットテーブルの値の種類を増やす

VLOOKUP関数を利用して、複数の表でピボットテーブルを作成します。

例えば、売上表をもとに作成された次のようなピボットテーブルがあるとします。売上表は、日付と商品番号、売上数を記録したデータです。

上記の例では、ピボットテーブルで日付別・商品番号別に販売件数の分析をすることはできますが、売上金額は出せません。

売上金額をピボットテーブル上に表示するには、次のようにVLOOKUP関数を組み合わせます。

  1. 売上表に「売上金額」の列を追加して、追加した列に以下のようにVLOOKUP関数を用いて商品表から商品の単価を取得する数式を入力します。
  2. VLOOKUPで取得した「商品単価」と「売上数」を乗算して売上金額を計算する数式に変更します。
  3. VLOOKUPの検索範囲を絶対参照で固定して、売上表の列全てに数式をコピーします。
  4. ピボットテーブルを再作成します。売上表のデータセルをどこでもいいのでクリックして、「挿入」リボン→「ピボットテーブル」の順にクリックします。
  5. ピボットテーブルの作成ダイアログが表示されるので、データ範囲に問題がないことを確認して「OK」をクリックします。
  6. 売上金額を組み合わせられるピボットテーブルが作成できました。「値」に「売上金額」を追加することで日別・商品別で分析することができます。

最初の例では、ピボットテーブルだけでは売上数の合計までしか出せませんでした。使いたい値をVLOOKUP関数で取得することで、ピボットテーブルだけで表示できなかった値を使うことができます。

この使い方がピボットテーブル+VLOOKUP関数の組みあわせで最もメジャーなのではないかと思います。

ピボットテーブルのレイアウトを変更する

ピボットテーブルは簡単に表を作成できる便利な半面、次のようなデメリットがあります。

  • ソートが若干面倒
    昇順・降順以外のソート順を指定する場合、手動でドラッグ&ドロップする必要があります。
  • 数値が入っていないデータが表示できない
    商品ごとの売上を表示する場合、売上がない商品は一覧に表示されません。
  • セルを部分的に移動できない
    セル自体に数式が入っているわけではないため、個別にセルを離したりすることができません。
  • 計算式を変更できない
    部分的に計算式を変更することができません。

上記のピボットテーブルの不便な点は、VLOOKUP関数を使うことでカバーすることができます。

具体的には、値の表示はVLOOKUP関数でピボットテーブルから参照することで、通常のエクセルのセルのままピボットテーブルのデータを使うことができます。

例えば、次の商品の売上金額のピボットテーブルがあるとします。

上記のピボットテーブルのデータをVLOOKUP関数を利用して、通常のセルで参照できるようにします。

  1. 別シートにVLOOKUP用のフォーマットを作成します。
  2. 値を表示したいセルに、VLOOKUP関数を使って検索範囲をピボットテーブルにして値を取得する数式を入力します。
    • 例では、検索値には商品名、参照範囲にはピボットテーブルの範囲、列番号はピボットテーブルから取得したい列番号を設定しています。
    • すべてのセルに数式をコピーするため、ピボットテーブルの範囲は絶対範囲で指定しています。
  3. 数式を他セルにコピーします。
  4. ピボットテーブルに商品名がないデータは、エラーが表示されます。見辛い場合は、各セルの数式にIFERROR関数を追加して「0」を表示させます。
    =VLOOKUP(フォーマット!B4,ピボットテーブル!$A$4:$B$8,2,FALSE)
     ↓ 訂正後
    =IFERROR(VLOOKUP(フォーマット!B4,ピボットテーブル!$A$4:$B$8,2,FALSE),0)
  5. ピボットテーブルの値を作成したフォーマットに表示することができました。

上記のように、ピボットテーブルのデータをVLOOKUP関数で取得することで、通常のセルと同じ使い方ができるようになります。

以上、ピボットテーブルとVLOOKUP関数を組み合わせて使う方法でした。

IT・デジタル
Howpon[ハウポン]

コメント