考点 2.3.5 Create a calcualted field (e.g. string, date,simple artihmetic)
函数的组成部分
如果我简化一下一个函数, 那么函数的公式基本上就是 输出 = 函数(输入). 如果我把这个公式再拓展一下
输出 = 函数 (输入1, 输入2, 输入3)
在这其中输入1, 2, 3, 可能是一个来自于数字中的变量, 有可能是手动输入的一个值. 而更重要的是一个函数的其中一个输入值也可能是另一个函数的输出值.
当一个函数的输出值变成另一个函数的输入值的时候, 我们管这个情况叫做Nested Calculation, 嵌套,就是一层套着一层. 嵌套的计算是由内向外扩散. 如果你想要控制最外层的结果, 你往往需要在最内层就开始控制输出值长什么样.
函数的输入格式和位置
函数的输入是函数最重要的组成部分. 因为很多时候你的结果错了, 或者函数报错,就是因为你没有严格的按照这个函数的要求输入正确的格式. 这一点一般对初学者影响比较小, 因为一般的初学者可能最多就是接触过Excel. 但是对于专业的编程开发者就不一样了, 我就以计算两个日期之间差几天的DATEDIFF函数为例, Python可能是直接两个日期相减, 不需要什么函数. 而在SQL当中又是一种格式, Tableau又是另一种格式. 因此记住输入的格式和位置非常重要.
Excel: DATEDIF(start date, end date, “d“)
DAX: DATEDIFF( start date, end date, DAY)
Python: (End Date - Start Date).days
SQL: DATEDIFF(day, End Date, Start Date)
Alteryx: DatetimeDiff(End Date, Start Date, “Days“)
Tableau: DATEDIFF('day', Start Date, End Date)
仔细观察同一函数在上边各种不同工具里写法, 你会发现他们start date, end date, 和 days这个参数的写法, 位置全都不一样. 当你是从其他编程平台转到Tableau时, 一定要时刻注意这些区别.
如何在Tableau内快速的检查函数需要的输入格式和位置?
Tableau内置函数搜索引擎
为了帮助你快速寻找这些函数, Tableau在计算编辑器的侧面内置了小的搜索引擎帮助你快速的找到一些函数的公式, 并且提供了一些解释和案例来帮助你理解这些函数. 这个搜索引擎相比一次次的查询文档, 可以节省你非常多的时间.
在下边的这个动图里, 我展示了如何快速查询DATEDIFF这个函数所需要的输入格式. 很多初学者可能都不知道在计算编辑器右侧的这个小箭头的后边还有一个函数搜索引擎.
从现在开始, 你就必须要熟练的掌握它 除非你能完全记住每一个函数
这个搜索引擎是如何保住你的老脸的 😳
想象一下这个场景:你需要在展示你的dashboard的时候修改一些东西,但是你卡住了0_o. 你实在想不起来用哪个函数能把数字转换成string了。你试了一下STRING( ), 但是Tableau毫无反应。这个时候问题来了,你能在众目睽睽之下打开Google,再搜索,function converting number to string in Tableau吗?
你品,你细品,这个时候你尴尬不尴尬。反正我可丢不起这个老脸。专业性何在对不对!但是你现在不一样了,你可以来到右侧这个Function搜索引擎,在上边先点击Type Conversion,再一看啊,原来是STR( )啊。 非常优雅,看起来也非常专业对不对!
函数的类型
在Tableau的函数搜索引擎中, Tableau将所有函数分成了下边这么九种类型. 这有两种好处, 第一是即使你不记得具体某个函数到底是怎么拼写的, 你也可以通过分类去找, 第二是有的时候, 你可能并不知道某种函数存不存在, 所以可以通过这个分类去探索还有哪些函数可用. 作为新人, 最重要的理解这些函数的种类是什么意思, 未来在找的时候能找的到. 试图一开始就全掌握那肯定不现实的
Number: 数值函数
比如求个平方, 求个绝对值
String: 字符函数
求个字符的长度
Date: 日期函数
最常见的就是计算两个日期之间差几天, 差几个月. 某个日期的一个月之后和一个月之前是哪天等等.
Type Conversion: 格式转换函数
把一个数字转化成一个字符
Logical: 逻辑函数
逻辑函数就是运算逻辑值的函数, 逻辑值就是所谓真,假, 空啊 比如ISNULL( )函数就是判断一个值是不是空值的函数
Aggregate: 聚合函数
求和, 求均值函数
User: 用户函数
用户函数的输入与其他所有函数的输入都不同, 它所使用的是当前登录的Tableau用户名来进行计算的. 最主要的作用是保密
假设某一行数据只能让一个叫做David的用户看, 在数据中我们添加一个column叫做[Allowed User]. 那么我们可以创建一个叫做 [Allowed User] = [User Name]的计算来实现这个目的.
当Allower User这一列的值David, 刚好和当前登录的用户David一致的时候, 那么David就可以在Tableau当中访问这一行数据.
Table Calcualtion: 表计算函数
表计算函数就是一系列可以帮助你实现表计算的函数. 现在你不用去看这个部分, 因为表计算有更方便的方法去创建他们.
Spatial: 空间计算函数
将坐标转换成点, 将两个点练成直线的函数.
高频函数 vs 冷门函数
Tableau中各个函数的使用频率是截然不同的. 有的函数可能你在整个Tableau的使用当中都不曾碰过, 而有些函数是你几乎只要用就绕不开的函数. 一个好的教程,一定是优先讲解那些最常用并且重要的函数.
另一方面, 我要挖掘出那些你压根不知道, 或者你刚开始不知道, 也看不懂, 但是我必须一顿点你, 让你记住的函数. 这些你刚开始学习时候看不懂,读不明白, 但是实际上非常有用的函数也就是本来是'高频函数' 但是被打入冷宫的'冷门函数', 我必须把他们挖掘出来