曜日ごとに集計する:エクセル練習問題


スポンサードリンク

更新:2025/9/17;作成:2017/3/27

問題   topへ

問題1の解答例    topへ

GROUPBY関数を使って求める FILTER関数を使って求める
SUMPRODUCT関数を使って求める 配列数式で計算する
作業列を利用して計算する ピボットテーブルを使って集計する

GROUPBY関数を使って計算する

  1. GROUPBY関数はExcel for Microsoft365で利用できます。
    =GROUPBY(TEXT(B3:B21,"aaaa"),C3:C21,SUM,,0)
    と入力します。
    一応、曜日ごとに合計が計算できましたが、曜日の並びが文字コード順に並んでいます。
  2. 月曜日〜日曜日 の順番にしたいと思います。
    配列を WEEKDAY(B3:B21,2) で作成します。Weekday関数で 日付の曜日を1〜7の数値に計算します。
    この配列をHSTACK関数でB列に付け足します。
    HSTACK関数は Excel2024から使用できます。
    D3セルに
    =GROUPBY(
    HSTACK(WEEKDAY(B3:B21,2),TEXT(B3:B21,"aaaa")),
    C3:C21,SUM,,0)
    と入力します。
  3. E列の数値が邪魔なので Drop関数で削除します。
    DROP関数は Excel2024から使用できます。
    E3セルに
    =DROP(
    GROUPBY(
    HSTACK(WEEKDAY(B3:B21,2),TEXT(B3:B21,"aaaa")),
    C3:C21,SUM,,0),,1)
    と入力しました。合計を表示しない設定にしています。

FILTER関数を使って計算する

SUMPRODUCT関数で計算する

配列数式で計算する

作業列を利用して計算する

  1. 作業列に曜日を書き出します。
    E列の曜日と同じスタイルにするため D3セルの数式は =TEXT(B3:B21,"aaaa") としました。
    Excel2019以前のバージョンでは=TEXT(B3,"aaaa") と入力して、下方向へ数式をコピーします。
  2. 条件付きの合計計算になりますので、SUMIF関数が使用できます。
    Excel for Microsoft365,Excel2021以降でスピルが利用できるバージョンでは、
    F3セルに =SUMIF(D3:D21,E3:E9,C3:C21) と入力します。
    Excel2019以前のスピルが使用できないバージョンでは
    =SUMIF($D$3:$D$21,E3,$C$3:$C$21) と入力して、下方向へ数式をコピーします。

ピボットテーブルを使って曜日ごとに集計する

  1. 作業列に =TEXT(B3:B21,"aaaa") と入力して、曜日を表示します。
  2. セル範囲 B2:D21を選択します。
    [挿入]タブの[ピボットテーブル]を実行します。
  3. ピボットテーブルの作成ダイアログボックスが表示されます。
    テーブル/範囲に B2:D21 が設定されているのを確認します。
    ピボットテーブルを配置する場所を選択してください。で「既存のワークシート」にチェックを入れて、セルを指定します。
  4. フィールドを下図のように、行に「作業列」、Σ値に「合計/販売金額」をドラッグして設定します。
    曜日ごとに集計ができました。
    • Σ値で「個数/販売金額」など合計でない場合はピボットテーブルのフィールドを右クリックして、リストから[値の集計方法]→[合計]をクリックします。
    • セルの表示形式は[値フィールドの設定]をクリックします。
      フィールドの設定ダイアログで表示形式を設定することができます。


  5. 計算結果が表示されました。

問題2の解答例    topへ

FILTER関数+WeekDay関数を使って計算する

FILTER関数+TEXT関数を使って計算する

  1. まず、土日の合計を求めます。(条件が少ないので)
    F4セルに =SUM(FILTER(C3:C21,(TEXT(B3:B21,"aaaa")="土曜日")+(TEXT(B3:B21,"aaaa")="日曜日"))) と入力します。
  2. 月〜金はすべての合計から土日を差し引いて求めました。
    F3セルに =SUM(C3:C21)-F4 と入力しました。

作業列を使って計算しました。

  1. D列に作業列を設けました。
    D3セルに =WEEKDAY(B3:B21,2) と数式を入力しました。
    Excel2019以前では =WEEKDAY(B3,2) と入力して、下方向へ数式をコピーします。
    引数を 2 としているのがポイントです。月〜金は 1〜5 、土日は6,7 が返されるのでこの引数を使っています。
  2. 月〜金 は =SUMIF(D3:D21,"<=5",C3:C21) と作業列が 5以下のC列を合計しました。
  3. 土日は =SUMIF(D3:D21,">=6",C3:C21) と作業列が 6以上のC列を合計しました。

スポンサードリンク



Homeエクセル練習問題:目次|曜日ごとに集計する

PageViewCounter
Counter
Since2006/2/27