美文网首页
【只要有手就能学的Tableau教程】前方有恶龙,打败丫!计算(

【只要有手就能学的Tableau教程】前方有恶龙,打败丫!计算(

作者: Charles_DT | 来源:发表于2020-04-28 20:27 被阅读0次

    今天这条恶龙有点儿硬,但是你一定可以战胜它!
    还是先来看一个Viz。

    冠状病毒股票市场的赢家和输家
    原文链接:https://public.tableau.com/zh-cn/gallery/winners-and-losers-coronavirus-stock-market?tab=viz-of-the-day&type=viz-of-the-day

    行级别与聚合

    打开Tableau,选择示例-超市数据源。
    我们想看一下2019年各产品子类别的利润率情况(利润率=利润/销售额)
    很明显我们要写个计算字段啦。


    更改一下利润率的默认属性为百分比,你会看到如下结果。

    这个数据是不是高的离谱了?我们来看一下数据源

    如果你不确定这个利润率的计算结果,可以自行用计算器检验。
    检验完之后,你会发现确实是这样算的,每一行的利润/销售额得到了我们的利润率,然后呢?因为我们视图中要看到的数据是各子类别的利润率情况,Tableau会把每一行的利润率做SUM,得到各子类别的利润率。这里就有问题了。

    我们有点常识的人都知道,比率相加是没有意义的,如果要算某一个类别的利润率,应该用这个类别总的利润/总的销售额,是这样吧?

    也就是说,当我们要计算利润率的时候,不能使用行级别数据来做运算然后再相加,这样会得到错误的结果,所以我们要修改利润率计算:


    然后我们把v1、v2放在一起做一个对比。



    很明显,v2版本是我们按对应子类别先累加利润和销售额,然后再相除的结果。

    在多数情况下,我们的计算字段会使用聚合字段来做分析运算,因为从业务视角通常都会有一个维度对度量做聚合,而行级别的数据更多情况会聚焦在开发视角。

    我已经尽力讲的很通俗易懂了,当你的计算字段复杂的时候,理解什么时候用聚合运算什么时候用行级别运算就更重要了。

    IF ELSE

    如果你懂编程的基本内容,这部分对你应该没什么难度~
    开始,现在我们想看一下各产品子类别的盈亏情况,利润大于0时,盈利,利润小于0是亏损,利润等于0时,保本,我需要在图表中用三种不同的颜色标识出来。

    • 拖动子类别到行功能区
    • 拖动利润到列功能区

    根据需求,我们需要对利润来做一个条件判断:

    • 如果利润>0,盈利
    • 如果利润=0,保本
    • 如果利润<0,亏损

    今天我们讲最简单的一种,IF ELSE。
    按照上面的思路,把它按Tableau能认识语言描述一下:


    IF SUM([利润]) > 0 then "盈利"
    ELSEIF SUM([利润]) = 0 then "保本"
    ELSE "亏损"
    END

    固定语法结构你可以查看示例:


    做好字段后把它拖动到颜色标记卡上,修改一下颜色

    结束

    今天讲了两个很常用的计算功能,多多实践才能完全掌握~
    Practice makes perfect!


    下期预告:计算(三)

    相关文章

      网友评论

          本文标题:【只要有手就能学的Tableau教程】前方有恶龙,打败丫!计算(

          本文链接:https://www.haomeiwen.com/subject/knbmwhtx.html