历史版本4 :截取多次出现的指定字符后的内容 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 预期效果

用户有时需要截取字段中多次出现的某个字符指定位置的字符。

例如用户有字段长度不同的字符,需要截取最后一个_后的字符,如下图所示:

1602733394888418.png

或者用户需要截取 A|B|C 字段中 B 列的值,例如用户需要截取所有学历信息,如下图所示:

1602744500644043.png

1.2 实现思路

使用 INDEXOFFINDMIDSUBSTITUTERIGHT 等函数组合实现截取字段。

2. 截取最后一个指定字符后的字符编辑

示例数据:截取多次出现的字符后的内容.xlsx

上传示例数据至 FineBI 中,如下图所示:

1602744884131115.png

2.1 创建自助数据集

创建自助数据集,选择上传的 Excel 数据集,并勾选示例字段,如下图所示:

1602744945890259.png

2.2 截取指定字符

点击「+」,添加「新增列」,如下图所示:

1602745175124846.png

2.2.1 方法一

命名为「截取最后一个_后的字符」,输入公式INDEXOF(SPLIT(字段,"_"),LEN(SPLIT(字段,"_"))-1),点击「确定」,如下图所示:

1602745271456908.png

注:公式框中的函数、字段都需要点击左侧的选择区域选择,不能手动输入。

公式说明:

公式
说明结果
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 方法二

命名为「截取指定字符」,输入公式RIGHT(字段,LEN(字段)-FIND("-",SUBSTITUTE(字段,"_","-",LEN(SPLIT(字段,"_"))-1),1)),,点击「确定」,如下图所示:

1602746705461467.png

公式说明:

公式
说明结果
LEN(字段)计算字段的字符数或者数组数例如 a_b_c 的计算结果为 5
LEN(SPLIT(字段,"_"))-1)

计算字段按照_分割后的字符数或者数组数-1


例如 a_b_c 的计算结果为 2
SUBSTITUTE(字段,"_","-",LEN(SPLIT(字段,"_"))-1)将字段中最后一个_替换为-例如 a_b_c 的计算结果为 a_b-c
FIND("-",SUBSTITUTE(字段,"_","-",LEN(SPLIT(字段,"_"))-1),1)从第一个字符开始查找-所在的位置
例如 a_b_c 的计算结果为 4
LEN(字段)-FIND("-",SUBSTITUTE(字段,"_","-",LEN(SPLIT(字段,"_"))-1),1)计算最后一个_后的字符数例如 a_b_c 的计算结果为 1
RIGHT(字段,LEN(字段)-FIND("-",SUBSTITUTE(字段,"_","-",LEN(SPLIT(字段,"_"))-1),1))提取字段中最后一个_后的字符例如 a_b_c 的计算结果为 c

2.3 效果展示

详情参见本文 1.1 节。

3. 截取A|B|C 字段中 B 列的值编辑

示例数据:招聘信息.xlsx

上传示例数据至 FineBI 中,如下图所示:

1602749607785407.png

3.1 创建自助数据集

创建自助数据集,选择上传的 Excel 数据集,并勾选示例字段,如下图所示:

1602749652621220.png

3.2 截取指定字符

点击「+」,添加「新增列」,如下图所示:

1602749686425252.png

命名为「截取学历信息」,输入公式MID(地区经验学历人数,FIND("|",地区经验学历人数)+1,FIND("|",地区经验学历人数,FIND("|",地区经验学历人数)+1)-FIND("|",地区经验学历人数)-1),点击「确定」,如下图所示:

1602749711109838.png

公式说明:

公式说明
FIND("|",地区经验学历人数)+1返回第一个|后字符的位置例如:深圳|本科|招5人 返回 4
FIND("|",地区经验学历人数,FIND("|",地区经验学历人数)+1)-FIND("|",地区经验学历人数)-1返回第一个|后到第二个|前字符的长度例如:深圳|本科|招5人 返回 2
MID(地区经验学历人数,FIND("|",地区经验学历人数)+1,FIND("|",地区经验学历人数,FIND("|",地区经验学历人数)+1)-FIND("|",地区经验学历人数)-1)返回第一个|和第二个|之间的字符例如:深圳|本科|招5人 返回 本科

3.2 效果展示

详情参见本文 1.1 节。