Предположим, вам необходимо проанализировать продажи для определенного типа клиентов и брендов. Для этого вы хотите вычислить общую сумму продаж, например, для юридических лиц (клиентов типа "company"), и при этом учитывать только те продажи, которые относятся к определенным брендам (например, либо к "Contoso" и "A. Datum", либо к "Fabrikam" и "Tailspin Toys").
Для этого можно воспользоваться следующей формулой:
Продажи юридическим лицам = CALCULATE (
SUM ( factonlinesales[salesamount] ),
FILTER (
factonlinesales,
RELATED (dimcustomer [customertype] )
IN { "company" }
&& (
RELATED (dimproduct [brandname])
IN { "Contoso", "A. Datum" }
)
|| RELATED ( dimproduct [brandname] ) IN {"Fabrikam", "Tailspin Toys"}
)
)
где
FILTER возвращает таблицу, отфильтрованную по следующим условиям:
тип клиента – компания ("company");
брендом продукта являются либо "Contoso" и "A. Datum", либо "Fabrikam" и "Tailspin Toys".
То есть, формула вычисляет сумму продаж только по следующим условиям:
клиентом является компания;
продавались товары брендов "Contoso" и "A. Datum", либо "Fabrikam" и "Tailspin Toys".
В данном примере функция RELATED возвращает значение из связанной таблицы (используется для обращения к связанным таблицам dimcustomer и dimproduct).