何为详细级别

详细级别,英文Level of detail,Tableau用它来描述计算发生的级别,或者说计算在哪个层级发生。由于BI工具的相似性,在Power BI里也可以用类似的思想对计算进行描述,但Power BI并没有与之对应的专门的词汇。不过,理解详细级别对理解Power BI的计算仍然很有帮助,本文以Power BI为例介绍Tableau中的详细级别和详细级别表达式所传递的思想,理解它可以帮助你加深对BI工具计算过程的理解。

详细级别用来描述计算在哪个级别发生,最常见的两种详细级别是:

  • Row Level of detail 行详细级别
  • Visual Level of detail 视觉详细级别

行详细级别

行详细级别的计算发生在数据源所在表的每一行,并且不进行聚合运算。一个典型的行级别运算可以表示为下面的计算列:

Sales by row = SuperStore[Unit Price]*SuperStore[Quantity]

公式在Superstore的每一行计算单价和数量的乘积,得到每行的销售额,保存在一个新的列中。因为计算发生在最底层的明细级别,所以行详细级别的计算粒度最高,聚合度最低(没有聚合)。在DAX中,我们称之为受行上下文筛选的计算。需要注意的是,并不是所有在计算列进行的运算都是行级别运算,比如这个公式:

Sum of Sales = SUM(SuperStore[Sales])

聚合函数SUM忽略行上下文,所以公式得到的是所有销售额的总和,这是一个聚合运算,不是行级别运算。

视觉详细级别

将度量值或计算列拖入画布,视觉级别的计算就发生了。如果把上文定义的SuperStore[sales by row]计算列拖入画布,选择卡片图,结果显示为一个值。视觉详细级别的计算受所有维度筛选器的共同影响,因为本例中没有其他筛选器,所以它不受任何维度的影响,聚合度最高。你可以向画布或黄色区域增加筛选器,这将改变视觉详细级别将产品类别加入画布,修改图表类型为条形图,现在[sales by row] 的视图详细级别变为产品类别,即,被来自产品类别的筛选上下文影响。由于我们可以在画布中自由的对维度进行添加和组合,所以视觉详细级别可以有非常多的变化,从聚合度最高的单个值到明细级别,用一张图形象的表示:可以看出,从金字塔的顶端到底端,不同的数据详细级别对应了不同的分析需求。看到这里,你可能会发现一个共性,这些分析都是可以直接通过拖拽的方式生成,这可以回答一些简单问题,但是无法解决稍微复杂一些的问题。比如,按产品类别计算平均销售额很容易,如果我们要在当前视图中查看每个子类别的平均销售额并只显示出最大的那个,就不是那么容易了。原因是虽然图表显示的还是By类别的平均值,但发生计算的级别已经下降到了子类别粒度而不是默认的类别粒度。或者,如果需要按薪酬区间统计人数,由于区间这个维度本身不包含在原始数据中,计算的详细级别也会发生变化。想回答这类问题,DAX给我们提供了一个很好的理论框架和一套函数作为工具,而Tableau借助的是图形用户界面和详细级别表达式(LOD Expression)

详细级别表达式

详细级别表达式从Tableau 9.0开始加入,在Tableau历史上这被视为一次里程碑式的更新。为什么详细级别表达式如此重要?因为它提供了这样一种可能性:允许用户在不修改视图(图表)的情况下,在计算中指定所需的详细级别,聚合度可以高于和低于当前视图使用的详细级别。也就是说你可以独立于图表所使用的详细级别,自定义另外一套详细级别来执行计算。

实现了这一功能,才真正打开了分析复杂问题的大门。以刚才的平均销售额为例,在没有详细级别表达式之前,必须向视图中加入子类别这个维度才能实现,而借助详细级别表达式,就可以将计算发生的级别定义在公式中。详细级别表达式的关键字类型一共有三种:EXCLUDE、INCLUDEFIXED,它们以不同的方式改变详细级别的计算范围。

Include:以较低的详细级别进行计算

将计算级别指定为低于视觉级别的维度。上面的例子使用Include将平均值的计算从类别维度下移到了子类别。

Exclude:以较高的详细级别进行计算

忽略指定的级别后进行聚合,一个典型场景是计算每个类别占总计的百分比,分母使用Exclude忽略类别筛选,始终返回总计值。

Fixed:指定确切的详细级别

FIXED参与的聚合运算只考虑所列出的维度,忽略其他条件。比如当需要从订单表中找出每个顾客的首次交易记录时,就需要使用FIXED. 它可以明确定义计算发生的聚合级别。与 INCLUDE 和 EXCLUDE 不同,该关键字可独立于可视化内容所用的维度之外来实现这一目标。FIXED 表达式结果的粒度可能会比可视化详细级别更低或更高,具体取决于 FIXED维度和可视化详细级别之间的关系。由于FIXED忽略其他筛选的特性,使用它定义的度量可以直接转化为维度,很多用过Tableau的Power BI用户都觉得这种度量转维度的操作十分方便,其实Power BI里完全可以执行类似的操作,只不过目前没有图形界面辅助,手工操作的步骤比较繁琐。以上是关于Tableau详细级别表达式的简要介绍,想了解详细介绍可以参考Tableau的官方文档和白皮书,参考文献的链接在文章末尾列出。

有奖竞猜

各位读者,如果你是Power BI用户,文章到这里并没有结束,还有一个很重要的问题是:如何在Power BI中实现详细级别表达式这三个关键字的功能?

下面我们模拟一个最简单的情形,提出三个问题,请你用DAX给出解法,基于Orders表定义如下三个LOD表达式,请用DAX给出对应的解:

  1. {EXCLUDE [Customer ID] : SUM([Sales])}
  2. {INCLUDE [Customer ID] : SUM([Sales])}
  3. {FIXED [Customer ID] : SUM([Sales])}

注:实际使用中,由于视觉维度的设定和LOD表达式所用列数的不同,以及多层LOD的嵌套,都会使问题更加复杂,各位可以自行探索也可以在文末留言交流,这里只用最简单的情况举例。解决了这个问题,我们就可以开启下一道考验:在Tableau官网上,有这样一篇非常著名的博文,它从易到难介绍了基于详细级别表达式的15个应用案例,这些案例涉及的场景和分析的思路都很有参考价值,并且最终的报告制作也十分用心。如果说详细级别表达式是皇冠,那15个案例就是皇冠上的明珠,下一篇文章我们一起来见证:如何使用Power BI复刻Tableau 15大详细级别表达式案例参考链接:

  1. 了解详细级别表达式白皮书
  2. How Level of Detail Expressions Work in Tableau
  3. Create Level of Detail Expressions in Tableau
  4. What's new in Tableau 9.0? Part 2 – Level of Detail Expressions
  5. 【Tableau】详细级别表达式LOD_详尽入门(1)

Tableau上面地图与条形图结合_何为计算的详细级别,认识Tableau中的Level of Detail...相关推荐

  1. Tableau上面地图与条形图结合_Tableau 全新地图实战演示,更快、更高、更强

    导语: 近日,Tableau 2019.2 新功能发布,我们第一时间与大家分享了包括矢量地图.参数操作等在内的新功能亮点.戳这里查看更多 Tableau 2019.2 新功能介绍! Tableau 用 ...

  2. Tableau上面地图与条形图结合_Tableau | 20种常用图表(上文)

    数据源:超市数据 使用工具:Tableau 数据源及Tableau工作簿 :https://pan.baidu.com/s/17oq4seZbP0reT8gh170KxQ 密码:pj3z 没错,以超市 ...

  3. Tableau画地图

    Tableau画地图 一.符号地图 第一步,打开"全球超市订单数据.xlsx",将"人员"和"订单"拖到右上方框内: 第二步,新建工作表,在 ...

  4. tableau自定义地图

    我们都知道tableau有自己的地图服务器,只要有相关地理信息的字段,就可以展现为地图的样式,但如果我们只想显示某一个省份详细到各个区.县的时候tableau的地图不支持完全的填充图,仅仅是一个点去代 ...

  5. 如何在label上显示字_如何地图上标注店面_新开的店铺要怎样上地图显示_怎么将公司标记在地图...

    新开的店铺商铺商家商户企业工厂怎么标注地图位置?如何地图上标注店面_怎么将店铺标记在地图_新开的店铺要怎样上地图显示?还没有办好营业执照可以做?您可能会有很多地图疑问?请直接联系腾图通地图服务公司为您 ...

  6. Tableau数据分析笔记-Chapter01条形图、堆积图、直方图

    Tableau数据分析-Chapter01条形图.堆积图.直方图 Tableau Software致力于帮助人们查看并理解数据.Tableau 帮助任何人快速分析.可视化并分享信息.超过 42,000 ...

  7. tableau三轴该怎么做_在视图中为多个度量添加轴

    可通过多种不同方式在单个视图中比较多个度量.您可以: 为每个度量创建单独的轴. 混合两个度量以共享轴. 添加两个独立的轴位于同一窗格中的双轴. 在任何情况下,您都可以自定义每个轴的标记以使用多个标记类 ...

  8. 基于栅格地图的粒子群算法_基于GMapping的栅格地图的构建

    上篇文章讲解了如何在ROS中发布栅格地图,以及如何向栅格地图赋值. 这篇文章来讲讲如何将激光雷达的数据构建成栅格地图. 雷达的数据点所在位置表示为占用,从雷达开始到这点之间的区域表示为空闲. 1 GM ...

  9. 后端根据百度地图真实路径距离_做地图功能的设计,有哪些容易被我们忽略的思考?...

    地图作为使用率很高的工具,涵盖了我们生活的方方面面,除了基础的路线导航功能,解决了我们到陌生地方茫然找路的痛点外,还可以通过地图找美食.酒店住宿,甚至是社交.那么,站在设计的角度,要在产品中加入地图的 ...

最新文章

  1. jQuery学习笔记一
  2. jQuery插件开发--(转)
  3. 邮局--dp经典问题
  4. 48session的生命周期
  5. 01章.计算机网络概述(1.7)
  6. TensorFlow 学习初步-环境搭建
  7. 计算机学习知识,如何学习计算机知识呢
  8. .net Core 学习笔记(实体字段映射,IOC注入)
  9. gdb对应vc调试命令
  10. DMclone for Mac(磁盘克隆软件)
  11. linux中recv函数,为什么recv()函数收到空消息?
  12. 8253/8255/8259相关知识
  13. 【优化求解】基于matlab改进的遗传算法求解带约束的优化问题【含Matlab源码 1773期】
  14. gg修改器偏移量修改_gg修改器偏移量什么意思 | 手游网游页游攻略大全
  15. PPP项目群管理模式的实践探索——以浙江交工富阳PPP项目群为例
  16. 普度大学计算机科学博士,Purdue的Computer Sciences「普渡大学西拉法叶分校计算机科学系」...
  17. QQ商家(QQ在线咨询,QQ推广等)
  18. GOOGLE搜索技巧
  19. 决策树入门案例:泰坦尼克号幸存者预测
  20. js设计模式之代理模式

热门文章

  1. centos 7.2 mysql 允许_CentOS 7.2 mysql-5.7.17 审计插件安装、开启与设定
  2. FireBug实用指南
  3. Web UI⾃动化测试平台,专治Web 的各种疑难杂症。
  4. 标题在图表上_用图表说话——漫谈商务图表的设计理念
  5. 查看虚拟机cpu型号_虚拟机管理器(Virtual Machine Manager)简介 | Linux 中国
  6. idea package自动生成_懒人必备,IntelliJ IDEA中代码一键生成
  7. 汇编语言重写除零中断
  8. *PAT_B_1024_Java(20分)
  9. 一套不错的php,一套不错的PHP笔试题-附答案
  10. java axis webservice_Axis Webservice框架使用案例