文本函数
文本函数适合做文案拼接、关键词判断、编号截取、数组转文本和格式转换。
使用场景
- 生成结果页提示语、通知内容、编号或摘要
- 从身份证、手机号、订单号里截取指定片段
- 判断答案是否为空,或是否包含某个关键词
- 把数字、日期或数组转成更适合展示的文本
快速查找
- 拼接与格式化:
CONCATENATE、CHAR、TEXT、RMBCAP、LOWER、UPPER、TRIM - 长度、截取与替换:
LEN、LEFT、RIGHT、MID、REPLACE、REPT - 判断与查找:
EXACT、ISEMPTY、SEARCH、FIND - 数组处理:
SPLIT、JOIN、UNION - 类型转换与系统值:
VALUE、IP
拼接与格式化
| 函数 | 用法 | 适合做什么 | 示例 |
|---|---|---|---|
CONCATENATE | CONCATENATE(text1, text2, ...) | 把多个字段或字符串拼成一句话 | CONCATENATE("你好,", 姓名) |
CHAR | CHAR(number) | 插入换行、制表符、引号等特殊字符 | CHAR(10) |
TEXT | TEXT(value, format) | 把数字或日期转成固定格式的文本 | TEXT(提交时间, "yyyy-MM-dd") |
RMBCAP | RMBCAP(number) | 把金额转成人民币大写 | RMBCAP(1234.56) |
LOWER | LOWER(text) | 把英文转成小写 | LOWER("SurveyKing") |
UPPER | UPPER(text) | 把英文转成大写 | UPPER("surveyking") |
TRIM | TRIM(text) | 去掉首尾空格,并把中间连续空格压成一个 | TRIM(" 张 三 ") |
提示
TEXT 和 FIXED 这类函数返回的是文本。如 果你后面还要继续做数学计算,不要过早把数字转成文本。
长度、截取与替换
| 函数 | 用法 | 适合做什么 | 示例 |
|---|---|---|---|
LEN | LEN(text) | 统计字符个数 | LEN(手机号) |
LEFT | LEFT(text, [num_chars]) | 从左边截取指定长度 | LEFT(身份证号, 6) |
RIGHT | RIGHT(text, [num_chars]) | 从右边截取指定长度 | RIGHT(手机号, 4) |
MID | MID(text, start_num, num_chars) | 从中间指定位置开始截取 | MID(身份证号, 7, 8) |
REPLACE | REPLACE(old_text, start_num, num_chars, new_text) | 替换指定位置的一段文本 | REPLACE(手机号, 4, 4, "****") |
REPT | REPT(text, number_times) | 把同一段文本重复多次 | REPT("*", 6) |
判断与查找
| 函数 | 用法 | 适合做什么 | 示例 |
|---|---|---|---|
EXACT | EXACT(text1, text2) | 区分大小写地比较两个字符串是否完全相同 | EXACT("A", "a") |
ISEMPTY | ISEMPTY(value) | 判断字段是否为空 | ISEMPTY(手机号) |
SEARCH | SEARCH(find_text, within_text, [start_num]) | 不区分大小写查找文本位置 | SEARCH("survey", "SurveyKing") |
FIND | FIND(find_text, within_text, [start_num]) | 区分大小写查找文本位置 | FIND("King", "SurveyKing") |
SEARCH 和 FIND 返回的是位置序号,返回 0 表示没有找到。
数组处理
| 函数 | 用法 | 适合做什么 | 示例 |
|---|---|---|---|
SPLIT | SPLIT(text, text_separator) | 按指定分隔符拆分文本 | SPLIT("A,B,C", ",") |
JOIN | JOIN(array, "连接符") | 把数组按指定连接符拼回一段文本 | JOIN(兴趣爱好, "、") |
UNION | UNION(text1, text2, ...) 或 UNION([array]) | 去掉重复值 | UNION("张三", "李四", "张三") |
类型转换与系统值
| 函数 | 用法 | 适合做什么 | 示例 |
|---|---|---|---|
VALUE | VALUE(text) | 把纯数字文本转成数字 | VALUE("88") |
IP | IP() | 获取当前作答人的 IP 地址 | IP() |
如果 VALUE 处理的文本里混入了汉字、字母或符号,通常无法按数字继续计算。
TEXT 格式怎么写
数字格式
| 标记 | 作用 | 示例 |
|---|---|---|
# | 数字占位符,只显示有意义的位数 | TEXT(23.1578, "###.##") 得到 23.16 |
0 | 数字补位符,不足位数会补 0 | TEXT(23.1, "000.00") 得到 023.10 |
, | 千分位分隔符 | TEXT(23000.1, "0,000.00") 得到 23,000.10 |
% | 百分比显示 | TEXT(0.236, "0.0%") 得到 23.6% |
[Num0] | 显示原始数字文本 | TEXT(123.7895, "[Num0]") |
[Num1] | 转成中文小写数字 | TEXT(123, "[Num1]") 得到 一百二十三 |
[Num2] | 转成中文大写数字 | TEXT(123, "[Num2]") 得到 壹佰贰拾叁 |
日期格式
| 标记 | 作用 |
|---|---|
yy / yyyy | 两位年 / 四位年 |
M / MM / MMM | 月 / 补零月 / 中文月 |
d / dd | 日 / 补零日 |
HH / hh | 24 小时制 / 12 小时制 |
mm / ss | 分 / 秒 |
E / EE / EEE | 星期序号 / 星期简称 / 星期全称 |
常见写法:
TEXT(提交时间, "yyyy-MM-dd HH:mm:ss")
TEXT(提交时间, "yyyy年MM月dd日")
综合示例
根据身份证号自动判断性别
身份证号第 17 位是性别位,奇数表示男,偶数表示女。
IF(MOD(VALUE(MID(身份证号, 17, 1)), 2)==1, "男", "女")