关于powerbi:PowerBI进阶3

8次阅读

共计 1372 个字符,预计需要花费 4 分钟才能阅读完成。

S00E08 平安除法 DEVIDE & IF 函数 &switch 函数

平安除法

分母为 0 的状况下返回指定值(个别统计中是 0 用或者 1
任何状况下,都应该应用平安除法进行计算,无论是否数据源中是否曾经有分母为 0 的状况!

公式:

商 = DEVIDE([分子],[分母],0)

### IF 函数
适宜条件比拟少的状况下做逻辑判断。应用办法和 excel 的 if 一样

公式:

判断后果 = if([字段]= 条件,True 返回后果,False 返回后果)

switch 函数

实用于多条件,防止 if 重复嵌套。视频案例只有 ”=” 的状况。这边找了一个其余教程贴在上面供参考

https://www.jianshu.com/p/80f3cf22c304

语法:SWITCH(表达式,条件 1,后果 1,条件 2,后果 2,….<else>)

两种判断状况

①判断条件大于小于的状况:

还是应用下面 if 中的案例, 应用 switch 编写:

老本区间判断 2 = SWITCH(TRUE(),[测试老本]>300,” 红色老本 ”,[测试老本]>100,” 黄色老本 ”,” 绿色老本 ”)

下面 if 嵌套不多, 如果条件过多,if 函数的嵌套就会很多, 可读性较差, 应用 switch 的话就会简单明了

解释:这里的 true()是示意每个条件返回都能够是一个逻辑值

②判断条件相等的状况:

如果下面例子不应用 TRUE(), 那么老本区间判断 2 的公式就会这样写:

老本区间判断 2 = SWITCH(‘ 测试数据 '[关键词],139,” 黄色老本 ”,589.5,” 红色老本 ”,118.8,” 黄色老本 ”…….)

S00E09 穿插雷同 intersect 除去雷同 except 平拷 Union 和笛卡尔积 Crossjoin

穿插雷同:

intersect(表 1,表 2)

案例:邀请并与会人员名单(有表 1 邀请名单 & 表 2 与会名单)

intersect("邀请","与会")

除去雷同

Except(表 1,表 2)
案例:邀请但未与会人员名单(有表 1 邀请名单 & 表 2 与会名单)

Except("邀请","与会")

不请自来人员名单(有表 1 邀请名单 & 表 2 与会名单)

Except("与会","邀请")

平拷:Union(表 1,表 2)

间接连在一起 平拷

笛卡尔积 crossjoin

表 1
A
B
表 2
i
ii
crossjoin(表 1,表 2)
表 1 表 2
A i
B i
A ii
B ii
crossjoin(表 2,表 1)
表 1 表 2
A i
A ii
B i
B ii

S00E10 VAR

var 函数 制作变量(度量值)并命名变量
留神这个命名(其实就是变量名)必须是英文字符 中文无奈辨认
会计算当行的数据

用法 1:代替度量值或者新建列

EG:

评估 = 
var zongfen = [数学]+[英语]+[语文]
return
If (zongfen>=270,"优良","个别")

用法 2:代替 earlier 函数

EG:统计一张表中某人名累计呈现的次数

Earlier 用法:

呈现次数 = countrouws(filter('表','表'[姓名]=earlier('表'[姓名])&&'表'[序号]<=earlier('表'[序号])))

VAR 用法:myname 作为变量 (不能命名为非凡名称比方 name 或者表中有的字段名)

呈现次数 =

VAR myname = '表'[姓名]
VAR index = '表'[序号]
return
countrouws(filter('表','表'[姓名]=myname &&'表'[序号]<=index))
正文完
 0