いまさら聞けないExcelの使い方講座
【Excel】クロス表での集計は「スピル」にお任せ! 難しい「参照」問題を考えずに済むマル秘テク
2023年3月22日 06:55
「縦」「横」の交差するクロス表への集計をマスターしよう
一覧形式のデータから、表の左端と上部に見出しのあるクロス表へ集計するのが難しい! という意見をたまにいただきます。面倒なので数式をコピー&ペーストしてから修正している、もしくはフィルターをかけてステータスバーに表示された集計結果を直接入力しているという方も。どちらも間違いではありませんが、ぜひ自動化したい処理ですよね。
複合参照がハードルになっていると思われますが、順を追って考えればマスターできます。また、Excel 2021とMicrosoft 365のExcelをお使いの場合は「スピル」が圧倒的に便利です。今回はクロス表への集計と「スピル」を使ったテクニックを紹介します。
複合参照を利用した基本の処理
まずは「複合参照」を利用した基本の処理を考えてみましょう。ここでは、会員種別と利用時間ごとに金額を集計します。以下は会員種別が「ゴールド」、利用時間が「デイ」でフィルターをかけた状態です。
「集計する」のですから、フィルターの結果の利用金額を合計するだけです。複数条件を指定して合計する関数といえば、SUMIFS関数です。構文を復習しておきましょう。
クロス表に集計するなら[ゴールド]と[デイ]が交差するセルにSUMIFS関数を入力すれば解決です。[合計対象範囲]は利用料金、[条件範囲1]は会員種別、[条件1]はゴールド、[条件範囲2]は利用時間、[条件2]はデイとなり、以下の数式が考えられます。
=SUMIFS(D2:D11,B2:B11,"ゴールド",C2:C11,"デイ")
ただ、この数式はコピー&ペーストには向きません。[合計対象範囲]と[条件範囲1][条件範囲2]のセル範囲は絶対参照にしておきます。
=SUMIFS($D$2:$D$11,$B$2:$B$11,"ゴールド",$C$2:$C$11,"デイ")
もうひと工夫しましょう。クロス表にある会員種別と利用時間の見出しを参照して、参照方式は「複合参照」とします。
=SUMIFS($D$2:$D$11,$B$2:$B$11,G$1,$C$2:$C$11,$F2)
「G$1」と「$F2」が混乱しがちなポイントです。「G$1」はセルG1を参照して1行目を固定しています。数式を横方向(右方向)へコピーした時に列番号はずらして、縦方向(下方向)へコピーした時は行番号をずらさないという意図です。
一方、「$F2」はセルF2を参照してF列を固定しています。数式を横方向(右方向)へコピーした時に列番号はずらさず、縦方向(下方向)へコピーした時に行番号をずらす動きになります。実際に数式を入力してコピーしてみましょう。
「G$1」は「I$1」に変化していますが「$F2」はそのままですよね。縦方向(下方向)へのコピーの動作も見てみましょう。
「I$1」はそのままで「$F2」は「$F3」と変化しています。複合参照は難しく感じるかもしれませんが、行と列のどちらを固定したいか? を考えてチャレンジしてみてください。
「スピル」を利用して集計する
Excel 2021とMicrosoft 365のExcelをお使いの場合は「スピル」であっという間に集計できます。SUMIFS関数に指定するセル参照がポイントです。絶対参照も複合参照も気にしなくてOK。オートフィルでのコピーも不要です。ただし、作成したファイルを旧バージョンのExcelで利用する可能性があるなら、前述の処理を利用してください。
スピルの結果として表示されたセルの数式は「ゴースト」と呼ばれ灰色で表示されます。編集できないことを覚えておきましょう。なお、スピルの結果が表示されるセル範囲にデータが入力されているとエラーになることに注意してください。
定番の処理とあわせて「スピル」も覚えておこう
複合参照は、Excelを扱ううえで大切な考え方です。「スピル」を利用するテクニックは今後利用することが増えるでしょう。どちらもまとめて練習できるクロス表で慣れておきましょう。