Tableau LOD函数史上详细教学(tableau zn函数)
wptr33 2025-07-03 01:10 5 浏览
LOD技术即Levels of Detail的简称,意为多细节层次。
——来自百度百科
一般来说,LOD在tableau数据分析中最常用的场景是,当你在查看服务课级别的汇总数据的时候,你还想算一下,服务课某个指标(如出货),占整个大区的占比,这时候,视图里面摆的全是服务课,所以指标都是按服务课来分摊的(要么服务课平均,要么服务课总计)
提出问题1:那怎样在保持视图显示服务课级别的同时,通过公式计算得出整个大区的总和呢?
下面以湖南大区2月出货数据为例——如何同步计算服务课出货占整个大区的占比?
1、这就需要一个FIXED函数去将你的计算维度提升到大区层级(这个数据源里面用的【公司】字段代替大区)写法如下:
大区总出货={FIXED [公司]:SUM([出货额])}
# 注意写公式的时候,等号(=)和左边的部分不需要的,自己建计算字段的时候写好名字就可以了。
# 另外,公式中的中括号'['也是可以省略不写的,只要你写的字段名,和数据源中的字段名完全一致即可。
# 但是,冒号不能少,冒号前面代表你要锁定的颗粒度层级,右边表示你要汇总数据的方法。
2、那么相应的服务课出货额占大区总出货比例算法无非就是:服务课总出货/大区总出货;公式计算方式如下:
SUM(出货额)/SUM({FIXED [公司]:SUM([出货额])})
# 注意这里要么直接把之前建好的【大区总出货】字段直接拖进计算区域,要么在手写公式的同时,在LOD函数外围套上一个SUM或者其他任意汇总函数(MIN\MAX\AVG都可以)
# 小伙伴想一下,为什么服务课总出货直接就等于SUM(出货额)呢?这是因为视图里面已经明确将事业部(二级部门)、服务课(三级部门)摆到行、列功能区了,
那么整个视图,默认的计算颗粒度,会去到服务课级别(无论是平均、汇总、最大值、最小值都会是如此)。
公式截图
3、这里就是通过FIXED 将分母的计算维度扩大、且固定到大区层面了。我们把做好的计算字段拖进画布,来看一下计算完的结果——
提出问题2:是不是有点奇怪,算一个大区的占比,结果比例总和不等于100%?
我们回过头来看这个公式 {FIXED [公司]:SUM([出货额])}
这里的固定维度,把一切数据都限制在公司层级,此外它就并不管其他的筛选了,尤其是这个【年月(期间)】='2021年2月',为什么会这样呢?
发现问题:这里要引出另外一个问题——筛选器的优先级顺序
筛选器有很多种,连LOD函数,也是筛选器!除此之外,我们见过或没见过的筛选器如下:
筛选器1:这个叫数据提取过滤器
筛选器2:这个叫数据源过滤器
筛选器3:维度过滤器,和度量过滤器——下面蓝色的是维度过滤器,绿色的是度量过滤器,一般在我们桌面端工作区域的中间部位,以选项卡方式出现:
筛选器4:上下文过滤器——这个过滤器,我们大部分用户从来没用过:
解决问题:将维度筛选器提升为上下文筛选器,使其优先级高于LOD函数筛选器!
将2个维度筛选器添加到上下文后,可以看到2个蓝色胶囊分别变成灰色了,也就代表他们变成了上下文过滤器,但是!
到底什么是上下文过滤器呢?其实它就是一个过滤器,它与其他过滤器的唯一区别在于下面这张图——每个过滤器的优先级都不一样!
(小朋友们不要再问我什么是优先级,优先级就像同一根水管上,装了好几个阀门,那最先起作用的肯定是最前面的阀门啦,毕竟前面关闸,后面的开关全部都只能哦豁了)
所以我们通过上面的步骤,将普通的维度筛选器(蓝色胶囊)提升为上下文筛选器,那么它的优先级别就超过FIXED LOD函数了,那么,它就可以在“数据”这跟大水管的前方对数据来源进行优先调整拉!!我们来看看调整后的结果——
从图中看到,各个服务课出货占比的总和,加起来确实等于100%了。
这个问题,其实有很多其他解决方法(如直接SUM([出货])/TOTAL(SUM([出货]),无需考虑优先级),这里借用FIXED函数,让大家对LOD函数有所了解,对未来解决复杂计算有极大帮助
另外,这里是用服务课级别来举例,当大家在看事业部数据的时候,也是同样的道理,怎样保证我又能看具体事业部的出货额,同时还能看到这出货额与大区总出货的占比,就是同样的解决方式了。
相关推荐
- 「网络安全」JAVA代码审计——XXE外部实体注入
-
一、WEB安全部分想要了解XXE,在那之前需要了解XML的相关基础二、XML基础...
- Web前端面试题目及答案汇总(web前端面试题最新)
-
Web前端面试题目及答案汇总来源:极客头条以下是收集一些面试中经常会遇到的经典面试题以及自己面试过程中无法解决的问题,通过对知识的整理以及经验的总结,重新巩固自身的前端基础知识,如有错误或更好的答案,...
- 什么是脚本文件?与可执行文件有什么不同?
-
今天的内容是脚本文件和可执行文件是两种不同类型的计算机文件,它们在结构和执行方式上有显著区别。脚本文件:定义与特性...
- 20个实用Python运维脚本(收藏级)(python 运维工具)
-
系统环境:支持Linux(Ubuntu/CentOS/Debian)和Windows...
- 2026年前每个开发者都应该学习的技能
-
优秀开发者...
- Linux 如何每 5、10、15 或 30 分钟运行一次 Cron 作业?
-
在Linux系统中,Cron是一个强大的工具,用于自动化重复性任务。通过合理配置...
- Shell脚本编程进阶实战:从入门到高效自动化
-
Shell脚本编程进阶实战:从入门到高效自动化一、参数处理进阶:打造专业级CLI工具1.高级参数解析示例...
- 在Bash中按分隔符拆分字符串的方法
-
技术背景在Bash脚本编程中,经常会遇到需要按特定分隔符拆分字符串的需求,例如处理CSV文件、解析日志等。掌握字符串拆分的方法对于数据处理和脚本自动化非常重要。...
- 程序员用5分钟,把一个400多MB的苹果安装包削掉了187MB
-
丰色发自凹非寺量子位|公众号QbitAI前些日子,一个...
- 如何在 Windows 上编写批处理脚本
-
你知道如何使用命令提示符吗?如果这样做,您可以编写一个批处理文件。在最简单的形式中,批处理文件(或批处理脚本)是双击文件时执行的几个命令的列表。批处理文件一直回到DOS,但仍然适用于现代版本的Win...
- 一文搞懂shell脚本(shell脚本应用实战)
-
一文搞懂shell脚本1、shell脚本介绍什么是shell脚本...
- 一文讲清ShellScript脚本编程知识
-
摘要:本文详尽地讲述了ShellScript的基础内容,还有它在Linux系统里的运用情况,涵盖了它的基本语法、常用的命令以及高级的功能。ShellScript可是一种简单又非常实用的编...
- 在Bash脚本中获取自身所在目录的方法
-
技术背景在使用Bash脚本时,有时需要获取脚本自身所在的目录。比如,当脚本作为另一个应用程序的启动器时,需要将工作目录更改为脚本所在的目录,以便对该目录中的文件进行操作。然而,由于脚本的调用方式多样(...
- shell中如何确定脚本的位置?这篇文章告诉你
-
我想从同一个位置读取一些配置文件,如何确定脚本的位置?。这个问题的出现主要是由两个原因引发的:一是您希望将脚本的数据或配置进行外部化,因此需要一种方式来寻找这些外部资源;二是您的脚本需要对某些捆绑资源...
- bash shell 语法(bash命令用法)
-
下面是**Shell(Bash)语法的常用知识点总结**,适合初学者和日常脚本编写参考。内容涵盖变量、判断、循环、函数、重定向、正则、数组等常见用法。---#Shell(Bash)语法速查总结...
- 一周热门
-
-
C# 13 和 .NET 9 全知道 :13 使用 ASP.NET Core 构建网站 (1)
-
因果推断Matching方式实现代码 因果推断模型
-
git pull命令使用实例 git pull--rebase
-
面试官:git pull是哪两个指令的组合?
-
git 执行pull错误如何撤销 git pull fail
-
git pull 和git fetch 命令分别有什么作用?二者有什么区别?
-
git fetch 和git pull 的异同 git中fetch和pull的区别
-
git pull 之后本地代码被覆盖 解决方案
-
还可以这样玩?Git基本原理及各种骚操作,涨知识了
-
git命令之pull git.pull
-
- 最近发表
- 标签列表
-
- git pull (33)
- git fetch (35)
- mysql insert (35)
- mysql distinct (37)
- concat_ws (36)
- java continue (36)
- jenkins官网 (37)
- mysql 子查询 (37)
- python元组 (33)
- mybatis 分页 (35)
- vba split (37)
- redis watch (34)
- python list sort (37)
- nvarchar2 (34)
- mysql not null (36)
- hmset (35)
- python telnet (35)
- python readlines() 方法 (36)
- munmap (35)
- docker network create (35)
- redis 集合 (37)
- python sftp (37)
- setpriority (34)
- c语言 switch (34)
- git commit (34)