优阅达 | Tableau 微课堂(91):类型计算

published: 2023-05-08

类型计算

数据验证-检查长度

示例中是一组病人的身份信息。为了检查所有的 Patient ID 是否至少是 3 位数,我们将使用一个计算来判断 Patient ID 的长度。

右键单击“数据”窗格空白区域,在弹出的菜单中选择 “创建计算字段” ,将字段命名为 “Length”。首先键入如下公式:LEN([Patient ID])。但此时,下方提示此计算出现了错误,单击指示器查看报错消息。

长度公式 LEN()需要字符串或文本类型才能正常计算,而非数字类型。所以我们需要把数字类型转换成字符串类型,这就是类型转换函数的来源。

我们将在 Patinet ID 前插入字符串函数,以实现类型转换。输入 STR,然后用括号将 ID 字段括起来。公式如下:LEN(STR([Patient ID]))
因为长度是在转换成字符串类型后应用的,所以该计算有效,单击“确定”。

在这里可以看到,计算是作为一个度量创建的,但它应该是一个维度。把这个计算字段拖到维度区域,然后在视图中展现出来。

有一堆少于 3 个字符的 ID ,所以我们必须检查并确保这些错误得到纠正。

四舍五入取整

在第 2 个示例中,有一个关于学生及其生日的数据集,我们想看看这些学生的年龄。

右键单击“数据”窗格空白区域,创建一个新的计算字段,并将其命名为 “Age”。

使用 Datediff 公式来找出两个日期之间的差异。有关 DateDiff 函数的详细信息,请参阅 Tableau 微课堂(87):日期计算 视频。

需要计算开始日期和结束日期之间的天数。开始日期是 “Birthday” 字段 ,结束日期是 “Today”,关闭括号。
计算出日期之间的天数后,需要除以 365,得到以年为单位的年龄。计算有效,单击“确定”。
DATEDIFF('day',[Birthday],TODAY())/365

将 “Age” 字段拖入视图中,并显示标签。发现计算出来的数值包含小数点,我们想要的只是年龄的整数,这就需要四舍五入取整。

我们可以用整数函数来实现,去掉小数,只留下整数。右键单击 “Age” 字段并编辑计算。用INT()函数括住整个计算公式。

INT(DATEDIFF('day',[Birthday],TODAY())/365)

现在我们得到了年龄段的整数数值。

你可能想知道为什么我们不在 Datediff 的公式中将 Day 换成 Year 。这里有一个以 Year 来显示时间差结果的计算字段。接下来,我们试试把 “Year” 字段拖入视图中进行对比。

可以看到,有些情况下,“Age” 字段的数值减少了一年。这是因为 DateDiff with Year 只是从每个日期中减去年份值,而不考虑具体日期和月份。

本节 Tableau 微课堂到此结束,感谢你的耐心阅读。

下节课,我将带你学习了解 了解 LOD 表达式。