2023-01-10 更新:计算字段支持函数

计算字段的公式在旧版中可以支持基础的 + - × ÷ 运算,同时支持了对关联表、关联数据的统计运算。但是在复杂情况的运算时就显得捉襟见肘,比如员工的年假天数时需要根据工作年份进行区分计算,客户商机的预期金额可以根据进展阶段进行区分计算。

新版中的计算公式现已支持通过函数进行复杂运算,能力大幅增强,配置体验优化,可以满足更丰富的运算场景。

fbf2777aa16c902298d84df9fab18d62.png

全新的公式配置体验

通过全新设计的公式编辑器,既保留了公式编辑的简单,又增加了强大的函数能力。

1. 公式编辑器针对不同类型的元素进行了分色显示,清晰直观,如函数为红色,变量为蓝色,同时适配深色模式

f5d2763caff8fc69dc99cc462dec2ddc.png

2. 变量选择与函数均放到了推荐列表中,可进行稳定的添加和选择,同时输入后字符后会自动推荐相关函数

f3765506821316d9bec1c606e7e9c315.png

3. 鼠标放到推荐的变量与函数上,或将光标定位到函数中,或选中添加的变量,都会在右下侧显示变量的相关介绍,或函数的用法说明与示例

c798cdae80eae4f1f8a00dbfc286afd4.png

4. 在复杂的条件与统计配置上,全部可以在右下侧通过点选的方式进行配置

fbf2777aa16c902298d84df9fab18d62.png

计算能力同步增强

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']

后续会持续增加新的函数支持,敬请期待~

欢迎体验新版的计算字段!

2023-02-15 更新
1236 次查看
0