WPS CONCAT()函数的用法(附带实例)
在处理表格时,对文本字符串的操作是必不可少的。无论是拆分还是合并,都需要使用文本类函数进行处理。
在早期的 WPS 函数版本中,拆分相对容易一些,合并文本却是一个难题。因此,近年来更新了一些文本函数,使得处理文本变得更加简单、灵活、高效。
CONCAT() 函数可以将多个字符串或数字连接,函数最多支持 255 个参数,可以根据实际需求依次设置。CONCAT() 函数的语法格式如下:
【实例 1】将省、市、区/县三个单元格的值连接到一个单元格。在 F5 单元格输入公式:

图 1 将省、市、区/县三个单元格的值连接到一个单元格
【实例 2】提取不规则文本中的数字(整数)。在 E15 单元格输入公式:

图 2 提取不规则文本中的数字(整数)
当提取数字只有整数时,可以将文本拆分成字符,通过 –– 计算,将非数字的内容转换为空文本后连接,即可实际提取数字(整数)效果。
【实例 3】提取不规则文本中的数字(小数)。在 E25 单元格输入公式:

图 3 提取不规则文本中的数字(小数)
当提取数字包含小数时,LENB() 函数可以判断每个字符是否是汉字,使用 IF() 函数将汉字返回空文本,然后使用 CONCAT() 函数连接即可,通过 LENB() 函数返回字节数只能区分汉字和非汉字,当文本中包含字母或其他符号时,此公式将无法提取。
【示例 4】提取不规则文本中的汉字。在 E35 单元格输入公式:

图 4 提取不规则文本中的汉字
将 IF() 函数条件参数中的 1 修改成 2 即可将非汉字的值返回空文本,然后使用 CONCAT() 函数连接即可提取汉字。
【实例 5】判断是否连续三个月及以上达到“优”级别。在 O45 单元格输入公式:

图 5 判断是否连续三个月及以上达到“优”级别
引用 C45:N45 单元格区域判断是否等于“优”,返回一组逻辑值 TRUE 或 FALSE,使用 N() 函数可以将 TRUE 转换为 1,FALSE 转换为 0,使用 CONCAT() 函数将转换后的数组连接,连接后的字符串作为 FIND() 函数的第 2 个参数,查询 111 在字符串中的位置,用查询到的位置作为 IF() 函数的条件参数,如果 FIND() 函数返回的是数字,无论在什么位置,说明已满足条件,IF() 函数的第 2 个参数返回“是”,如果没有查询到 111,FIND() 函数会返回错误值 #VALUE!,使用 IFERROR() 函数将错误值转换为空文本即可。

图 6 结果字符串长度大于32 767
2) 在使用聚合类函数时,由于函数返回的结果是单值,所以在输入公式时需要向下填充公式,如果想用一个公式计算后进行溢出处理,可以使用 BYROW() 函数处理。
在早期的 WPS 函数版本中,拆分相对容易一些,合并文本却是一个难题。因此,近年来更新了一些文本函数,使得处理文本变得更加简单、灵活、高效。
CONCAT() 函数可以将多个字符串或数字连接,函数最多支持 255 个参数,可以根据实际需求依次设置。CONCAT() 函数的语法格式如下:
CONCAT(字符串1, ...)参数字符串1 是必填项,
【实例 1】将省、市、区/县三个单元格的值连接到一个单元格。在 F5 单元格输入公式:
=CONCAT(C5:E5)CONCAT() 函数的第 1 个参数引用 C5:E5 单元格区域,在 F5 单元格输入公式后,双击 F5 单元格右下角向下填充公式即可。效果如下图所示:

图 1 将省、市、区/县三个单元格的值连接到一个单元格
【实例 2】提取不规则文本中的数字(整数)。在 E15 单元格输入公式:
=CONCAT(IFERROR(--MID(B15,SEQUENCE(LEN(B15)),1),""))效果如下图所示:

图 2 提取不规则文本中的数字(整数)
- 使用 LEN() 函数计算 B15 单元格值的长度,返回结果为 6。
- 使用 SEQUENCE() 函数,根据 LEN() 函数结果 6 生成序列,返回结果为 1~6 的序列。
- 根据 SEQUENCE() 函数生成的序列作为 MID() 函数的第 2 个参数,依次提取 1 位,MID() 函数可以将 B15 单元格的值拆分成字符。
- 使用 –– 计算可以区分每个字符是否是数字,如果字符是数字则计算后返回原数字,如果是非数字计算后返回错误值 #VALUE!。
- 使用 IFERROR() 函数将错误值转换为空文本。
- 使用 CONCAT() 函数将处理后的数组连接即可。
当提取数字只有整数时,可以将文本拆分成字符,通过 –– 计算,将非数字的内容转换为空文本后连接,即可实际提取数字(整数)效果。
【实例 3】提取不规则文本中的数字(小数)。在 E25 单元格输入公式:
=LET(x,MID(B25,SEQUENCE(LEN(B25)),1),CONCAT(IF(LENB(x)=1,x,"")))效果如下图所示:

图 3 提取不规则文本中的数字(小数)
当提取数字包含小数时,LENB() 函数可以判断每个字符是否是汉字,使用 IF() 函数将汉字返回空文本,然后使用 CONCAT() 函数连接即可,通过 LENB() 函数返回字节数只能区分汉字和非汉字,当文本中包含字母或其他符号时,此公式将无法提取。
【示例 4】提取不规则文本中的汉字。在 E35 单元格输入公式:
=LET(x,MID(B25,SEQUENCE(LEN(B25)),1),CONCAT(IF(LENB(x)=2,x,"")))效果如下图所示:

图 4 提取不规则文本中的汉字
将 IF() 函数条件参数中的 1 修改成 2 即可将非汉字的值返回空文本,然后使用 CONCAT() 函数连接即可提取汉字。
【实例 5】判断是否连续三个月及以上达到“优”级别。在 O45 单元格输入公式:
=IFERROR(IF(FIND(111,CONCAT(N(C45:N45="优"))),"是"),"")效果如下图所示:

图 5 判断是否连续三个月及以上达到“优”级别
引用 C45:N45 单元格区域判断是否等于“优”,返回一组逻辑值 TRUE 或 FALSE,使用 N() 函数可以将 TRUE 转换为 1,FALSE 转换为 0,使用 CONCAT() 函数将转换后的数组连接,连接后的字符串作为 FIND() 函数的第 2 个参数,查询 111 在字符串中的位置,用查询到的位置作为 IF() 函数的条件参数,如果 FIND() 函数返回的是数字,无论在什么位置,说明已满足条件,IF() 函数的第 2 个参数返回“是”,如果没有查询到 111,FIND() 函数会返回错误值 #VALUE!,使用 IFERROR() 函数将错误值转换为空文本即可。
CONCAT()注意事项
1) 使用 CONCAT() 函数连接字符串时,如果结果字符串长度大于 32 767,函数将返回错误值 #VALUE!。在 B4 单元格输入公式:=CONCAT(REPT("测",32767),"测")效果如下图所示:

图 6 结果字符串长度大于32 767
2) 在使用聚合类函数时,由于函数返回的结果是单值,所以在输入公式时需要向下填充公式,如果想用一个公式计算后进行溢出处理,可以使用 BYROW() 函数处理。