次の方法で共有


FILTER

適用対象:計算列計算テーブルメジャービジュアル計算

別のテーブルまたは式のサブセットを表すテーブルを返します。

構文

FILTER(<table>,<filter>)  

パラメーター

用語 定義
テーブル フィルター処理されるテーブル。 テーブルには、テーブルを生成する式を指定することもできます。
filter テーブルの行ごとに評価されるブール式。 たとえば、[Amount] > 0[Region] = "France" です

戻り値

フィルター処理された行のみを含むテーブル。

解説

  • FILTER を使用して、使用しているテーブル内の行数を減らし、計算で特定のデータのみを使用することができます。 FILTER は独立して使用するのではなく、引数としてテーブルを必要とする他の関数に埋め込む関数として使用します。

  • FILTER を使用する場合のベスト プラクティスについては、「フィルター引数として FILTER を使用しない」を参照してください。

DAX で COUNT の代わりに COUNTROWS を使用する

  • この関数は、計算列または行レベルのセキュリティ (RLS) ルールで使用される場合、DirectQuery モードでの使用はサポートされません。

次の例では、米国内の売上をフィルターで除外するメジャーを使用し、暦年と製品カテゴリ別にスライスすることで、米国以外のインターネット販売のレポートを作成します。 このメジャーを作成するには、販売区域を使用してインターネット販売 USD テーブルをフィルター処理してから、フィルター処理されたテーブルを SUMX 関数で使用します。

この例では、式

FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")

は、米国の販売区域に属するすべての行を差し引き、インターネット販売のサブセットであるテーブルを返します。 RELATED 関数は、インターネット販売テーブルの区域キーを SalesTerritory テーブルの SalesTerritoryCountry にリンクします。

次の表は、メジャー (米国以外のインターネット販売) の概念実証を示しています。この式は、後述のコード セクションに示します。 この表は、計算から米国販売を除外することで、すべてのインターネット販売と米国以外のインターネット販売を比較して、フィルター式が機能することを示しています。

このテーブルを再作成するには、レポートまたはピボットテーブルの行ラベル領域に SalesTerritoryCountry フィールドを追加します。

表 1 米国と他のすべてのリージョンの売上合計比較

行ラベル Internet Sales 米国以外のインターネット販売
オーストラリア $4,999,021.84 $4,999,021.84
カナダ $1,343,109.10 $1,343,109.10
フランス $2,490,944.57 $2,490,944.57
ドイツ $2,775,195.60 $2,775,195.60
イギリス $5,057,076.55 $5,057,076.55
アメリカ合衆国 $9,389,479.79
総計 $26,054,827.45 $16,665,347.67

最終のレポート テーブルは、メジャー (米国以外のインターネット販売) を使用してピボットテーブルを作成した場合の結果を示しています。 ピボットテーブルの行ラベル領域に CalendarYear フィールドを追加し、列ラベル領域に ProductCategoryName フィールドを追加します。

表 2 米国以外の製品カテゴリ別販売比較

行ラベル アクセサリ Bikes 衣服 総計
2005 $1,526,481.95 $1,526,481.95
2006 $3,554,744.04 $3,554,744.04
2007 $156,480.18 $5,640,106.05 $70,142.77 $5,866,729.00
2008 $228,159.45 $5,386,558.19 $102,675.04 $5,717,392.68
総計 $384,639.63 $16,107,890.23 $172,817.81 $16,665,347.67
SUMX(FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States")  
     ,'InternetSales_USD'[SalesAmount_USD])  

フィルター関数
ALL 関数
ALLEXCEPT 関数