属性与常量
1.属性
标题 | 说明 | 使用方法 | 示例 | 返回值类型 |
---|
%属性名% | 获取每条记录 %属性名% 的属性值 | prop("%属性名%") | prop("%属性名%") == %属性值% | 原属性 |
公式编辑菜单中列出全部属性,%属性值%显示用户编辑公式时,入口记录的属性值
2.常量
标题 | 说明 | 使用方法 | 示例 | 返回值类型 |
---|
e | 自然常数,自然对数的底数 | e | e == 2.718281828459045 | :Number |
pi | 圆周率 | pi | pi == 3.141592653589793 | :Number |
true | 真 (true) | true | (true ? "是" : "否") == "是" | :Boolean |
false | 假 (false) | false | (false ? "是" : "否") == "否" | :Boolean |
函数
以下是对所有函数的更细粒度分类整理,按功能模块划分并标注核心特性:
一、字符串函数
1. 基础操作
函数名 | 核心功能 | 特殊说明 | 示例 |
---|
concat | 多字符串连接 | 支持无限参数 | concat("A","B","C") → "ABC" |
join | 首字符串作为分隔符连接 | 首个参数为分隔符 | join("-","2023","10") → "2023-10" |
slice | 按索引截取子字符串 | 支持负索引 | slice("Hello",1,3) → "el" |
substring | 按索引截取子字符串(类似slice) | 新增功能 | substring("FlowUs",0,4) → "Flow" |
length | 获取字符串长度 | 支持多语言字符 | length("中文") → 2 |
2. 正则处理
函数名 | 核心功能 | 正则特性 | 示例 |
---|
replace | 替换首个正则匹配项 | 支持捕获组 | replace("a1b","\d","X") → "aXb" |
replaceAll | 替换全部正则匹配项 | 全局替换 | replaceAll("a1b2","\d","X") → "aXbX" |
test | 检测正则匹配 | 返回布尔值 | test("abc","^a") → true |
match | 返回所有正则匹配结果(新增) | 返回列表 | match("a-b-c","-") → ["-","-"] |
3. 格式转换
函数名 | 核心功能 | 转换规则 | 示例 |
---|
format | 通用类型转字符串 | 支持日期/布尔/数字 | format(true) → "true" |
lower | 全小写转换(新增) | 保留原非字母字符 | lower("FlowUs!") → "flowus!" |
upper | 全大写转换(新增) | 国际化字符处理 | upper("íñ") → "ÍÑ" |
4. 样式控制
函数名 | 核心功能 | 样式类型 | 示例 |
---|
style | 添加文本样式(新增) | 支持9种颜色+背景色 | style("注意","b","red") → 粗体红字 |
unstyle | 移除文本样式(新增) | 可指定移除特定样式 | unstyle(带格式文本,"b") → 无粗体 |
5. 特殊功能
函数名 | 核心功能 | 特性 | 示例 |
---|
id | 生成唯一记录ID | 全局唯一性 | id() → "e68380be-..." |
repeat | 重复字符串(新增) | 支持0次重复 | repeat("na",2) → "nana" |
二、逻辑函数
1. 条件判断
函数名 | 核心功能 | 参数特性 | 示例 |
---|
if | 基础三元运算 | 支持嵌套 | if(score>60,"合格","重修") |
ifs | 多条件短路判断(新增) | 类似switch-case | ifs(age<13,"儿童",age<18,"青少年","成人") |
2. 逻辑运算
函数名 | 核心功能 | 运算规则 | 示例 |
---|
not | 逻辑非 | 支持类型自动转换 | not("") → true (空字符串转false) |
and | 逻辑与 | 短路求值 | and(1,0) → false |
or | 逻辑或 | 短路求值 | or(null, "默认值") → "默认值" |
3. 比较运算
函数名 | 核心功能 | 支持类型 | 示例 |
---|
equal | 严格相等判断 | 类型敏感 | equal(1,"1") → false |
larger | 跨类型比较(文本/数字/日期) | 字典序比较文本 | larger("b","a") → true |
smallerEq | 小于等于 | 日期比较精确到毫秒 | smallerEq(now(), deadline) |
三、数字函数
1. 数学计算
函数名 | 核心功能 | 算法特性 | 示例 |
---|
sum | 多参数求和(新增) | 自动跳过非数字 | sum(1,"2",3) → 6 |
median | 计算中位数(新增) | 支持偶数项取均值 | median(1,2,3,4) → 2.5 |
cbrt | 立方根计算 | 支持负数 | cbrt(-27) → -3 |
2. 数值处理
函数名 | 核心功能 | 边界处理 | 示例 |
---|
ceil | 向上取整 | 正负数统一规则 | ceil(-4.2) → -4 |
floor | 向下取整 | 与ceil对称 | floor(4.7) → 4 |
round | 银行家舍入法 | 四舍六入五成双 | round(2.5) → 2 |
3. 算术运算
函数名 | 核心功能 | 异常处理 | 示例 |
---|
mod | 取模运算 | 支持负数 | mod(-7,5) → -2 |
pow | 幂运算 | 支持小数指数 | pow(9,0.5) → 3 |
log2 | 二进制对数 | 精确浮点计算 | log2(256) → 8 |
四、日期函数
1. 时间获取
函数名 | 核心功能 | 时区处理 | 示例 |
---|
today | 当前日期(新增) | 系统时区 | today() → 2023-10-01 |
now | 当前完整时间 | 含毫秒精度 | now() → 2023-10-01 14:30:45.123 |
2. 时间戳转换
函数名 | 核心功能 | 精度级别 | 示例 |
---|
timestamp | 转UNIX时间戳(毫秒) | 13位数字 | timestamp(now()) → 1696159845123 |
fromTimestamp | 时间戳转日期 | 自动识别10/13位 | fromTimestamp(1696159845) → 2023-10-01 |
3. 日期运算
函数名 | 核心功能 | 特殊单位支持 | 示例 |
---|
dateAdd | 增加时间间隔 | 支持季度(quarters) | dateAdd("2023-01-31",1,"months") → 2023-02-28 |
dateBetween | 计算时间差 | 周按7天计算 | dateBetween("2023-01-01","2023-02-01","days") → 31 |
4. 格式化解析
函数名 | 核心功能 | 格式符号库 | 示例 |
---|
formatDate | 自定义格式输出 | 支持YYYY/MM/DD等 | formatDate(now(),"Q季度") → "4季度" |
parseDate | 解析ISO8601格式(新增) | 自动时区转换 | parseDate("2023-10-01T00:00Z") → 本地时间 |
五、高级函数
1. 列表操作
函数名 | 核心功能 | 索引规则 | 示例 |
---|
at | 安全索引访问(新增) | 支持负数索引 | at([1,2,3],-1) → 3 |
2. 变量控制
函数名 | 核心功能 | 作用域规则 | 示例 |
---|
let | 单变量定义(新增) | 局部作用域 | let(x,5,x*2) → 10 |
lets | 多变量定义(新增) | 顺序赋值 | lets(a,1,b,2,a+b) → 3 |
关键增强说明
- 正则深度支持:
match()
返回数组类型,需配合后续列表处理函数使用 - 时区敏感函数:
now()/parseDate()
使用系统时区,fromTimestamp()
自动处理时区偏移 - 类型严格模式:
equal()
严格区分 1 和 "1",需注意类型转换 - 数学精度:浮点运算可能存在精度问题(如
0.1+0.2
),建议使用 round()
控制精度 - 样式叠加:
style()
支持多参数叠加样式 style("文本","b","i","blue_background")
此分类体系可帮助快速定位函数,建议结合具体场景选择:
- 数据清洗:优先使用
replaceAll
+ test
+ format
组合 - 动态报表:
ifs
+ formatDate
+ style
实现条件化格式输出 - 时间序列:
dateBetween
+ dateAdd
+ median
计算周期性指标
运算符
算术运算符
运算符号 | 描述 | 示例: |
---|
- | 将两个数字相减返回余差 | 4 - 2 → 2 |
* | 将两个数字相乘返回其乘积 | 3 * 6 → 18 |
% | 将两个数字相除返回余数 | 23 % 7 → 2 |
/ | 将两个数字相除返回商 | 21 / 7 → 3 |
+ | 将两个数字相加返回和 | 2 + 2 → 4 |
比较运算符
运算符号 | 描述 | 示例: |
---|
!= | 不等于 | 2 != 2 → false |
== | 平等 | 2 == 2 → true |
> | 大于 | 2 > 2 → false |
< | 小于 | 2 < 3 → true |
>= | 大于或等于 | 2 >= 2 → true |
<= | 小于或等于 | 2 <= 3 → true |
日期格式
这些日期格式可以作为 formatDate()函数的第二个参数,结合这些来自定义你的日期显示吧。
类别 | 模式 | 返回值 |
---|
年份 | YY | 23 |
| YYYY | 2023 |
季度 | Q | 1 ~ 4 |
| Qo | 1st ~ 4th |
月份 | M | 1 ~ 12 |
| Mo | 1st ~ 12th |
| MM | 01 ~ 12 |
| MMM | Jan ~ Dec |
| MMMM | January ~ December |
一年中的第几周 | w | 1 ~ 53 |
| wo | 1st ~ 53th |
| ww | 01 ~ 53 |
一年中的第几天 | DDD | 1 ~ 365 |
| DDDo | 1st ~ 365th |
| DDDD | 001 ~ 365 |
日 | D | 1 ~ 31 |
| Do | 1st ~ 31st |
| DD | 01 ~ 31 |
星期 | d | 0 ~ 6 |
| dd | Mo ~ Su |
| ddd | Mon ~ Sun |
| dddd | Monday ~ Sunday |
24小时 | H | 0 ~ 23 |
| HH | 00 ~ 23 |
12小时 | h | 1 ~ 12 |
| hh | 01 ~ 12 |
分钟 | m | 0 ~ 59 |
| mm | 00 ~ 59 |
秒 | s | 0 ~ 59 |
| ss | 00 ~ 59 |
AM/PM | a | am pm |
| A | AM PM |
时区偏移 | z | +08:00 |
| zz | +0800 |
分秒 | S | 0 ~ 9 |
| SS | 00 ~ 99 |
毫秒 | SSS | 000 ~ 999 |
Unix时间戳 | x | 1581483600 |
毫秒Unix时间戳 | x | 1581483600000 |