計算列は値を一つ一つの行しか見ない。いったん計算されるとPower BI上のVisualで変更されることはない。
それに対してメジャーは選択の範囲により計算に入力する行の範囲が異なってくる。すべての行を対象とすれば計算列と同じ扱いになる。しかしVisual上での選択、あるいはVisual上でカラムで絞り込んでいったときの選択により、計算対象となる行が動的に変化する。
例えば下記のコードを考えてみる。
Filterに対してAllが設定されていないために、Visual上で選択されたカラムにより暗黙的な絞り込みが行われる。例えば時間、カテゴリー、ロケーションなどにより暗黙的に選択されたレコードセットが出来上がり、そのレコードセットに対して、Filter関数が機能する。SUMXはレコードセットからフィルターされた結果の新しいレコードセットをすべての走査して、計算する。
'Product'[Product Sales Amount Multiple Items] = SUMX ( FILTER ( RELATEDTABLE ( Sales ), Sales[Quantity] > 1 ), Sales[Quantity] * Sales[Unit Price] )