エクセル練習問題:クロス集計表の作成


スポンサードリンク

問題    topへ

問題1の解答例    topへ

  1. SUMIFS関数を使う

    数式の例:2条件での合計はSUMIFS関数を使うことができます。(SUMIFS関数はExcel2007以降で使用することができます) C3セルに =SUMIFS(Sheet1!$D$3:$D$10,Sheet1!$B$3:$B$10,$B3,Sheet1!$C$3:$C$10,C$2) と入力します。
    条件1の $B3 と条件2の C$2 は列または行の複合参照になります。(列または行の片方だけを固定します)
    他のセルにこの数式をコピーして完成です。
    B C D E
    2 バナナ みかん りんご
    3 井上商事 =SUMIFS(Sheet1!$D$3:$D$10,Sheet1!$B$3:$B$10,$B3,Sheet1!$C$3:$C$10,C$2) =SUMIFS(Sheet1!$D$3:$D$10,Sheet1!$B$3:$B$10,$B3,Sheet1!$C$3:$C$10,D$2) =SUMIFS(Sheet1!$D$3:$D$10,Sheet1!$B$3:$B$10,$B3,Sheet1!$C$3:$C$10,E$2)
    4 上田青果 =SUMIFS(Sheet1!$D$3:$D$10,Sheet1!$B$3:$B$10,$B4,Sheet1!$C$3:$C$10,C$2) =SUMIFS(Sheet1!$D$3:$D$10,Sheet1!$B$3:$B$10,$B4,Sheet1!$C$3:$C$10,D$2) =SUMIFS(Sheet1!$D$3:$D$10,Sheet1!$B$3:$B$10,$B4,Sheet1!$C$3:$C$10,E$2)

    C3セルに関数の引数を使って入力する場合は、合計対象範囲に Sheet1!$D$3:$D$10 、条件範囲1に Sheet1!$B$3:$B$10 、条件1に $B3 、条件範囲2に Sheet1!$C$3:$C$10 、条件2に C$2 と入力します。
  2. SUMPRODUCT関数を使う

    数式の例:Excel2003以前ではSUMIFS関数を使うことができないので、SUMPRODUCT関数を利用します。
    ただし、データ量が多くなるとファイルが重くなります。
    B C D E
    2 バナナ みかん りんご
    3 井上商事 =SUMPRODUCT((Sheet1!$B$3:$B$10=$B3)*(Sheet1!$C$3:$C$10=C$2),Sheet1!$D$3:$D$10) =SUMPRODUCT((Sheet1!$B$3:$B$10=$B3)*(Sheet1!$C$3:$C$10=D$2),Sheet1!$D$3:$D$10) =SUMPRODUCT((Sheet1!$B$3:$B$10=$B3)*(Sheet1!$C$3:$C$10=E$2),Sheet1!$D$3:$D$10)
    4 上田青果 =SUMPRODUCT((Sheet1!$B$3:$B$10=$B4)*(Sheet1!$C$3:$C$10=C$2),Sheet1!$D$3:$D$10) =SUMPRODUCT((Sheet1!$B$3:$B$10=$B4)*(Sheet1!$C$3:$C$10=D$2),Sheet1!$D$3:$D$10) =SUMPRODUCT((Sheet1!$B$3:$B$10=$B4)*(Sheet1!$C$3:$C$10=E$2),Sheet1!$D$3:$D$10)

    C3セルに関数の引数を使って入力する場合は、配列1に(Sheet1!$B$3:$B$10=$B3)*(Sheet1!$C$3:$C$10=C$2) 、配列2に Sheet1!$D$3:$D$10 と入力します。
    配列1の (Sheet1!$B$3:$B$10=$B3) と (Sheet1!$C$3:$C$10=C$2) はともに論理式なのでTRUE/FALSE が返されます。SUMPRODUCT関数ではこの論理値は 0 として扱われるので、(Sheet1!$B$3:$B$10=$B3) * (Sheet1!$C$3:$C$10=C$2) として 1/0 となるようにします。(四則演算では TRUE/FALSE は 1/0 として計算されるます。)

問題2の解答例    topへ

スポンサードリンク



よねさんのExcelとWordの使い方エクセル練習問題:目次|クロス集計表の作成