[PowerBI]DAX虚拟连接函数:TREATAS()用法介绍
12月追加:欢迎加入知乎【微软BI技术圈】,一起讨论、分享包括PowerBI在内的一切BI话题!
简述
TREATAS()函数是DAX中用于表格间虚拟连接的函数,当遇到如下情况时,可以考虑使用TREATAS:
1.维度表或事实表之间没有可以单独关联的列;
2.出现多对多或其他无法使用直接的方法关联的情况
3.数据模型非常复杂时,通过建立虚拟关系以减少对表格之间物理连接的依赖
(根据Marco的说法:额外的物理关系可能会在过滤器传播到其他表时产生某种副作用)
过程
本案例数据是如下两张没有关联结构完全相同的销售表:
左边的是主表,右边的叫副表,很显然它们都没有唯一列,无法直接建立关联。假设我们希望使用副表的城市字段来筛选主表的利润,我们可以使用如下方法在主表新建度量值:
利润_Treatas =
CALCULATE(sum('Data'[利润]),TREATAS(VALUES(copy[城市]),'Data'[城市]))
结果如下(注意:下图城市这一字段来自和主表没有任何关联的副表):
但当我们增加副表的[客户ID]做筛选时,对应的数据却没有被正确计算,这是因为[客户ID]并没有利用Treatas和主表建立关联(但可以使用[地区]这一字段,因为它是[城市]的上层字段)
解决方法如下:
利润_Treatas =
CALCULATE(sum('Data'[利润]),TREATAS(SUMMARIZE('Copy','Copy'[城市],'Copy'[客户 ID]),'Data'[城市],Data[客户 ID]))
其他
Treatas()之所以可以实现虚拟连接,是因为它可以把本表指定列的筛选上下文属性传递至目标表,因而目标表可以获得对应的筛选能力(如本例,城市和客户ID字段的筛选上下文被传递至SUMMARIZE后的副表,因此副表的对应列可以筛选本表的指定值)
[PowerBI]DAX虚拟连接函数:TREATAS()用法介绍相关推荐
- python中字符串函数的用法_python中字符串内置函数的用法介绍(代码)
本篇文章给大家带来的内容是关于python中字符串内置函数的用法介绍(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. capitalize() 首字母大写a='somewor ...
- C语言中fscanf()函数的用法介绍
C语言中fscanf()函数的用法介绍 fscan()函数的原型: int fscanf(FILE *stream,const char *format,[argument...]); fscanf函 ...
- patindex函数的用法介绍
/*关于patindex函数的用法介绍.编写人:Hopewell,日期:2006/08/26*/ patindex函数的用法. 语法格式:PATINDEX ( '%pattern%' , expres ...
- php error log 函数,php日志函数error_log如何使用 php日志函数error_log用法介绍
php日志函数error_log如何使用?这篇文章主要介绍了php日志函数error_log用法,结合实例形式分析了php日志函数error_log相关的配置文件设置.函数功能.用法与使用注意事项,需 ...
- mysql+case_mysql内置函数case用法介绍
本节内容: mysql内置函数case使用介绍 mysql对case函数的解释: 复制代码 代码示例: mysql> ? case Many help items for your reques ...
- 重点函数 | SELECTEDVALUE 用法介绍
大家好,今天给大家分享一下SELECTEDVALUE函数的用法,先来看一下函数的说明: SELECTEDVALUE ( Table[column] )SELECTEDVALUE ( Table[col ...
- matlab中if语句的用法_Excel中最常用的逻辑函数IF用法介绍
几日随风北海游,回从扬子大江头.臣心一片磁针石,不指南方不肯休.---[宋]文天祥<扬子江> IF函数在我们的实际工作中,用的是非常多的,相信大家对这个函数应该也不陌生,今日就给大家分享 ...
- matlab与geotiff影像的函数,用法介绍
文章目录 前言 一.matlab和geotiff相关函数的学习 (1) pix2latlon() 和latlon2pix() (2) pix2map() 和 map2pix() (3) projfwd ...
- C++中assert函数的用法介绍
assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #inclide<assert.h> void assert(int ...
最新文章
- python自带的shell是什么-python的shell是什么
- Employee Assign Organization unit
- Java普通代码块,构造代码块,静态代码块区别,执行顺序的代码实例
- CString 是一种很有用的数据类型
- word无所不能之在word中浏览网页看电影
- CentOS7网络快速解决
- 一文看懂推荐系统:排序11:Deep Cross Network(DCN)
- 大工14秋计算机英语3,【大工作业】秋季《大学英语3》在线测试2包100
- AriaNG保存服务器信息,AriaNg
- mac 访问局域网其他电脑上的虚拟机
- 阿里建站——通过阿里云平台搭建网站(阿里云+云市场+手动)
- TinyOS总体介绍
- Win10 日期/时间修改
- 动态测试与静态测试--手工测试和自动化测试
- 前端基础之CSS标签样式
- 磁链观测器结合霍尔传感器转子角度方案
- win7华硕电脑关闭触控板(亲测有效)
- libev 源码解析
- 湖南理工学院计算机老师信息,张登奇(计算机与信息工程系)老师 - 湖南理工学院 - 院校大全...
- js 遍历数组获取某些属性