1. 概述
1.1 预期效果
用户有时需要截取字段中多次出现的某个字符指定位置的字符。
例如用户有字段长度不同的字符,需要截取最后一个_后的字符,如下图所示:
或者用户需要截取 A|B|C 字段中 B 列的值,例如用户需要截取所有学历信息,如下图所示:
1.2 实现思路
可以通过功能一键拆分「按分隔符拆分」,或者使用 INDEXOF 、FIND、MID、SUBSTITUTE、RIGHT 等函数组合实现截取字段。
2. 截取最后一个指定字符后的字符
示例数据:截取多次出现的字符后的内容.xlsx
上传示例数据至 FineBI 中,如下图所示:
2.1 新建分析主题
新建分析主题步骤可参见:新建分析主题
2.2 截取指定字符
添加「新增列」,命名为「截取最后一个_后的字符」,输入公式INDEXOF(SPLIT(字段,"_"),LEN(SPLIT(字段,"_"))-1),点击「确定」,如下图所示:
注:公式框中的函数、字段都需要点击左侧的选择区域选择,不能手动输入。
公式说明:
公式 | 说明 | 结果 |
---|---|---|
SPLIT(字段,"_") | 将字段按照_分割成数组 | 分割前:a_b_c 分割后:a,b,c |
LEN(SPLIT(字段,"_"))-1 | 计算字段按照_分割后的数组数-1 | 例如 a_b_c 的计算结果为 2 |
INDEXOF(SPLIT(字段,"_"),LEN(SPLIT(字段,"_"))-1) | 返回SPLIT()分割后数组在最后一个_后的字符 | 例如 a_b_c 的计算结果为 c |
2.2.2 方法三
1)添加「新增公式列」,计算「计算字段按照_分割后的字符数」,输入公式:LEN(SPLIT(字段,"_")),例如 a_b_c 的计算结果为 3 ,如下图所示:
2)添加「新增公式列」,计算「将最后一个_替换为-」,输入公式:SUBSTITUTE(字段,"_","-",LEN(SPLIT(字段,"_"))-1),如下图所示:
3)添加「新增公式列」,计算「从第一个字符开始查找-所在的位置」,输入公式:FIND("-",SUBSTITUTE(字段,"_","-",LEN(SPLIT(字段,"_"))-1),1),如下图所示:
4)添加「新增公式列」,命名为「计算最后一个_后的字符数」,输入公式:LEN(字段)-FIND("-",SUBSTITUTE(字段,"_","-",LEN(SPLIT(字段,"_"))-1),1),如下图所示:
5)添加「新增公式列」,提取字段中最后一个_后的字符,命名为「截取指定字符」,输入公式RIGHT(字段,LEN(字段)-FIND("-",SUBSTITUTE(字段,"_","-",LEN(SPLIT(字段,"_"))-1),1)),如下图所示:
2.3 效果展示
详情参见本文 1.1 节。
3. 截取A|B|C 字段中 B 列的值
注:B 列每条数据字段长度不一致。
示例数据:招聘信息.xlsx
上传示例数据至 FineBI 中,如下图所示:
3. 1新建分析主题
新建分析主题可参见:新建分析主题
3.2 截取指定字符
3.2.1 方法一
在数据编辑界面点击「更多>拆分行列」,进入功能界面,如下图所示:
将字段按分隔符「|」进行拆分,拆分位置选择「第2个字段」。如下图所示:
3.2.2 方法二
添加「新增公式列」,命名并输入公式:INDEXOF(SPLIT(地区学历人数,"|"),1) ,点击「确定」,如下图所示:
注:公式框中的函数、字段都需要点击左侧的选择区域选择,不能手动输入。
公式说明:
公式 | 说明 |
---|---|
SPLIT(地区学历人数,"|") | 将地区学历人数字段根据 | 字符进行划分 例如:「深圳|本科|招5人」变成「深圳,本科,招5人」 |
INDEXOF(SPLIT(地区学历人数,"|"),1) | 返回划分结果字符串第二个位置上的内容 例如:「深圳,本科,招5人」返回「本科」 |
3.2 效果展示
详情参见本文 1.1 节。
更多截取字段内容详情参见:字段分列