BI探検ノート

DAX 練習問題 21 / 31

「単価 × 数量」の合計が合わない

目的(何のためにやるか)

「単価 × 数量」を、行ごとに計算してから合計する方法を、身につけるための練習です。書き方で、合計が変わります。

状況

売上を「単価 × 数量」で出したいのに、メジャーの書き方によって、数字が変わります。2つの書き方を、同じ表に並べて比べます。

準備

  1. CSV をダウンロードします(ダミーのデータです)。
  2. Power BI Desktop で、CSV を読み込みます。やり方は、はじめかたにあります。

やること

  1. メジャー案A = AVERAGE(単価) * SUM(数量) を作る。
  2. メジャー案B = SUMX(sales_agg, 単価 * 数量) を作る。
  3. 店舗、数量の合計、案A、案B を1つの表に入れ、売上の列の合計と比べる。

まず、下を見ずに、自分でやってみてください。うまくいかなければ、ここから下の解説を、上から順に、読みながら、やってみます。

解き方(ステップごとの解説・画面つき)

  1. 案A: 単価の平均 × 数量の合計

    「新しいメジャー」で、次の式を入れました。

    案A = AVERAGE(sales_agg[単価]) * SUM(sales_agg[数量])
    数式バーに、案A = AVERAGE(sales_agg[単価]) * SUM(sales_agg[数量]) と入っている
    数式バーに、案A = AVERAGE(sales_agg[単価]) * SUM(sales_agg[数量]) と入っている
  2. 案B: 行ごとに掛けて、足す(SUMX)

    案B = SUMX(sales_agg, sales_agg[単価] * sales_agg[数量])
    数式バーに、案B = SUMX(sales_agg, sales_agg[単価] * sales_agg[数量]) と入っている
    数式バーに、案B = SUMX(sales_agg, sales_agg[単価] * sales_agg[数量]) と入っている
  3. 同じ表に並べる

    店舗、数量の合計、案A、案B を、1つの表に入れました。

    店舗ごとの表。京都は案A 9,900.00、案B 8200。渋谷は 8,000.00 と 7600。新宿は 5,550.00 と 4900。合計は 17、25,500.00、20700
    店舗ごとの表。京都は案A 9,900.00、案B 8200。渋谷は 8,000.00 と 7600。新宿は 5,550.00 と 4900。合計は 17、25,500.00、20700

    案A は、店舗ごとの「単価の平均」に、その店舗の数量の合計を掛けた数字になっています。たとえば京都は、単価 800 と 2,500 の平均 1,650 に、数量 6 を掛けて 9,900 です。実際の売上は、800 × 4 + 2,500 × 2 = 8,200 で、案B と同じです。合計の行も、全部の単価の平均(1,500)に 17 を掛けた 25,500 で、20,700 とは、ずれました。

  4. 計算列でも、確かめた

    「テーブル ツール」の「新しい列」で、行ごとに掛ける列を作りました。

    金額列 = sales_agg[単価] * sales_agg[数量]
    数式バーに、金額列 = sales_agg[単価] * sales_agg[数量] と入っている
    数式バーに、金額列 = sales_agg[単価] * sales_agg[数量] と入っている

    この列を、同じ表に入れました(自動で「金額列 の合計」になります)。

    案A、案B と並べた表。金額列の合計は、京都 8200、渋谷 7600、新宿 4900、合計 20700 で、案B と同じ
    案A、案B と並べた表。金額列の合計は、京都 8200、渋谷 7600、新宿 4900、合計 20700 で、案B と同じ

    店舗ごとも、合計の行も、案B(SUMX)と同じ数字になりました(8200、7600、4900、20700)。

    数字の見え方の違い

    案A の数字には、「9,900.00」のように小数点以下が付きました。案B は、「8200」のように、桁区切りも小数点もない見え方でした(書式は、メジャーごとに、自動で決まったようです。理由は確かめていません)。

答え合わせ

自分で採点する数字

合計の行が 20,700(CSV の売上の列の合計と同じ)。「単価の平均 × 数量の合計」だと 25,500 になる。

  • 案A: 京都 9,900、渋谷 8,000、新宿 5,550、合計 25,500。
  • 案B: 京都 8,200、渋谷 7,600、新宿 4,900、合計 20,700。合計の 20,700 は、売上の列を全部足した数字と一致する。
  • 行ごとに掛けてから足したいときは、SUMX を使う。「新しい列」で 単価 * 数量 の列を作って合計しても、同じ 20,700 になる。

この解説は、実機(Power BI Desktop 日本語版 2.159.883.0)で確かめた記事から、まとめています。確認していないことは、記事の最後に書いています。
元の記事を読む →

確認日: 2026-10-25。CSV はダミーのデータで、無料です。