PowerBI-关系函数-RELATED & RELATEDTABLE

本文详细介绍了PowerBI中的两个关键关系函数:RELATED和RELATEDTABLE。RELATED函数用于在多端返回一端的相关值,适用于计算特定条件下的销售额等;而RELATEDTABLE函数则用于在一端获取多端的相关数据,可以生成表并进行计算。两者都要求表间存在关系,但使用场景有所不同,RELATED需行上下文,RELATEDTABLE可改变数据筛选上下文。

一、RELATED

释义:在多端返回一端的相关值

语法:RELATED(列名)

参数:

  • 第一参数:包含要检索的值的列

备注:

  • RELATED 函数要求当前表和具有相关信息的表之间存在关系
  • RELATED 函数执行查找时,将检查指定表中的所有值,而不考虑可能已应用的任何筛选器
  • RELATED 函数需要行上下文;因此,该函数只能在当前行上下文明确的计算列表达式中使用,或者在使用表扫描函数的表达式中用作嵌套函数。 SUMX 等表扫描函数获取当前行值的值,然后扫描另一个表,查找该值的实例
  • RELATED 函数不能用于跨有限关系提取列(当没有确定的“一”侧时,模型关系为“有限”)

示例:计算除美国之外的销售额

SUMX(FILTER( 'InternetSales_USD'  
            ,  RELATED('SalesTerritory'[SalesTerritoryCountry])  
               <>"United States"  
             )  
     ,'InternetSales_USD'[SalesAmount_USD])  


二、RELATEDTABLE

释义:在一端获取多端的相关数据

语法:RELATEDTABLE(表名)

参数:

  • 第一参数:必须是基础表,不能是表达式
### Power BIRELATED 函数的使用说明 RELATED 函数用于在 DAX 表达式中获取当前上下文中相关表中的值。它依赖于两个表之间的关系来工作,因此在使用前需确保已建立适当的关系。 #### 基本语法 以下是 RELATED 函数的基本语法: ```dax RELATED(&lt;column&gt;) ``` 其中 `&lt;column&gt;` 是目标表中的某一列,该列所在的表应与当前表存在关系[^1]。 #### 工作原理 当在一个表格视图或度量值中调用 RELATED 时,DAX 将尝试通过现有关系找到对应的记录并返回指定列的值。需要注意的是,RELATED 只能在具有单向过滤方向(从&ldquo;一端&rdquo;到&ldquo;多端&rdquo;)的情况下正常运行。如果试图反向查找,则会引发错误[^1]。 #### 示例代码 假设有一个销售数据模型,包含两张主要表格:&ldquo;Sales&rdquo; 和 &ldquo;Products&rdquo;。这两张表之间基于 `ProductKey` 列建立了关系&ldquo;Sales&rdquo; 表存储交易详情,&ldquo;Products&rdquo; 存储产品属性。 现在希望创建一个新的计算列,在每条销售额记录旁边显示对应的产品类别名称: ```dax CategoryName = RELATED(Products[Category]) ``` 此语句将在 Sales 表新增加的一列里填入 Products 表 Category 字段的内容,前提是两表间有有效的关联路径[^2]。 #### 常见报错及其解决方案 1. **无法解析列名** 如果收到类似 &quot;The column &#39;X&#39; either doesn&#39;t exist or isn&#39;t in the current context.&quot; 的消息,这表明所提供的参数可能拼写错误或者确实不存在于所指代的相关联表之中。 2. **无有效关系** 当遇到 &quot;&#39;Y&#39; cannot be found...&quot; 类型的信息时,意味着缺少必要的连接设置。确认是否已经正确定义了适当的双向或多维层次结构链接[^1]。 3. **跨多个间接级别访问失败** 对于某些复杂查询设计来说,可能会企图跨越超过一层以上的父子级联系统去检索资料。然而,标准版 RELATED 不支持这种深层次遍历操作。此时可考虑采用 RELATEDTABLE 配合其他高级技巧达成目的[^2]。 #### 总结 为了成功运用 POWER BIRELATED 功能模块,必须先清楚理解整个数据库架构布局以及各实体间的互动方式。只有这样才能够准确编写出既高效又可靠的分析脚本[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值