前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Power Pivot关系理论的重中之重——关系模型的进一步了解

Power Pivot关系理论的重中之重——关系模型的进一步了解

作者头像
逍遥之
发布2020-03-23 18:40:54
2.1K0
发布2020-03-23 18:40:54
举报
文章被收录于专栏:数据技巧数据技巧

如果对于关系及模型不太清楚的,这篇文章希望能够让你清清楚楚的了解。理解了关系及模型,那Power Pivot算真正的入门了,之后就是函数的运用了。

一、 关系的进一步理解

(一) 关系模型

我们可以看下,同样的3张表,但是关系是却不一样,导致之后的操作也会不同。图1和图3是链式模型,图2是星型关系。图1的链式是从左1开始,而图3是从右1开始。

另外下面这种模型就相对容易出错,在书写度量值或者添加列的时候会比较难以理解,当然并不是不能有这类模型关系,但不建议,这类关系需要特别注意处理。

(二) 关系函数

最基础的2个关系函数,也属于筛选函数的一种,Related和RelatedTable。

1. Related:从多端关联到1端的对应字段的,并返回
2. RelatedTable:从1端关联到多端的,并返回

(三) Related

1. 语法

RELATED(<ColumnName>)

参数

描述

ColumnName

包含所需值的列

2. 返回

值(标量)——与当前行相关的单个值。

3. 注意事项
  • 只能从具有关联的表中获取值,无关联则返回错误。
  • 只能用于计算列或组合行扫描函数(sumx等)。
4. 作用
  • 类似Excel里面Vlookup中最后一位参数为0的绝对匹配
  • 类似Index和Match组合函数的match的最后参数为0的绝对匹配
5. 案例

A. 图1关系 如果要引用值,那我们需要在末端(多端)去引用。最末端是【老师】的表,因为我们是要引用值,那我们使用函数Related。

可以看到关联引用出来包含了所有上端的表的字段名。例如我们可以直接引用其上端的2个表里面关联的字段值。 如果我们在班级表里做Related引用的话,只能看到对应其上端(1端)的表的内容。

B. 图2关系 因为图2是星型模型,只有中间一个表示处于多端,其余2个表都是属于1端。所以如果要使用Related函数只能在中间表格 【班级副本】中使用。

C. 图3关系 图3和图1是反过来的,所以原理和图1一样,只不过反过来操作。

(四) RelatedTable

1. 语法

RELATEDTABLE ( <Table> )

参数

描述

Table

包含所需值的表

2. 返回

表——包含单列或者多列的表

3. 注意事项
  • 有关系的话,根据关系返回结果表。
  • 无关系的话,直接返回结果表。
4. 作用

是函数CalculateTable的快捷写法。

5. 案例

A. 图1关系 如果要引用表,那我们可以在初始端(1端)去引用。初始端是【成绩】的表,因为我们是要引用表,那我们使用函数RelatedTable。

这里为什么要在外面在写上一个CountRows函数呢?那是因为所有在添加列或度量值必须要求返回的是一个值(标量),CountRows是计算表格的行数。

B. 图2关系 如果要引用有关系的表,则会涉及到行上下文的计算,如下图

因为这2个表之间有关系,是因为姓名对应的关系,所以计算流程是这样。每行都是先去根据当前姓名值去对应删选后再进行聚合函数(统计函数),并返回结果。

如果要引用的表是无关系的,则会返回整个表。如下图

因为这2个表示没有任何关系,所以返回的是整个表的计算结果。因为班级这个表总行数为3,所以返回的每行数据都是3。

因为不涉及到行上下文,所以在度量值里面书写也是同样返回这个值。

C. 图3关系 我们可以看到,在我们输入RelatedTable这个函数的时候,会提示所有的表,包括有关系和没关系的,同时也会包含表本身(有关系)。因为这些表都是可以被计算,只不过计算返回结果不同。

(五) 透视表相关性

1. 链式模型

A. 1端的字段拖放进入数据透视表的列或行。 B. 多端的字段拖放进数据透视表的值

2. 星型模型

A. 多端的表基本上都是事实表,所以大部分的计算都是基于事实表。所以多端的数据作为数据透视表的值进行计算。 B. 1端的表基本上都是维度表,也遵循着1端的字段作为透视表的列或行。如果想计算1端表的值,可以通过函数Related把相关字段值引用到多段

(六) 筛选联动

度量值我们可以写在任意的表里面。但是写在不同的表里,筛选结果是不一样的。同时请注意,这个多端和1端都是相对的。图1班级表对应成绩表是多端,但是对应老师表则是1端。

1. 写在多端,计算1端
  • 结果:不随多端筛选而变化。
  • 处理:把1端的值通过添加列到多端后,再写在多端。
2. 写在1端,计算多端
  • 结果:随1端筛选而变化。
  • 处理:只要计算的值是多端的,不管写在哪里都可以。
3. 写在1端,计算1端

在使用维度表的时候,也必须使用1端的字段。

4. 写在多端,计算多端

这种结果是最好的,最没有争议的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据技巧 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如果对于关系及模型不太清楚的,这篇文章希望能够让你清清楚楚的了解。理解了关系及模型,那Power Pivot算真正的入门了,之后就是函数的运用了。
  • 一、 关系的进一步理解
    • (一) 关系模型
      • (二) 关系函数
        • 1. Related:从多端关联到1端的对应字段的值,并返回值。
        • 2. RelatedTable:从1端关联到多端的表,并返回表。
      • (三) Related
        • 1. 语法
        • 2. 返回
        • 3. 注意事项
        • 4. 作用
        • 5. 案例
      • (四) RelatedTable
        • 1. 语法
        • 2. 返回
        • 3. 注意事项
        • 4. 作用
        • 5. 案例
      • (五) 透视表相关性
        • 1. 链式模型
        • 2. 星型模型
      • (六) 筛选联动
        • 1. 写在多端,计算1端
        • 2. 写在1端,计算多端
        • 3. 写在1端,计算1端
        • 4. 写在多端,计算多端
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档