Calculate引擎
#单条件
总销量 = sum ('销售表'销售数量)
A product sales total = Calculate(总销量,'商品表'品名 ="A")
这里的"A"仅限于字符,数值型,如果有事件等其他问题,则放在时间智能函数。
#多条件
多条件 = calculate(总销量.'商品表'品名 = "A", '商品表'进阶 = 0.1)
多条件1 = Calculate(总销量.'商品表'品名 in {"A","B","C"})
多条件2 = Calculate(总销量. not '商品表'品名 in {"A","B","C"})
Calculatetable筛选表
Calculatetable(表,筛选条件)
表 = Calculatetable('销售表','商品表'品名= "A", '商品表'进价 = 0.1)
Filter
返回一个表,用于表示另一个表或表达式的子集,不能单独使用。
Filter函数对筛选的表进行横向的逐行扫描,这样的函数叫迭代函数。
Countrows(Filter(表,筛选条件))
Calculate(表达式(度量值).Filter('表名',筛选条件))
#什么时候使用Filter函数
如果遇到以下这几种情况,就需要使用Filter函数
列\] = \[度量值
列 = 公式
列\] = \[列
度量值\] = \[度量值
度量值 = 公式
度量值 = 固定值
Values
只有一张数据表,没有唯一表。
filter 总分 = calculate(总分, Filter(Values('成绩单'学号), 总分>250))
values是可以自选一列出来,例如测试表 = values('成绩表'学号)
ALL
作用:清楚筛选,返回:清楚筛选后的表格或列。
商品表中商品总数 = countRows('商品表')
销售表中的商品数量 = calculate(countRows('商品表'),'销售表')
生产一个不能筛选的总数 = CountRows(ALL('商品表'))
lookupvalue
如果想在矩阵表上使用商品名称,可以用LookupValue将商品名称V过来,或者不适用红框内的条件
【新建列】商品名称 = LookupValue('商品表'商品名称,'商品表'商品编码,'销售表'商品编码)
Allexcept
排除法筛选
ALLEXCEPT (table, column1, column2, ...)
Allselected
与all不同,allselected保留了用户在筛选器或切片器中所选择的值,但移除其他上下文的筛选器。
想要计算某个产品销售额占所有选定产品销售额的比例,可以使用如下 DAX 公式:
Sales Ratio =
SUM(Sales[Amount]) /
CALCULATE(SUM(Sales[Amount]), ALLSELECTED(Sales[Product]))