Сравнение версий
Ключ
- Эта строка добавлена.
- Эта строка удалена.
- Изменено форматирование.
Заголовок первого уровня
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Заголовок второго уровня
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
Заголовок третьего уровня
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Функция фильтрации.
Синтаксис
FILTER ( <Table>, <FilterExpression> )
Предупреждение
Поддерживается IN и AND.
IN поддерживает работу на схеме звезда в случае использования с SUMMARIZECOLUMNS (см. пример ниже).
Не поддерживается вложенность.
IN поддерживает только строки: FILTER ( 'Sales', 'Sales'[ProductCategory] IN { "Audio", "Computers" } )
.
AND поддерживает следующие операции сравнения >, <, >=, <=, =, <>. Поддерживается работа с числами FILTER (Sales, AND(Sales[SalesQuantity] <> 150, Sales[SalesAmount] > 1500))
и DATE.
Поддерживается работа только с 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 мин.
Видео
Нужна дополнительная помощь?
Свяжитесь с технической поддержкой.
Или нажмите в приложении, чтобы задать вопрос.