计算字段的公式在旧版中可以支持基础的 + - × ÷ 运算,同时支持了对关联表、关联数据的统计运算。但是在复杂情况的运算时就显得捉襟见肘,比如员工的年假天数时需要根据工作年份进行区分计算,客户商机的预期金额可以根据进展阶段进行区分计算。
新版中的计算公式现已支持通过函数进行复杂运算,能力大幅增强,配置体验优化,可以满足更丰富的运算场景。
全新的公式配置体验
通过全新设计的公式编辑器,既保留了公式编辑的简单,又增加了强大的函数能力。
1. 公式编辑器针对不同类型的元素进行了分色显示,清晰直观,如函数为红色,变量为蓝色,同时适配深色模式
2. 变量选择与函数均放到了推荐列表中,可进行稳定的添加和选择,同时输入后字符后会自动推荐相关函数
3. 鼠标放到推荐的变量与函数上,或将光标定位到函数中,或选中添加的变量,都会在右下侧显示变量的相关介绍,或函数的用法说明与示例
4. 在复杂的条件与统计配置上,全部可以在右下侧通过点选的方式进行配置
计算能力同步增强
1. 公式中可用的变量数量提升至 30 个变量,1 组条件、1 个统计函数只算 1 个变量
2. 统计方式针对日期字段增加“最大值”、“最小值”统计
丰富的计算函数支持
通过新增加的 IF() 函数即可完成多种条件下的运算规则设置。
逻辑函数(1个)
函数 | 功能 | 示例 |
---|---|---|
IF(条件, 表达式1, 表达式2) | 如果条件为真,则执行表达式1,为假则执行表达式2。 | IF(10>20, '正确', '错误') == '错误' |
数学函数(9个)
函数 | 功能 | 示例 |
---|---|---|
INT(数值) | 将数值舍掉小数位后,返回整数部分。 | INT(3.44) == 3 |
ROUND(数值, [小数位精确度]) | 按指定的小数位精确度对数值进行四舍五入。 小数位精确度:默认为 0,即只保留整数。 | ROUND(3.44, 1) == 3.4 ROUND(3.5) == 4 |
CEILING(数值) | 将数值向上舍入为最接近的整数。 | CEILING(3.5) == 4 |
FLOOR(数值) | 将数值向下舍入为最接近的整数。 | FLOOR(3.5) == 3 |
ABS(数值) | 返回数值的绝对值,即不带符号的数值。 | ABS(-2) == 2 |
POWER(数值, 幂次方) | 返回数值的幂次方。 幂次方:大于 1 时为乘方,小于 1(1/N)时为开方。 | POWER(5, 2) == 25 POWER(25, 1/2) == 5 |
SQRT(数值) | 返回数值的平方根。 | SQRT(25) == 5 |
LOG(数值, [底数]) | 根据指定底数,返回数值的对数。 底数:默认为 10。 | LOG(25, 5) == 2 |
PI() | 返回π值 | PI() == 3.1415926535 |
日期函数(12个)
函数 | 功能 | 示例 |
---|---|---|
DATEADD(日期, 数值, [单位]) | 对日期加减指定单位的数值。 单位:默认为“D”日,可选“Y”年、“M”月、“D”日、“H”时、“I”分、“S”秒。 | DATEADD('2016-12-04', 3) == '2016-12-07' DATEADD('2016-12-04 20:05:08', 3, 'H') == '2016-12-04 23:05:08' |
DATEDIF(日期1, 日期2, [单位]) | 根据单位,返回日期2减去日期1的差值,当日期2小于日期1时差值为负值。 单位:默认为“D”日,可选“Y”年、“M”月、“D”日、“H”时、“I”分、“S”秒。 | DATEDIF('2016-12-04', '2016-12-07') == 3 DATEDIF('2016-12-04 23:05:08','2016-12-04 20:05:08','H') == -3 |
DATEFORMAT(日期, 格式) | 返回指定格式的日期字符串。 格式:可用参数有 - YYYY:4 位年份(2016) - YY:2 位年份(16) - MM:月(01~12) - DD:日(01~31) - HH:小时(00~23) - Mi:分钟(00~59) - SS:秒(00~59) - D:星期几(1~7,代表星期一到星期日) - W:每月中第几周(1~5,从每月第 1 天开始算第 1 周) - WW:每年中第几周(1~53,从每年 1 月 4 日所在的周开始算第 1 周) | DATEFORMAT('2016-12-04', 'YYYY年MM月DD日') == '2016年12月04日' |
YEAR(日期) | 返回日期中年份的数值。 | YEAR('2016-12-04') == 2016 |
MONTH(日期) | 返回日期中月份的数值。 | MONTH('2016-12-04') == 12 |
DAY(日期) | 返回日期在一个月中第几天的数值。 | DAY('2016-12-04') == 4 |
HOUR(日期) | 返回日期中小时的数值。 | HOUR('2016-12-04 20:05:08) == 20 |
MINUTE(日期) | 返回日期中分钟的数值。 | MINUTE('2016-12-04 20:05:08) == 5 |
SECOND(日期) | 返回日期中秒的数值。 | SECOND('2016-12-04 20:05:08) == 8 |
WEEKNUM(日期) | 返回日期为每年中的第几周,从每年 1 月 4 日所在的周开始算第 1 周。 | WEEKNUM('2016-01-03') == 53 WEEKNUM('2016-01-04') == 1 |
WEEKDAY(日期) | 返回日期为星期几。返回值为 0 ~ 6,代表星期日、星期一到星期六。 | WEEKDAY('2016-12-04') == 0 WEEKDAY('2016-12-05') == 1 |
TIMESTAMP(日期) | 返回日期的 UNIX 时间戳,即日期在“1970-01-01 08:00:00 GMT”之后的秒数。 | TIMESTAMP('2016-12-04 20:05:08') == 1480853108 |
文本函数(14个)
函数 | 功能 | 示例 |
---|---|---|
CONCAT(文本1, 文本2, [文本3, …]) | 返回将多个文本、数字、日期的变量连接在一起的字符串。 | CONCAT('2016-12-04', ' 气温 ', 9, '℃') == '2016-12-04 气温 9℃' |
TEXT(变量) | 将数字、日期的变量转为文本。 | TEXT(3.44) == '3.44' |
LEN(文本) | 返回文本的字符个数,中文、英文、数字、符号都算 1 个字符。 | LEN('中文%ab/12') == 8 |
SEARCH(关键字, 文本, [搜索开始位置]) | 返回文本中第一次出现关键字的字符位置,文本的第一个字符记为 1,未找到返回 0。 搜索开始位置:表示从文本的第几个字符开始搜索,默认为 1。 | SEARCH('ab', 'ab12ab') == 1 SEARCH('ab', 'ab12ab', 5) == 5 |
REPLACE(原文本, 替换开始位置, 替换字符数, 新文本) | 在原文本中,从替换位置开始,往后数指定的替换字符数,将这段文本替换为新文本。 | REPLACE('ab12ab', 3, 2, 'AB') = 'abABab' |
REPLACETEXT(原文本, 旧文本, 新文本) | 在原文本中,将出现的所有旧文本替换为新文本。 | REPLACETEXT('ab12ab', 'ab', 'AB') = 'AB12AB' |
REPT(文本, 重复次数) | 将文本重复指定次数。 | REPT('ab', 2) == 'abab' |
PAD(原文本, 长度, 填充用的文本, [填充位置]) | 将原文本用指定文本填充到指定长度,如果文本长度大于设置的长度,则不进行填充。 填充位置: - LEFT:默认值,填充到左侧 - RIGHT:填充到右侧 | PAD('12', 4, '0') == '00012' PAD('12', 5, 'ab', 'RIGHT') == '12aba' |
TRIM(文本) | 删除文本首尾的空格。 | TRIM(' ab ') == 'ab' |
LEFT(文本, 截取字符数) | 从文本左侧开始,返回指定个数的字符。 | LEFT('abc123', 3) == 'abc' |
RIGHT(文本, 截取字符数) | 从文本右侧开始,返回指定个数的字符。 | RIGHT('abc123', 3) == '123' |
MID(文本, 指定位置, 截取字符数) | 从文本指定位置之后开始,返回指定个数的字符。 | MID('abc123', 2, 3) == 'c12' |
LOWER(文本) | 将文本中的所有字母转为小写形式。 | LOWER('AbC') == 'abc' |
UPPER(文本) | 将文本中的所有字母转为大写形式。 | UPPER('aBc') == 'ABC' |
数组函数(3个)
函数 | 功能 | 示例 |
---|---|---|
ARRLEN(数组) | 返回数组中的元素个数。多选字段的值、通过“[]”产生的变量,均为数组。 | ARRLEN(['a', 'b', 'c']) == 3 |
MERGE(数组1, 数组2, [数组3, …]) | 将多个数组的元素去重合并到一起。多选字段的值、通过“[]”产生的变量,均为数组。 | MERGE(['a', 'b'], ['b', 'c']) == ['a', 'b', 'c'] |
REMOVE(数组, 元素1, [元素2, …]) | 从数组中移除指定的所有元素。多选字段的值、通过“[]”产生的变量,均为数组。 | REMOVE(['a', 'b', 'c'], 'a', 'b') == ['c'] |
后续会持续增加新的函数支持,敬请期待~
欢迎体验新版的计算字段!