Step1. 根据身份证计算出生年月
用字符串函数,截取身份证号中表示出生年月的部分。需要说明的是,有的身份证号是18位的,有的身份证号是15位的,所以这里需要做个判断。
根据身份证号,创建计算字段:
![](https://img.haomeiwen.com/i5357809/a378f740c000d936.png)
计算字段的公式如下:
IF LEN([客户身份证号])=20
THEN
DATEPARSE ( "yyyyMMdd", LEFT(RIGHT([客户身份证号],13),8) )
ELSEIF LEN([客户身份证号])=17
THEN
DATEPARSE ( "yyyyMMdd", LEFT(RIGHT([客户身份证号],10),8) )
END
几个函数说明:
1. LEN(string): 计算字符串长度,因为数据源中的字符串带了双引号,所以判断的条件分别为 20位和17位
例如: LEN("abc")=3
2. LEFT(string,num_chars)、RIGHT(string,num_shars) :返回字符串的左起num_char个字符、右起第num_char个字符。大家注意哦,是左边或者右边的第一个字符开始算起的。与Excel的相似函数不同,Excel可以指明从第几个字符开始,取几个字符,tableau采取两边截取的方式。例如:
RIGHT("130131199210092334",12)=199210092334
LEFT(RIGHT("130131199210092334",12),8) )=19921009
3.DATEPARSE :这是日期函数,将字符串更改为日期。"yyyyMMdd" 这是转换后日期的形式,y:year、m:month, d:day。
DATEPARSE ( "yyyyMMdd", ”19921009“)=1992/10月/日,可以通过如下图所示的勾选,实现字段类型的转换。
![](https://img.haomeiwen.com/i5357809/9c513dd82f1f55f3.png)
Step 2:计算年龄
创建计算字段,年龄,年龄的计算公式如下
DATEDIFF('year',[出生年月],TODAY())
这个时间函数的意思是计算今天和出生年月的差值,取年的部分,例如若差值是5年6个月4天,则返回5年。
网友评论