这些案例都是本人在实践过程中碰到的一些典型案例,因个人水平有限,提供的解法仅是个人见解,欢迎各位老师提供其他解题思路。
上面两张表分别为 报案表 与 结案表,分别记录着报案编号、时间、类型,以及结案时间,和结案类型,现在要计算的
指标是 当期报结 = (当月的有效报案并且在当月一次结案的案件数量)/(当月的有效报案案件数量)。
可能很多童鞋会觉得很简单,因为报案表是一表,结案表是多表,直接建立关系,创建模型,但是怎么判断同一个案件
的报案时间和结案时间是在同一个月呢?很多同学可能会在报案表中增加计算列,引用结案表对应的一次结案时间,此时因为结案表是多表,无法用related函数,只能使用lookupvalue函数。但是我们知道,如果不是增加观察维度,我们最好不要使用计算列来改变原始数据,但是受这种思路启发,我们可以利用addcolumns创建虚拟列来引用结案表的结案时间。
整个度量的思路如下: 第一步:在报案表中筛选有效案件,代码如下
CALCULATETABLE('报案表','报案表'[案件性质]="有效")
第二步,在上述区域中用lookupvalue结案表中对应的一次结案时间引用过来,然后与报案时间相比较,判断是否在同月,筛选掉不在同一个月份的案件,代码如下
filter(
addcolumns(temp,
"结案时间",
LOOKUPVALUE('结案表'[结案时间],
'结案表'[案件编号],'报案表'[案件编号],
'结案表'[结案性质],"一次")
year('报案表'[报案时间])=year([结案时间])&&
MONTH('报案表'[报案时间])=month([结案时间]) //报案与结案时间在同一个月的案件
Daxstudio代码测试如下
说明完全达到我们想要的结果,最后分别计数相除就是我们想要计算的度量值,此种方法不需要创建关系,即使报案表本身是多表一样适用。最终结果如下,
佐罗老师DAX实战课程链接:https://study.163.com/course/introduction/1006191059.htm?share=1&shareId=1144761414
限时送价值198 DAX基础课程(仅限本链接购买)和价值288会员模板,提供内部答疑群,购买后联系QQ:40733580
请务必阅读并严格遵守《社区管理规范与使用说明》
支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
, 更多语法请见这里 Markdown 语法
支持表情,使用方法请见 发送表情,可用的 Emoji 见 :metal: :point_right: Emoji 列表 :star: :sparkles:
上传图片, 支持拖拽和剪切板粘贴上传, 格式限制 - jpg, png, gif
不支持上传附件,请尽可能用文字和图片将问题描述清楚,如实在需要上传附件,可上传到 共享网盘 后分享链接
发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
PBI Hub,为 Power BI 爱好者提供一个求助分享、结识伙伴、相互学习的平台,致力于打造最专业、最权威的 Power BI 中文社区,推动 Power BI 在国内的发展。
苏ICP备14037409号-5