FILTER 関数
別のテーブルまたは式のサブセットを表すテーブルを返します。
構文
FILTER(<table>,<filter>)
パラメーター
項目 |
定義 |
---|---|
table |
フィルターを適用するテーブル。 このテーブルは、結果としてテーブルが得られる式として指定することもできます。 |
filter |
テーブルの行ごとに評価するブール式。 たとえば、[Amount] > 0 または [Region] = "France" のようになります。 |
戻り値
フィルター選択された行のみが含まれているテーブル。
説明
FILTER を使用すると、作業するテーブル内の行数を減らして、特定のデータのみを計算に使用することができます。 FILTER を単独で使用することはなく、テーブルを引数として受け取る他の関数に埋め込んで使用します。
使用例
次の例では、米国外でのインターネット売上のレポートを作成します。このレポートを作成するには、米国での売上を除外するメジャーを使用して、カレンダー年度と製品カテゴリでスライスします。 このメジャーを作成するには、Sales Territory を使用して Internet Sales USD テーブルをフィルター処理し、フィルター処理したテーブルを SUMX 関数で使用します。
この例で、式 FILTER('InternetSales_USD', RELATED('SalesTerritory'[SalesTerritoryCountry])<>"United States") は、Internet Sales から United States 販売区域に属する行をすべて差し引いたサブセットであるテーブルを返します。 RELATED 関数は、Internet Sales テーブルの Territory キーを SalesTerritory テーブルの SalesTerritoryCountry にリンクします。
次の表は、下記のコード セクションに示す数式、NON USA Internet Sales メジャーの概念を示したものです。 この表は、インターネットでの総売上と米国以外のインターネットでの売上を比較し、米国での売上を計算から除外することで、フィルター式が機能することを示しています。
このテーブルを再作成するには、ピボットテーブルの [行ラベル] 領域に SalesTerritoryCountry フィールドを追加します。
表 1. 米国とその他の全地域の売上合計の比較
行ラベル |
Internet Sales |
Non USA Internet Sales |
---|---|---|
Australia |
$4,999,021.84 |
$4,999,021.84 |
Canada |
$1,343,109.10 |
$1,343,109.10 |
France |
$2,490,944.57 |
$2,490,944.57 |
Germany |
$2,775,195.60 |
$2,775,195.60 |
United Kingdom |
$5,057,076.55 |
$5,057,076.55 |
United States |
$9,389,479.79 |
|
総計 |
$26,054,827.45 |
$16,665,347.67 |
最後のレポート表は、NON USA Internet Sales メジャーを使用してピボットテーブルを作成したときの結果を示しています。 ピボットテーブルの [行ラベル] 領域に CalendarYear フィールドを追加し、[列ラベル] 領域に ProductCategoryName フィールドを追加します。
表 2. 米国以外の製品カテゴリごとの売上比較
Non USA Internet Sales |
列ラベル |
|
|
|
---|---|---|---|---|
行ラベル |
Accessories |
Bikes |
Clothing |
総計 |
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])