上篇: Power BI 概览笔记
DAX根本语法援用表中的列(如果不是数字结尾,不蕴含空格,也不是保留字,可省略单引号)例:
'Sales'[Quantity]最佳实际:在列援用中始终应用表名,在度量值援用中始终防止应用表名。以此在浏览代码时区分度量值和列。正文:单行正文(//或--)数据类型:Integer,Decimal,Currency,DateTime(平年谬误,须要≥1900-03-01),Boolean,String,Variant,Binary运算符 (),+-*/,比拟运算符,&&,||,IN,NOT运算符重载,强制转换
工夫,例: Sales[OrderDatePlusOneWeek] = Sales[Order Date] + 7文本链接,例:= 5 & 4返回"54"运算符,例:= "5" + "4"返回9。表结构器:单列{"Red","Blue","White"},多列{(1,2,3),}条件语句: IF(exp,true,false)计算列和度量值
计算列:在内存数据库刷新时进行逐行运算,占用空间减慢运行速度。个别用来开发时察看两头值。度量值:对多行聚合计算。(在视觉对象筛选上下文或DAX查问上下文计算)
最佳实际
以下操作必须定义计算列
将计算结果置于切片器中,透视表或矩阵的行区域、列区域(而并不是值区域),或应用计算列作为DAX查问的筛选条件定义严格绑定到以后行的表达式(例:价格×数量)对文本或数值做分类时(例:客户的年龄范畴:0~18,18~25)在筛选报表查看后果时定义度量值
基于报表的筛选条件计算利润率有变分和地区筛选器的状况计算一个产品销售额占所有产品销售额的比例变量VAR ... RETURN ...防止反复写表达式,进步可读性和性能
变量范畴的规定(块级作用域):
一个变量在其所在的VAR/RETURN代码块的RETURN局部可用,并且在VAR/RETURN代码块中,在这个变量之后定义的所有变量也能够应用它。VAR/RETURN代码块能够替换任何DAX表达式,在这些表达式中能够读取变量。变量在定义其本身的VAR/RETURN代码块之外不可用。错误处理(转换谬误,计算错误,空值缺失值)
捕捉谬误
IFERROR(Sales[Quantity] * Sales[Price], BLANK())ISERROR,ISBLANK抛出谬误ERROR()格式化 DAXFormatter.com聚合函数和迭代函数
聚合函数:在列上计算。个别对数值或日期,MIN/MAX可对文本。(SUM,AVERAGE,MIN,MAX,STDEV)
Sales[DaysToDeliver] = INT( Sales[Delivery Date] - Sales[Order Date])AvgDelivery:=AVERAGE(Sales[DaysToDeliver])迭代函数:聚合表达式。(SUMX,MINX,FILTER,ADDCOLUMNS,GENERATE)
个别至多包含2个参数。1.扫描的表,2.为表的每一行计值得表达式。
AvgDelivery:=AVERAGEX(Sales , INT( Sales[Delivery Date] - Sales[Order Date]))表函数(FILTER,ALL,ALLEXCEPT
迭代表,例:
Sales Amount Multiple Items :=SUMX( FILTER(Sales,Sales[Quantity]>1), Sales[Quantity] * Sales[Net Price])[DEFINE {MEASURE <tableName>[<name>] = <expression>}]EVALUATE <table>[ORDER BY {<expression>} [{ASC|DESC}]} [, ...]]空值解决
...