Power BI-DAX
Power BI-DAX
https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2016/ee634396(v=sql.130)
1、数据的提取和合并
left:从左取
=left([字段],3) # 从左取3位
right:从右取(写法与left一致)
mid:中间取
=mid([字段],4,3) # 从第4位开始取3位(索引值从1开始,取的时候包括第4位)
len:长度
find/search:查找
=find("要找的东西",[从哪个字段找])
=search("要找的东西",[从哪个字段找])
# 两个返回的都是索引值,基本一样,find区分大小写,search不分大小写
=find("要找的东西",[从哪个字段找],开始查找的位置,找到返回值)
=find("要找的东西",[从哪个字段找],1,0)
# 后面两个参数可以不写
CT-21911后面的数字长度不一样,要想提取后面的数字:(下图)
=right([会员ID],len([会员ID])-find("-",[会员ID]))
求年龄
=year(today())-[出生年代]
2、数据的格式转换
value:转换成数值
format:日期或数字格式的转换
=format([日期],"yyyy-mm-dd")
replace:替换
# CT-21911中第4位的2替换成8(CT-81911)
=replace([会员ID],4,2,8)
substitute:查找和替换
# CT-21911中的“-”替换成“/” --> CT/21911
=substitute([会员ID],"-","/")
3、常用的DAX函数
3.1、聚合函数
COUNT和COUNTA不计空白值
3.2、逻辑函数
=if([金额]>1000,"Y","N")
AND里面只能写两个表达式,如果需要三个就需要在写一个AND,嵌套
=AND([金额]>1000,[送货时长]<10)
多个并列可以有个两个连接符
=IF([金额]>1000&&[送货时长]<10,"T","F")
IFERROR
# 如果计算错误返回0,或返回空白(BLANK())
=IFORROR([销售金额]/[任务额],0)
SWITCH
=SWITCH([客户省份],"广东","北上广","北京","北上广","上海","北上广","非北上广")
=SWITCH(true(),[客户省份]="广东"||'订单明细'[客户省]="北京"|| '订单明细'[客户省]="上海","北上广","非北上广")
3.3、信息函数
返回TRUE、FALSE
3.4、数学函数
3.5、文本函数
3.6、转换函数
3.7、日期和时间函数
# 求保质期至
=EDATE([生产日期],[保质期])
3.8、关系函数
函数 | 说明 |
---|---|
RELATED | 从“一”端提取/引用“多”端的列值 |
RELATEDTABLE | 从“多”端提取/引用“一”端的相关行的表格 |
相当于表格的vlookup
3.9、Calculate函数
=Calculate(表达式(度量值),筛选条件1,...筛选条件n)
把条件写死,不受切片器的影响