Tableau中的伪详细级别LOD计算
admin
2023-01-31 17:28:45
0次

这年头假货泛滥,详细级别计算(即LOD Expressions)也不例外。


Tableau中的伪详细级别LOD计算


我们知道,Fixed的详细级别计算是不受维度筛选器控制的,而表计算则受它控制。

 

Tableau中的伪详细级别LOD计算

 

 

当我们用一个表范围的LOD计算来建一个百分比时,即使筛选器只选择维度的一个值(Accessories),它也能保持原来的百分比,而表计算的百分比则自动变为百分之百。


% by Table scopped LOD Calcs:

SUM([Sales])/SUM({SUM([Sales])})

Tableau中的伪详细级别LOD计算

 

然而,有时候你会发现Fixed的LOD计算居然也受维度筛选器的控制,这样的Fixed LOD计算可称为伪LOD计算。比如下图,我们用一个Fixed的计算求出随着时间的变化,三个Category的Sales的平均值:


bTableau中的伪详细级别LOD计算


当维度筛选器中只选择Category的两个值时,用Fixed LOD计算出的平均值居然会变!为什么会这样?说好的Fixed LOD计算不受维度筛选器控制呢?


Avg by Fixed:

AVG({ FIXED [Category],YEAR([Order Date]):SUM([Sales])})


Tableau中的伪详细级别LOD计算 


 

仔细探究一下,我们发现这儿的Fixed LOD计算只是为了求出各Category随时间变化Sales的平均值而已,不用Fixed LOD 计算,我们一样可以算出平均值:


Avg by Normal Calcs:

SUM([Sales])/COUNTD([Category])


Tableau中的伪详细级别LOD计算


所以,这儿维度筛选器对平均值起作用就不难理解了。那么,如果我们需要无论怎样选择Category,其平均值都维持不变,该如何创建计算字段呢?很显然,我们需要一个“真正的” Year(Order Date)被Fixed的LOD计算:


Avg by Nested LOD:

{ FIXED YEAR([Order Date]):AVG({ FIXED [Category],YEAR([Order Date]):SUM([Sales])})}

 

这时,当选择两个Category或三个Category时,平均值保持不变。



Tableau中的伪详细级别LOD计算


Tableau中的伪详细级别LOD计算 


 根据嵌入式LOD计算的黄金法则(Golden Rule),当内层是Include计算时,外层Fixed的维度可以传承到内层,所以上面的计算字段也可改成以下计算式,更为简洁。


{ FIXED YEAR([Order Date]):AVG({INCLUDE  [Category]:SUM([Sales])})}

 

Tableau中的伪详细级别LOD计算

 

再看另外一个例子。我们建一个以州为单位的地图,再建一个Fixed的LOD计算:


Category Sales:

{ FIXED [Category]:SUM([Sales])}

 

由于大多数的州都销售了所有三个Category的产品,所以基本上Category Sales都等于销售总值2,297,201,将Category Sales的大小用颜色标记出来。


Tableau中的伪详细级别LOD计算

 

然而当我们选择在Control Filter中去掉Subcategory维度的Accessories时, 南达科他州的Category Sales值会有变化:


Tableau中的伪详细级别LOD计算


为什么?因为南达科他州很特殊,它的Technology Category下只有Accessories一个Subcategory,当我们不选Accessories时,就少了整个Technology这个 Category,所以其Category Sales值当然会有变化。


Tableau中的伪详细级别LOD计算


那么为什么维度筛选器会影响Fixed LOD计算的Category Sales的值呢?因为此处Category Sales也是一个伪 LOD计算!不用Fixed,而用Include和Exclude LOD计算我们一样可以得到相同的Category Sales的值:


Alternative Category Sales:

IF COUNTD([Category])=1 OR COUNTD([Category])=2

THEN SUM({ INCLUDE [Category]:SUM({ EXCLUDE [State]:SUM([Sales])})})

ELSE SUM({ EXCLUDE [State]:SUM([Sales])})

END



Tableau中的伪详细级别LOD计算


同样,如果我们希望Subcategory的选择不影响Category Sales的值,就必须Fix State这个维度,这种嵌入式Fixed LOD计算才真正不受维度筛选器的控制。


Category Sales Fixed State:

{ FIXED [State]:SUM({ FIXED [Category]:SUM([Sales])})}

 


Tableau中的伪详细级别LOD计算


Tableau中的伪详细级别LOD计算

 

LOD详细级别计算是Tableau所有版本进化过程中最激动人心的演变。自从有了LOD,Tableau才真正从众多竞争对手中脱颖而出。 LOD让从前不可能做到的或只有在数据源级别才能解决的复杂计算变得十分简单。掌握好LOD计算,Tableau水平将有实质性的飞越!


LOD计算是Tableau的重点和难点,需要用离散式思维才能真正理解并掌握。大多数Tableau初学者都会遇到下列问题:

                (1)很多商业问题不知如何用创建计算字段解决问题。

                (2)不知何时该用LOD计算,用何种LOD可达到目标。

                (3)看见别人做的LOD计算,无法理解。

                (4)觉得自己的Tableau水平遇到了瓶颈,无法突破。


六小时视频教程《Tableau 高手进阶 - 深入了解LOD详细级别计算》避开枯燥无味的定义、概念和公式,力求用通俗易懂的语言透彻讲解LOD计算的本质,并用大量实际案例加以巩固,让你建立起系统的LOD思维,在实际工作中不自觉地用LOD计算解决各类商业问题。欢迎到51CTO网站观看此课程并提出宝贵意见!


课程链接:

https://edu.51cto.com/course/20183.html?source=so

 

 

 


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...