1. 概述
在进行数据整合时,字段的拼接合并、分列必不可少。
数据集中有时候需要合并部分需求字段。
数据集中有字段结构为用某些分隔符连接起来的字符串,使用时需要拆分开只提取固定位置的字符串,或者整体拆分为多列。
2. 字段合并组合
2.1 字段直接合并
5.1.12 之后的版本,文本字段的合并是通过「+」实现的,当然也可以使用函数 CONCATENATE 。
注:类似于 Excel 中的 & 。
例如需要将姓和名拼接成一个字段「姓名」,如下图所示:
输入公式:姓+名,则将字段进行了拼接,如下图所示:
同样也可以使用 CONCATENATE 函数,如下图所示:
2.2 字段合并并用一个字符进行隔开
如果想给每个字段加一个字符进行隔开,同样使用+即可。
例如使用「销售DEMO>地区数据分析」中的数据,需要将国家、省份、城市数据进行合并,并用 - 隔开。
创建字段,命名字段并输入公式:国家+"-"+省份+"-"+城市,点击「确定」,如下图所示:
得到「地区」字段如下图所示:
3. 字段分列
根据字段内的字符,将字段拆分成多列。
在 FineBI 中通过使用函数创建「新增列」或者仪表板新增「计算字段」实现字段的分列。
3.1 示例
例如需要截取电话号码,示例在自助数据集中创建新字段进行分列,截取「电话」号码的最后八位构建新字段「电话号码」。
1)使用 Demo 数据「供应商信息表」制作自助数据集,选择字段「联系人姓名」和「电话」,如下图所示:
2)选择新增列,使用 RIGHT 函数,新增列「电话号码」截取电话号码的后八位,输入公式:RIGHT(电话,8),如下图所示:
3.2 更多公式
更多分列公式见下表。
需求 | 公式 | |
---|---|---|
字符只在字段里出现一次 | 截取固定位数的字符 | 示例:RIGHT(电话,8) |
取「字符前」的字段内容 | LEFT(字段名,FIND("字符",字段名)-1) 示例:LEFT(用户账号和密码,FIND(":",用户账号和密码)-1) | |
取「字符后」的字段内容 | RIGHT(字段名,LEN(字段名)-FIND("字符",字段名)) 示例:RIGHT(用户账号和密码,LEN(用户账号和密码)-FIND(":",用户账号和密码)) | |
去掉字段后固定数目的字符 | LEFT(字段名,LEN(字段名)-需要去掉的字符长度) 示例: | |
去掉字段前固定数目的字符 | RIGHT(字段,LEN(字段)-需要去掉的字符长度) | |
字符在字段中多次出现 | 取字段中最后一次多次出现的字符后的内容 | INDEXOF(SPLIT(字段名,"_"),LEN(SPLIT(字段名,"_"))-1) 示例:INDEXOF(SPLIT(字段,"_"),LEN(SPLIT(字段,"_"))-1) |
取字段中倒数第二次多次出现的字符后的内容 | INDEXOF(SPLIT(字段名,"_"),LEN(SPLIT(字段名,"_"))-2) 示例:INDEXOF(SPLIT(字段,"_"),LEN(SPLIT(字段,"_"))-2) | |
以此类推即可实现字段分列... |
在进行分列后可能需要将分开的多个字段合并在一列中,此时可以使用上下合并功能,详情参见:逆透视