Excel。2列1組の表から1列置きに行方向に手早く抽出するには
<VLOOKUP+ROW関数>
先のことを考えずに、帳票をつくってみたら、そのあと、有効に使えないという表というのがあります。
例えば次のような表。
月ごとに、販売数と金額の2列1組の表ですが、2列目の金額の数値を、B8に転記したいわけです。
効率よく作業したいので、A7に店舗名を入力したら、その月の金額一覧のようにしたいわけです。
月ごとのデータを、一つずつ、コピーして貼り付けるというのでは、時間がかかってしまいます。
まして、データの件数が増えれば、手作業というわけにもいきません。
では、どのようにしたら、手早く1列置きのデータを抽出することができるのでしょうか?
このような場合、「VLOOKUP関数」を使うことで、対応することが可能です。
特に、A7の店舗名を変更したら、それに連動させる必要がありますので、VLOOKUP関数をつかうことで、手早く抽出することができます。
B8に次の数式を設定します。
=VLOOKUP($A$7,$A$3:$G$5,ROW(A1)*2+1,FALSE)
あとは、B10までオートフィルで数式をコピーすれば、4月から6月まで金額を抽出することができました。
これならば、1年分のデータでも、手早く抽出することができます。
では、VLOOKUP関数の引数を説明していきます。
検索値は、「$A$7」。
A7の店舗名を変更することで、それぞれの店舗に合わせたデータを抽出することができます。
オートフィルで数式をコピーするので、絶対参照を設定しています。
範囲は、「$A$3:$G$5」。
帳票のデータ部分を範囲選択します。
ここも、オートフィルで数式をコピーするので、絶対参照を設定します。見出し行は不要ですね。
列番号が、今回のポイントです。
「ROW(A1)*2+1」。
VLOOKUP関数の列番号は、先程「範囲」に設定したデータの左から何列目なのかという指示をするわけです。
そこで、逆にどうやったら、「3・5・7」という、一つ置きの数値を、もってくることができるのかを考えてあげればいいわけです。
オートフィルで数式を下方向にコピーするわけなので、変化があるのは、行番号です。
行番号を算出するには、「ROW関数」を使います。
2列1組なので、ROW(A1)とすれば、「1」という数値が算出できます。
オートフィルで数式をコピーすることで、5月のデータは、ROW(A2)となり「2」という数値を算出します。
この算出された結果を2倍すれば、偶数列のデータを抽出できます。
さらに、「+1」することで、奇数列である、「3・5・7」列のデータを抽出することができるという仕組みです。
引数の最後の検索方法は、完全一致なので「FALSE」と設定すれば、完成です。
このように、VLOOKUP関数をつかうことで、色々な抽出方法が見つかるかもしれませんので、試してみるといいかもしれませんね。