数据分析函数字典第三期:字符串函数

1 评论 5274 浏览 8 收藏 12 分钟

本文笔者为大家介绍了BI函数字典中的23个字符串函数:CHAR、CLEAN、CODE、FIND、FORMAT、LEFT……

一、CHAR

定义:

char(I):将一数字格式化为指定格式后输出

参数:

I:用整数表示的字符的ASCII码

示例:

根据ASCII码返回单个字符的串,返回值为单个字符

CHAR(65)=”A”

二、 CLEAN

定义:

CLEAN(C):将串中的不可见字符去掉。

参数:

C:指定的字符串

示例:

去掉不可见字符后的串,返回值为字符串

clean(” 我 是 中国人 “)=”我是中国人”

三、CODE

定义:

CODE(C):返回串中第一个字符的ASCII码

参数:

C:指定的字符串

示例:

返回指定串中第一个字符的ASCII码,返回值为整数

CODE(“abc”)=97

四、FIND

定义:

FIND(C1,C2):在串C2中查找子串C1,并返回子串第一次出现的位置,(0代表第一个字符);如果没找到,则返回-1。与Search不同,FIND区分大小写。

参数:

C1,C2均表示字符串,其中C1表示要查找的子串

示例:

在串C2中查找子串C1,并返回子串第一次出现的位置,返回值为整数

FIND(“AB”,”AAABBBBB”)=2

FIND(“Ab”,”AAABBBBB”)=-1

五、FORMAT

定义:

FORMAT(C,N):将一数字格式化为指定格式后输出

参数:

C:需要格式化的字符串的格式,完整的格式为”%0:,6.3f”,各部分说明见示例。

N:要格式化为指定格式的数值

示例:

将一数字格式化为指定格式,返回值为字符串或数值。

format(‘%0:,6.3f’,1245.5634)=1245.563 将浮点数num转换为字符串,并指定小数点后位数。

详细说明:

format函数格式化数字输出的操作符由6部分组成:

  1. %:是起始控制符,表示从此处开始的字符串为格式化控制参数
  2. 0::表示控制格式化第几个数,此处”0:”表示控制第一个数,例如”5:”表示控制第5个数。此操作符也可以不写,系统将采用默认模式,默认的是从左往右顺序格式化
  3. ,:匹配”,”和”,”,表示需要控制格式化输出中显示千分符,如果不写”,”和”,”则表示不显示千分符
  4. 6:表示需要确保输出的位数为6位,位数不足前面以0补足(该控制一般应只对整数使用)。如对于数字1则会输出为000001(特别的,对于小数,则表示控制整个数的位数,最好不要在控制小数时使用此操作符)
  5. .3: 表示控制小数位输出的个数,如.3表示显示3位小数,对于太大的数,小数位尽量不要控制
  6. f’: 匹配字符,该字符为类型转换字符,目前支持”d”(表示整数)”f”(表示小数)”s”(表示字符串),使用此操作符表示将输出数转换为指定类型输出。

例如:

函数输出说明:

format(‘%.3f’,1.0)1.000 控制小数位数

format(‘%3d’,1) 0001 整数位不足补0

format(‘%,f’,1111111111111.1111) 1,111,111,111,111.111 显示千分符

format(‘%d’,12.5) 13 小数转换为整数(四舍五入)

format(‘%0:3d %1:.2f’,12.5,10.4)0013 10.40 多数字控制(从0开始,”0:”表示控制第一个数字)

format(‘%5.3f’,1.0) 01.000 最好不要控制小数位数的同时控制总的位数

format(‘%.3f’,123234234234325345.5634)123234234234325344.000 太大数时,小数可能不准

六、LEFT

定义:

LEFT(C,I):返回一字符串左边I个字符组成的子串,其中I为整数

参数:

C:指定的字符串

I:要返回的字符的个数,为整数

示例:

返回一字符串左边I个字符组成的子串,返回值为字符串

LEFT(“ABCDEF”,3)=”ABC”

七、LEN

定义:

LEN(C):返回串的长度。如果字符是汉字,则每个汉字的长度为1。

参数:

C:指定的字符串

示例:

返回串的长度,返回值为整数

LEN(“ABCDE”)=5 LEN(“武汉”)=2

八、LOWER

定义:

LOWER(C):将串变成小写

参数:

C:指定的字符串

示例:

将串变成小写,返回值为字符串

LOWER(“AbCd1″)=”abcd1”

九、IN

定义:

IN(C1,C2):判断C1是否是C2的子串

参数:

C1、C2是二个字符串

示例:

判断C1是否是C2的子串,如果C1是C2的子串,则返回TRUE

In(“00″,”00 01 02”)=TRUE

十、MID

定义:MID(str,I, n)

返回串中从I开始的n个字符的子串,其中:I,n都为整数,串的基数n从0开始。

参数:

Str: 指定的字符串

I: 返回的子串的起始位置,从0开始

N: 返回的子串中字符的数据量

示例:

返回串中从I开始的n个字符的子串。其中:I,n都为整数

MID(“ABCDEF”,2,3)=”CDE”

十一、MT

定义:

MT(C1,C2):判断C1与C2是否模式匹配

参数:

C1: 参数C1为要判断的字符串。

C2: 参数C2为模式匹配的正则表达式,*表示任意字符串,?表示任意单个字符。如果有多种模式,可以用逗号分割。

示例:

判断C1与C2是否模式匹配,匹配返回TRUE,否则返回FALSE

十二、REPLACE

定义:

REPLACE(C1,C2,I1,I2):将串C1从I1开始的I2个字符替换成新串C2。

参数:

C1、C2: 指定的字符串,其中C2为要替换的子串

N1: 指字符串的起始位置,串的起始位置从0算起,为整数

N2: 指串C1中要替换掉的字符的个数,为整数

示例:

将串C1从I1开始的I2个字符替换成新串C2

十三、REPT

定义:

REPT(C,I):将一字符重复若干次,变成一新串。

参数:

C: 指定的字符串

I: 串重复的次数,为整数

示例:

将一串重复若干次,变成一新串

REPT(“A”,5)=”AAAAA”

十四、Right

定义:

right(C,I):返回一字符串右边I个字符组成的子串,其中I为整数。

参数:

C: 指定的字符串

I: 要返回的字符的个数,为整数

示例:

返回一字符串右边I个字符组成的子串,返回值为字符串

RIGHT(“ABCDEF”,3)=”DEF”

十五、RMBDX

定义:

rmbdx(N):将数值转变成大写人民币串。

参数:

N: 要转换的数值

示例:

将指定的数值转变成大写人民币串

RMBDX(1203.45)=”壹仟贰佰零叁元肆角伍分整”

十六、Same

定义:

same(C1,C2):判断两串是否相等,不区分大小写

参数:

C1、C2: 要比较的两个字符串

示例:

判断两串是否相等,不区分大小写。如果相等,返回TRUE,否则返回FALSE

SAME(“aBc”,”ABC”)=TRUE

十七、Search

定义:search(C1,C2)

在串C2中查找子串C1,并返回子串第一次出现的位置,(0代表第一个字符)。如果没找到,则返回-1。与Find不同,SEARCH不区分大小写。

参数:

C1、C2: 两个字符串,C1为要查找的子串

示例:

在串C2中查找子串C1,并返回子串第一次出现的位置。返回值为整数

SEARCH(“AB”,”AAABBBBB”)=2SEARCH(“Ab”,”AAABBBBB”)=2

十八、STR

定义:

STR(N):将数值变成串

参数:

N:要转换成串的数值

示例:

将数值变成串

STR(1)=”1″

十九、Strcat

定义:

STRCAT(C1,C2,…):将所有串合并。该合并不受255长度限制

参数:

C1、C2…要合并的字符串

示例:

将所有串合并后,返回一字符串

STRCAT(“AB”,” CD”,” EF”)=”AB CDEF”

二十、Substitute

定义:substitute(str,oldsub,newsub)

将串中的oldsub子串换成另一newsub子串。不管子串出现多少次,全部换掉。

参数:

Str: 指定的字符串

Oldsub: 字符串将要替换的子串

Newsub: 用于替换的子串

示例:

将串中的oldsub子串换成另一newsub子串

Substitute(“AbCdEFCdEG”,”CdE”,”123″)=”Ab123F123G”

二十一、Trim

定义:

trim(c):将串中的头尾空格及TAB键去掉

参数:

C: 指定的字符串

示例:

将串中的头尾空格及TAB键去掉

TRIM(” AB C “)=”AB C”

二十二、value

定义:

value(C):将字符串转换成数值。如果转换不成功,则返回Err

参数:

C: 要转换的字符串

示例:

将字符串转换成数值

VALUE(“12.34”)=12.34

二十三、upper

定义:

upper(C):将串变成大写

参数:

C: 要变成大写的字符串

示例:

将下面的串变成大写

UPPER(“AbCd1″)=”ABCD1”

 

本文由@数据分析狮 原创发布于人人都是产品经理,未经许可,禁止转载。

题图来自Unsplash, 基于CC0协议。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 这帖子是咋通过审核的? 🙄

    来自广东 回复