Сравнение версий
Ключ
- Эта строка добавлена.
- Эта строка удалена.
- Изменено форматирование.
Функция фильтрации.
Синтаксис
Предупреждение
FILTER ( <Table>, <FilterExpression> )
Примечание |
---|
|
IN поддерживает работу на схеме звезда в случае использования с SUMMARIZECOLUMNS (см. пример ниже).
|
Поддерживается работа только с CALCULATE и SUMMARIZECOLUMNS
Примеры
Предупреждение
Разница в работе PowerBI и FormulaEngine
С моделью данных можно ознакомиться по ссылке pbix
Блок кода |
---|
EVALUATE
SUMMARIZECOLUMNS (
'dimproduct'[classname],
'dimcustomer'[gender],
FILTER ( 'dimcustomer', 'dimcustomer'[gender] IN { "M" } ),
FILTER ( 'dimproduct', 'dimproduct'[classname] IN { "Econom" } ),
FILTER (
'factonlinesales',
AND ( 'factonlinesales'[unitprice] > 50, 'factonlinesales'[unitprice] < 200 )
),
"Result",
CALCULATE (
SUM ( 'factonlinesales'[unitprice] ),
REMOVEFILTERS ( 'dimcustomer' )
)
)
|
Результат PowerBI DAX:
classname | gender | Result |
---|---|---|
«Econom» | «M» | 100 |
Результат FormulaEngine DAX:
classname | gender | Result |
---|---|---|
«Econom» | «M» | 200 |
Результат FormulaEngine DAX идентичен результату PowerBI DAX в случае использования FILTER в совокупности с функцией VALUES (см. пример ниже).
Блок кода |
---|
EVALUATE
SUMMARIZECOLUMNS (
'dimproduct'[classname],
'dimcustomer'[gender],
FILTER ( 'dimcustomer', 'dimcustomer'[gender] IN { "M" } ),
FILTER ( 'dimproduct', 'dimproduct'[classname] IN { "Econom" } ),
FILTER (
VALUES ( 'factonlinesales'[unitprice] ), // обратите внимание
AND (
'factonlinesales'[unitprice] > 50,
'factonlinesales'[unitprice] < 200
)
),
"Result",
CALCULATE (
SUM ( 'factonlinesales'[unitprice] ),
REMOVEFILTERS ( 'dimcustomer' )
)
)
|
Данное поведение в будущем может поменяться с появлением функции VALUES и TREATAS.
Пример работы на денормализованной таблице:
Блок кода |
---|
EVALUATE
SUMMARIZECOLUMNS (
'Sales'[BrandName],
'Sales'[Calendar Year],
FILTER ( 'Sales', 'Sales'[Calendar Year] IN { "2012" } ),
FILTER ( 'Sales', 'Sales'[ProductCategory] IN { "Audio" } ),
FILTER ('Sales', AND(Sales[SalesQuantity] <> 150, Sales[SalesAmount] > 1500)),
"Amount", SUM ( Sales[SalesAmount])
)
|
Блок кода |
---|
"results": [
{
"cols": [
{
"field": "BrandName",
"dataType": "String"
},
{
"field": "Calendar Year",
"dataType": "String"
},
{
"field": "Amount",
"dataType": "Double"
}
],
"values": [
[
"Contoso",
"2012",
14949935
],
[
"Northwind Traders",
"2012",
1610125
],
[
"Wide World Importers",
"2012",
18429107
]
]
}
]
|
Пример работы на схеме звезда:
Блок кода |
---|
EVALUATE
SUMMARIZECOLUMNS (
dimproduct[colorname],
dimcustomer[gender],
FILTER ( dimproduct, dimproduct[colorname] IN { "Azure" } ),
"result", SUM ( factonlinesales[salesamount] )
)
|
Блок кода |
---|
"results":[ { "cols":[ { "field":"colorname", "dataType":"String" }, { "field":"gender", "dataType":"String" }, { "field":"result", "dataType":"Double" } ], "values":[ [ "Azure", null, 78083.037 ], [ "Azure", "F", 1417.615 ], [ "Azure", "M", 540.14 ] ] } ] |
Пример
Использование функции FILTER для лимитирования:
Блок кода | ||
---|---|---|
| ||
DEFINE VAR GeneralGroupBy = SUMMARIZECOLUMNS ( 'Sales'[ProductCategory], 'Sales'[ProductSubcategory], 'Sales'[BrandName], "cost", SUM ( 'Sales'[SalesAmount] ) ) VAR GroupByCategorySubcatory = SUMMARIZE ( GeneralGroupBy, 'Sales'[ProductCategory], 'Sales'[ProductSubcategory] ) VAR TopByCategorySubcatory = TOPN ( 5, GroupByCategorySubcatory, 'Sales'[ProductCategory], ASC, 'Sales'[ProductSubcategory], ASC ) VAR GroupByBrand = SUMMARIZE ( GeneralGroupBy, 'Sales'[BrandName] ) VAR TopByBrand = TOPN ( 5, GroupByBrand, 'Sales'[BrandName], ASC ) EVALUATE TopByCategorySubcatory ORDER BY 'Sales'[ProductCategory] ASC EVALUATE FILTER ( GeneralGroupBy, AND ( ( 'Sales'[ProductCategory], 'Sales'[ProductSubcategory] ) IN TopByCategorySubcatory, ( 'Sales'[BrandName] ) IN TopByBrand ) ) |
Блок кода | ||
---|---|---|
| ||
{ "results": [ { "cols": [ { "field": "ProductCategory", "dataType": "String" }, { "field": "ProductSubcategory", "dataType": "String" } ], "values": [ [ "Audio", "Bluetooth Headphones" ], [ "Audio", "MP4&MP3" ], [ "Audio", "Recording Pen" ], [ "Cameras and camcorders", "Camcorders" ], [ "Cameras and camcorders", "Cameras & Camcorders Accessories" ] ] }, { "cols": [ { "field": "ProductCategory", "dataType": "String" }, { "field": "ProductSubcategory", "dataType": "String" }, { "field": "BrandName", "dataType": "String" }, { "field": "cost", "dataType": "Double" } ], "values": [ [ "Audio", "MP4&MP3", "Contoso", 65168188 ], [ "Cameras and camcorders", "Cameras & Camcorders Accessories", "Contoso", 51599808 ], [ "Cameras and camcorders", "Camcorders", "Fabrikam", 1335285231 ] ] } ] } |
Смотрите также
На этой странице
Оглавление |
---|
🕑 Время чтения: 3 1 мин.Видео
Нужна дополнительная помощь?
Свяжитесь с технической поддержкой.
Или нажмите в приложении, чтобы задать вопрос.