历史版本4 :数值函数 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineDataLink 版本功能变动
4.0.23支持对常量、参数和其他字段进行公式计算或逻辑映射,将结果放到新的一列,参与后续运算或进行输出

1.2 功能简介

在不影响原有字段的情况下,「新增计算列」算子可利用原有字段通过引用或计算获得一个新的字段。

如下图所示:

注:具体示例可参见:新增计算列

8.png

2. 功能概述编辑

2.1 算子整体逻辑说明

功能说明
参与计算的元素计算方式(可组合嵌套)
列间单行计算:

不跨行,在单列或列间进行计算后,将计算值放到新的一列中

列间统计计算:

跨行进行分组汇总计算,将结果放到新的一列中

常量、其他字段、参数、公式

直接计算表达式获取结果,表达式包括:

1)元素引用

2)元素间四则运算

3)元素间比较运算

4)元素间逻辑运算

5)元素公式计算

  • 逻辑公式(OR、AND)

  • 文本公式

  • 日期时间公式

  • 数学公式

逻辑映射:

根据多个条件对原始数据进行分组或其他映射计算处理,将分组结果放到新的一列中

常量、其他字段、参数、公式通过IFSWITCH对作为条件的表达式进行判断,选取符合条件的分支,计算对应表达式获取结果

2.2 新增字段配置

注1:该页面支持字段的新增、删除,不支持字段的排序。

注2:新增后的字段将按列表顺序,追加到原字段末尾;如用户希望调整字段顺序,可在输出算子的「字段映射」处调整。

12.png

字段配置介绍请参见:

注:若新增列值的计算公式中包含参数,且参数为小数,将直接截取整数部分参与计算。

2.3 支持的运算符

2.3.1 四则运算

运算符
说明参数类型与对应计算逻辑
结果类型
+数值相加

日期计算

文本拼接

文本 + 文本 / 数值 / 日期时间 / 布尔
  • 任一参数有文本,进行文本拼接

  • 日期时间将转换为YYYY-MM-dd HH:mm:ss字符串

  • 布尔类型,FALSE视为数值0,TRUE视为数值1参与运算

  • 文本拼接情况下,运算数中有NULL,将其视为空字符串参与拼接

  • 如果运算数全为NULL,结果为NULL

  • 日期时间 + 数值X(数值X + 日期时间)(逻辑同ADDTODATE)。计算指定日期X天后的日期,如果是小数,会将小数的天数折合成时分秒

  • 运算数中有NULL,结果为NULL

  • 数值X + 数值Y,数值加

  • 运算数中存在NULL,结果为NULL。

1)文本 + 文本 / 数值 / 日期时间 / 布尔:文本类型

2)日期时间 + 数值X(数值X + 日期时间):日期时间类型

3)数值X + 数值Y:数值类型

/数值相除布尔类型,FALSE视为数值0,TRUE视为数值1参与运算

数值 / 数值,数值相除

数值类型

运算数中存在NULL,结果为NULL

除数为 0 时,结果为NULL

*数值相乘布尔类型,FALSE视为数值0,TRUE视为数值1参与运算

数值 * 数值,数值相乘

数值类型

运算数中存在NULL,结果为NULL

-数值相减

日期计算

布尔类型,FALSE视为数值0,TRUE视为数值1参与运算

数值X - 数值Y,数值减

日期时间 - 数值X(逻辑同ADDTODATE),计算指定日期X天前的日期。

日期时间 - 日期时间,计算指定日期时间之间的毫秒数。

1)数值X - 数值Y:数值类型

2)日期时间 - 数值X:日期时间类型

3)日期时间 - 日期时间:数值类型

4)运算数中存在NULL,结果为NULL

2.3.2 比较运算

运算符
说明参数类型与对应计算逻辑结果类型

>

<

>=

<=

=

==

!=

比较运算文本、数值、日期时间、布尔

1)>、<、>=、<=:要求比较符两侧必须是同类型,不进行自动转换

2)=、==、!=:不要求比较符两侧类型,类型不一致视为不等,类型一致再进行值比较

3)=和==视为等价输入

布尔类型

运算数中存在NULL,结果为NULL

先判断类型,后判断NULL值情况

2.3.3 逻辑运算

运算符
说明参数类型与对应计算逻辑结果类型
!逻辑非布尔

布尔类型,FALSE视为数值0,TRUE视为数值1参与运算

对于数值类型数据:

  • 非 0 值视为真

  • 0 值视为假

布尔类型

运算数中存在NULL,结果为NULL

2.3.4 优先级

运算符
说明参数类型与对应计算逻辑结果类型
()提高运算优先级--

2.4 常量写法

表达式种类
说明
文本用双引号包括的内容
数值无符号包括的数字
NULL直接写NULL即可

大小写均有效

布尔直接写TRUE、FALSE即可

大小写均有效

3. 支持的公式列表编辑

3.1 逻辑函数

3.1.1 AND

AND(表达式1, 表达式2, ……)

简介
判断系列参数的真值,必须所有的参数都为真最后结果才为真
公式逻辑

AND(表达式1, 表达式2, ……)

表达式允许为数值和布尔

当所有表达式的值为真时,返回 TRUE;当任意表达式的值为假时,返回 FALSE

  • 非 0 值视为真

  • 0 值视为假

  • NULL 参与运算,值为 NULL

输出类型
布尔
示例

AND(1+7=8, 5+7=12)等于 true

AND(1+7=8, 5+7=11)等于 false

3.1.2 IF

IF(表达式, 数值1/文本1/日期时间1/NULL, 数值2/文本2/日期时间2/NULL)

简介
表达式判定后选择展示值
公式逻辑
IF(表达式, 数值1/文本1/日期时间1/NULL, 数值2/文本2/日期时间2/NULL)

表达式允许为数值和布尔

  • 当表达式为真时,返回数值1/文本1/日期时间1/NULL

  • 当表达式为假时,返回数值2/文本2/日期时间2/NULL

第二个参数和第三个参数的类型必须相同,手写NULL时,视为和另一个非空的参数类型相同,全为手写NULL时,和手写一个单独的NULL逻辑一样

类型相同的定义:

  • int、long、float、double都视为数值类型,同时存在取较高精度

  • timestamp、date都视为日期时间类型,同时存在取较高精度

  • varchar不同长度都视为文本类型

  • boolean视为布尔类型

输出类型
  • 数值

  • 文本

  • 日期时间

  • 布尔

示例IF(true,2,8)等于2

IF(false,"first","second")等于"second"

3.1.3 OR

OR(表达式1, 表达式2, ……)

简介判断系列参数的真值,只要有一个参数为真最后结果就为真
公式逻辑OR(表达式1, 表达式2, ……)

表达式允许为数值和布尔

  • 当所有表达式的值为假时,返回 FALSE

  • 当任意表达式的值为真时,返回 TRUE

非 0 值视为真

0 值视为假

NULL参与运算,值为NULL

输出类型布尔
示例

OR(1+7=9,5+7=11)等于false

OR(1+7=8,5+7=11)等于true

3.1.4 SWITCH

SWITCH(表达式,值1,结果1,值2,结果2,......,其他结果)

简介
按表达式不同值输出不同结果
公式逻辑

SWITCH(表达式,值1,结果1,值2,结果2,......,其他结果)

1)如果表达式的结果是值1,整个函数返回结果1,如果表达式的结果是值2,整个函数返回结果2......如果没有符合要求的值,则返回其他结果

2)如果表达式为NULL,则结果为NULL

3)要求结果类型必须为相同类型,手写NULL时,视为和另一个非空的参数类型相同,结果全为手写NULL时,和手写一个单独的NULL逻辑一样,允许选择字段

4)表达式和值的类型必须为相同类型

输出类型
  • 数值

  • 文本

  • 日期时间

  • 布尔

示例SWITCH(5, 3, "今天星期三", 4, "今天星期四", "星期五") 输出结果为"星期五"

3.2 文本

3.2.1 CHAR

CHAR(数值)

简介
返回对应数字(ASCII)的字符
公式逻辑CHAR(数值)

根据指定数字返回对应的字符

CHAR 函数可将计算机其他类型的数字代码转换为字符

如果表达式为NULL,则结果为NULL

输出类型文本
示例

CHAR(88)等于“X”

CHAR(45)等于“-”

3.2.2 CODE

CODE(文本)

简介
计算文本串中第一个字符的数字代码
公式逻辑CODE(文本)

计算「文本」中第一个字符的 ASCII 代码

返回的代码对应于计算机使用的字符集

如果表达式为NULL,则结果为NULL

输出类型数值
示例

CODE("S")等于83

CODE("Spreadsheet")等于83

3.2.3 CONCATENATE

CONCATENATE(文本1, 文本2,……)

简介
字符串拼接
公式逻辑CONCATENATE(文本1, 文本2,……)

将数个字符串合并成一个字符串

文本1, 文本2,……为需要合并成单个文本的文本项

如果所有文本字段全为NULL,结果为NULL

如果存在文本字段不为NULL,将NULL的文本字段视作空字符串拼接

输出类型文本
示例

CONCATENATE("Average","Price")等于“AveragePrice”

CONCATENATE("1","2")等于12

3.2.4 STARTWITH

STARTWITH(文本1, 文本2)

简介判断字符串文本1是否以文本2开始
公式逻辑STARTWITH(文本1, 文本2)

判断「文本1」是否以「文本2」开始

「文本1」和「文本2」大小写敏感

如果参数中有NULL,则结果为NULL

输出类型布尔
示例

STARTWITH("FineDataLink","Fine")等于TRUE

STARTWITH("FineDataLink","Data")等于FALSE

STARTWITH("FineDataLink","fine")等于FALSE

3.2.5 ENDWITH

ENDWITH(文本1, 文本2)

简介
判断字符串文本1是否以文本2结束
公式逻辑

ENDWITH(文本1, 文本2)

判断「文本1」是否以「文本2」结束

「文本1」和「文本2」大小写敏感

如果参数中有NULL,则结果为NULL

输出类型布尔
示例

ENDWITH("FineDataLink","Link")等于true

ENDWITH("FineBI","Fine")等于false

ENDWITH("FineBI","link")等于false

3.2.6 EXACT

EXACT(文本1,文本2)

简介
检测两组文本是否相同
公式逻辑EXACT(文本1,文本2)

检测两组文本是否相同。如果完全相同,EXACT函数返回TRUE;否则,返回FALSE。EXACT函数可以区分大小写,但忽略格式的不同。同时也可以利用EXACT函数来检测输入文档的文字。

输出类型布尔
示例-

3.2.7 REGEXP

REGEXP(文本, 正则表达式)

简介
字符串是否与正则表达式PATTERN相匹配
公式逻辑REGEXP(文本, 正则表达式)

「文本」是否与「正则表达式」相匹配

正则表达式需要以字符串传入,如果表达式中有\,需要使用\\(转义)

如果参数中有NULL,则结果为NULL

输出类型布尔
示例

REGEXP("aaaaac","a*c")等于true

REGEXP("abc","a+c")等于false

3.2.8 FIND

FIND(文本1, 文本2, 索引)

简介

从指定的索引处开始

返回第一次出现的指定子字符串文本1在此字符串文本2中的索引

(传入字符找位置)

公式逻辑FIND(文本1, 文本2, 索引)

从指定的索引处开始,返回「文本2」中第一次出现「文本1」的索引位置

如果找不到返回数值 0

如果参数中有NULL,则结果为NULL

输出类型

数值

示例FIND("I","Information")等于1

FIND("i","Information")等于9

FIND("o","Information",2)等于4

FIND("o","Information",12)等于0

FIND("o","Information",-1)返回空

3.2.9 INDEXOF

INDEXOF(文本, 索引数值)

简介

返回字符串S1在指定索引位置上的字符

(传入位置找字符)

公式逻辑

INDEXOF(文本, 索引数值)

返回「文本」在「索引数值」位置上的字符

「索引数值」从0开始计数

如果参数中有NULL,则结果为NULL

输出类型文本
示例

INDEXOF("FineDataLink",0)等于'F'

INDEXOF("FineDataLink",2)等于'n'

INDEXOF("FineDataLink",5)等于'a'

3.2.10 LEFT

LEFT(文本, 字符数)

简介根据指定的字符数返回文本串中的第一个或前几个字符
公式逻辑

LEFT(文本, 字符数)

根据指定的「字符数」返回「文本」中的第一个或前几个字符

要求「字符数」值必须等于或大于0

如果「字符数」大于整个文本的长度,LEFT函数将返回所有的文本

如果省略「字符数」,则默认值为1

如果参数中有NULL,则结果为NULL

输出类型文本
示例

LEFT("Finesoftware",8)等于"Finesoft"

LEFT("Finesoftware")等于"F"

3.2.11 MID

MID(文本, 起始位置, 字符数)

简介
将文本串从指定位置返回一定数目的字符
公式逻辑MID(文本, 起始位置, 字符数)

返回「文本」中从「起始位置」开始的一定数目的字符,该数目为「字符数」

「起始位置」从1开始

如果「起始位置」大于文本长度,MID函数返回“”(空文本)

如果「起始位置」小于文本长度,并且「起始位置」加上「字符数」大于「文本」长度,MID函数将从「起始位置」指定的起始字符直至「文本」末的所有字符

如果「起始位置」小于1,MID函数不返回结果

如果「字符数」是负数,MID函数不返回结果

如果参数中有NULL,则结果为NULL

输出类型文本
示例

MID("Finemoresoftware",9,8)返回"software"

MID("Finemoresoftware",30,5)返回""(空文本)

MID("Finemoresoftware",0,8)不返回结果

MID("Finemoresoftware",5,-1)不返回结果

3.2.12 RIGHT

RIGHT(文本, 字符数)

简介
从右返回文本串的字符
公式逻辑

RIGHT(文本, 字符数)

根据指定的「字符数」从右开始返回「文本」中的最后一个或几个字符

要求「字符数」不能小于0

如果「字符数」大于文本串长度,RIGHT函数将返回整个文本

如果不指定「字符数」,则默认值为1

如果参数中有NULL,则结果为NULL

输出类型文本
示例

RIGHT("Itisinteresting",6)等于"esting"

RIGHT("ShareHolder")等于"r"

RIGHT("Hugesale",4)等于"sale"

3.2.13 LEN

LEN(文本/数值)

简介
返回文本串中的字符数长度
公式逻辑LEN(文本/数值)

返回「文本」中的字符数长度,空格也计为字符

输入字符串时,将文本转为字符串

如果参数中有NULL,则结果为NULL

输出类型数值
示例

LEN("FineDataLink")等于12

LEN("Fine Data Link")等于14

3.2.14 LOWER

LOWER(文本)

简介
将所有的大写字母转化为小写字母
公式逻辑LOWER(文本)

将「文本」中所有的大写字母转化为小写字母

不转化文本串中非字母的字符

如果参数中有NULL,则结果为NULL

输出类型文本
示例

LOWER("A.M.10:30")等于“a.m.10:30”

LOWER("China")等于“china”

3.2.15 UPPER

UPPER(文本)

简介
把所有字符转化为大写
公式逻辑UPPER(文本)

将「文本」中所有的小写字母转化为大写字母

不转化文本串中非字母的字符

如果参数中有NULL,则结果为NULL

输出类型
文本
示例UPPER("notes")等于"NOTES"

3.2.16 PROPER

PROPER(文本)

简介
将文本中的第一个字母和所有非字母字符后的第一个字母转化成大写

其他字母变为小写

公式逻辑PROPER(文本)

将文本中的第一个字母和所有非字母字符后的第一个字母转化成大写,其他字母变为小写

如果参数中有NULL,则结果为NULL

输出类型文本
示例

PROPER("100 percent")等于“100 Percent”

PROPER("SpreaDSheEt")等于“Spreadsheet”

3.2.17 REPEAT

REPEAT(文本, 次数)

简介
根据指定次数重复显示文本
公式逻辑REPEAT(文本, 次数)

根据指定的次数重复显示文本

如果参数中有NULL,则结果为NULL

输出类型文本
示例

REPEAT("$",4)等于“$$$$”

REPEAT("你好",3)等于“你好你好你好”

3.2.18 REPLACE

简介

根据指定字符串,用其他文本来代替原始文本中的内容

根据指定的字符数,用其他文本串来替换某个文本串中的部分内容

公式逻辑用法一:

REPLACE(完整文本, 旧文本, 新文本)

在指定的「完整文本」中,用「新文本」内容替换「旧文本」内容

用法二:

REPLACE(完整文本, 开始位置, 字符数, 新文本)

根据指定的「字符数」,用「新文本」来替换「完整文本」中的部分内容。

从「开始位置」开始,替换「字符数」个字符

如果完整文本为NULL,则结果为NULL

如果完整文本不为NULL,旧文本为NULL,则直接返回完整文本

如果新文本为NULL,则返回完整文本中,剔除旧文本匹配项后的文本

输出类型文本
示例

用法一:

REPLACE("abcd","a","re")等于"rebcd"

REPLACE("a**d","**d","rose")等于"arose"

用法二:

REPLACE("0123456789",5,4,"*")等于"0123*89"

REPLACE("1980",3,2,"99")等于"1999"

3.2.19 TODOUBLE

TODOUBLE(文本)

简介将文本转换成Double对象
公式逻辑TODOUBLE(文本)

将「文本」转换成Double对象

如果参数中有NULL,则结果为NULL

输出类型

数值
DOUBLE

示例TODOUBLE("123.21")等于123.21

3.2.20 TOINTEGER

TOINTEGER(文本)

简介将文本转换成Integer对象
公式逻辑

TOINTEGER(文本)

将「文本」转换成Integer对象

如果参数中有NULL,则结果为NULL

输出类型

数值
INTEGER

示例TOINTEGER("123")等于123

3.2.21 TRIM

TRIM(文本)

简介
清除文本首尾空格
公式逻辑TRIM(文本)

清除「文本」首尾所有的空格

输出类型文本
示例TRIM(" Monthly Report")等于"Monthly Report"

3.3 日期函数

3.3.1 DATE

DATE(年数值, 月数值, 日数值)

简介
返回一个特定日期
公式逻辑DATE(年数值, 月数值, 日数值)

返回一个由「年数值」、「月数值」、「日数值」表示的某一特定日期

「年数值」可为一到四位数

「月数值」代表月份,若「月数值」<12,则函数把参数值作为月

「月数值」>12,则函数从「年数值」的一月份开始往上累加

「日数值」代表日期。进位逻辑同「月数值

如果参数中有NULL,则结果为NULL

输出类型日期时间
示例DATE(1978,9,19)等于1978-09-19

DATE(2000,13,05)等于2001-01-05

DATE(2000,3,35)等于2000-04-04

3.3.2 TIME

TIME(小时数, 分钟数, 秒数)

简介
返回指定的日期和时间,日期会随当天的日期改变
公式逻辑

TIME(小时数, 分钟数, 秒数):返回指定的日期和时间,日期会随当天的日期改变

介于0:00:00(12:00:00A.M.)与23:59:59(11:59:59P.M.)之间的时间可返回0到0.99999999之间的对应数值

小时数:介于0到23之间的数

分钟数:介于0到59之间的数

秒数:介于0到59之间的数

如果参数中有NULL,则结果为NULL

输出类型日期时间
示例

TIME(14,40,0)等于系统时间年月日 14:40:00

TIME(19,43,24)等于系统时间年月日 19:43:24

3.3.3 TODAY

简介
获取当前日期
公式逻辑

TODAY()

获取当前日期

输出类型日期时间
示例如果系统日期是2005年9月10日则TODAY()等于2005-09-10

3.3.4 NOW

简介
获取当前时间
公式逻辑NOW()

获取当前日期时间

输出类型日期时间
示例

如果服务器时间是2023年02月23日20点10分25秒

则NOW()等于2023-02-23 20:10:25

3.3.5 ADDTODATE

ADDTODATE(文本/日期时间, 单位, 变动值)

简介
返回一个指定日期后,指定DELTA时间的日期
公式逻辑ADDTODATE(文本/日期时间, 单位, 变动值)

返回指定日期后,指定年/月/日/时/分/秒后的日期

  • "Y/y",以年为单位

  • "M/m",以月为单位

  • "D/d",以日为单位

  • "H/h,以小时为单位

  • "MI/mi",以分钟为单位

  • "S/s",以秒为单位

如果参数中有NULL,则结果为NULL

单位要求是常量,不支持字段,可以输入参数

输出类型日期时间
示例ADDTODATE("2023-01-01", "y", 1)等于2024-01-01

3.3.6 DATEDIF

DATEDIF(文本/开始日期, 文本/结束日期, 单位)

简介
返回两个指定日期间的天数、月数或年数
公式逻辑DATEDIF(文本/开始日期, 文本/结束日期, 单位)

返回两个指定日期间的天数、月数或年数

开始日期:代表所指定时间段的初始日期

结束日期:代表所指定时间段的终止日期

单位值:函数返回信息的类型

  • 单位=“Y/y”,则返回年差数

  • 单位=“M/m”,则返回月差数

  • 单位=“W/w”,则返回周差数

  • 单位=“D/d”,则返回日差数

  • 单位=“MD/md”,则忽略年和月,返回日差数

  • 单位=“YM/ym”,则忽略年和日,返回月差数

  • 单位=“YD/yd”,则忽略年,返回日差数

  • 单位="H/h,则返回小时差数

  • 单位="MI/mi",则返回分钟差数

  • 单位="S/s",则返回秒差数

如果参数中有NULL,则结果为NULL

单位要求是常量,不支持字段,可以输入参数

输出类型数值
示例

DATEDIF("2001/2/28","2004/3/20","Y")等于3,即在2001年2月28日与2004年3月20日之间有3个整年

DATEDIF("2001/2/28","2004/3/20","M")等于37,即在2001年2月28日与2004年3月20日之间有36个整月

DATEDIF("2001/2/28","2004/3/20","D")等于1116,即在2001年2月28日与2004年3月20日之间有1116个整天

DATEDIF("2001/2/28","2004/3/20","md")等于8,即忽略月和年后,2001年2月28日与2004年3月20日的差为8天

DATEDIF("2001/1/28","2004/3/20","YM")等于2,即忽略日和年后,2001年1月28日与2004年3月20日的差为2个月

DATEDIF("2001/2/28","2004/3/20","yd")等于21,即忽略年后,2001年2月28日与2004年3月20日的差为21天

3.3.7 DATETONUMBER

DATETONUMBER(文本/日期时间)

简介返回自1970年1月1日00:00:00GMT经过的毫秒数。

日期转数字(时间戳)

公式逻辑DATETONUMBER(文本/日期时间)

返回自1970年1月1日00:00:00GMT至「日期时间」所经过的毫秒数

如果参数中有NULL,则结果为NULL

输出类型数值
示例DATETONUMBER(TODATE("2008-08-08"))等于1218124800000

3.3.8 FORMAT

FORMAT(数值/日期时间, 格式)

简介
将字符串按一定格式输出

日期转字符串

公式逻辑FORMAT(数值/日期时间, 格式)

返回「数值/日期时间」的指定「格式」的文本

如果参数中有NULL,则结果为NULL

输出类型文本
示例

FORMAT(1234.5,"#,##0.00")=1234.50

FORMAT(1234.5,"#,##0")=1234

FORMAT(1234.5,"¥#,##0.00")=¥1234.50

FORMAT(1.5,"0%")=150%

FORMAT(1.5,"0.000%")=150.000%

FORMAT(6789,"##0.0E0")=6.789E3

FORMAT(6789,"0.00E00")=6.79E03

FORMAT(date(2007,1,1),"EEEEE,MMMMMdd,yyyy")=星期一,一月01,2007

FORMAT(date(2007,1,13),"MM/dd/yyyy")=01/13/2007

FORMAT(date(2007,1,13),"M-d-yy")=1-13-07

FORMAT(time(16,23,56),"h:mm:ssa")=4:23:56下午

3.3.9 TODATE

TODATE(参数1, [参数2])

简介可以将各种日期形式的参数转换为日期类型

其他格式日期/数字/字符串转日期

公式逻辑TODATE(参数1, [参数2])

用法一(仅传参数1):

「参数1」是一个日期型的参数,那么直接将这个参数返回

用法二(仅传参数1):

「参数1」是毫秒时间戳,返回对应的时间

用法三(仅传参数1):

「参数1」是日期格式的文本,那么返回这个文本对应的日期

用法四(传参数1和参数2):

「参数1」是日期格式的文本,「参数2」是用来解析日期的格式

特别的,"yyyyMMdd"是用来解析形如“20081230”之类的日期格式的。比如TODATE("20110830","yyyyMMdd")返回2011年08月30日组成的日期

如果参数中有NULL,则结果为NULL

输出类型日期时间
示例用法一:

TODATE(DATE(2007,12,12))返回2007年12月12日组成的日期

用法二:

TODATE(1023542354746)返回2002年6月8日

用法三:

TODATE("2007/10/15")返回2007年10月5日组成的日期

TODATE("2007-6-8")返回2007年6月8日组成的日期

用法四:

TODATE("1/15/07", "MM/dd/yy")返回07年1月15日组成的日期
(MM必须大写)。

特别的,"yyyyMMdd"是用来解析形如“20081230”之类的日期格式的

比如TODATE("20110830","yyyyMMdd")返回2011年08月30日组成的日期

3.3.10 YEAR

YEAR:(文本/日期时间, 格式)

简介返回日期中的年
公式逻辑

YEAR:(文本/日期时间, 格式):返回日期中的年

year是介于1900和9999之间的一个数

允许YEAR(文本/日期时间, 格式)内参数为空,即YEAR(),当参数为空时,取当前系统的服务器时间对应日期的年份数

如果参数中有NULL,则结果为NULL

输出类型数值
示例

YEAR()等于2020,对应系统服务器时间为2020-10-23 15:36:25

YEAR("2000/1/1")等于2000

YEAR("1997-04-20","yyyy-MM-dd")等于1997

3.3.11 MONTH

MONTH(文本/日期时间, 格式)

简介
返回日期中的月,月是介于1和12之间的一个数
公式逻辑MONTH(文本/日期时间, 格式)

返回日期中的月。月是介于1和12之间的一个数

文本/日期时间:含有所求的月的日期

允许MONTH(文本/日期时间,格式)内参数为空,即MONTH(),当参数为空时,取当前系统的服务器时间对应日期的月数

如果参数中有NULL,则结果为NULL

输出类型数值
示例

MONTH()等于10,对应系统服务器时间为2020-10-23 15:36:25

MONTH("2000/1/1")等于1

MONTH("1997-04-20","yyyy-MM-dd")等于4

3.3.12 WEEK

WEEK(文本/日期时间/数值, "F1"/"F7")

简介
返回一个代表一年中的第几周的数字
公式逻辑WEEK(文本/日期时间/数值, "F1"/"F7")

返回一个代表一年中的第几周的数字,可以在决策平台中设置以周天还是周一为一周的开始。F1/F7如果不输入默认值为F7

文本/日期时间:表示输入的日期

允许WEEK(serial_number,"F1"/"F7")内参数为空,即WEEK(),当参数为空时,取当前系统的服务器时间对应的所属一年中第几周的数字

如果参数中有NULL,则结果为NULL

输出类型数值
示例

WEEK()等于52,对应系统服务器时间为2010-1-1 15:36:25

WEEK("2010/1/1")等于52

WEEK("2010/1/1","F1")等于1

WEEK("2010/1/6")等于1

3.3.13 DAY

DAY(文本/日期时间, 格式)

简介
返回日期中的日
公式逻辑DAY(文本/日期时间, 格式)

返回日期中的日,DAY是介于1和31之间的一个数

日期时间:含有所求的年的日期

允许DAY(serial_number,格式)内参数为空,即DAY(),当参数为空时,取当前系统的服务器时间对应日期中的日

如果参数中有NULL,则结果为NULL

输出类型数值
示例

DAY()等于23,对应系统服务器时间为2020-10-23 15:36:25

DAY("2000/1/1")等于1

DAY("1997-04-20","yyyy-MM-dd")等于20

3.3.14 HOUR

HOUR(文本/日期时间,格式)

简介
返回某一指定时间的小时数
公式逻辑HOUR(文本/日期时间,格式)

返回某一指定时间的小时数。函数指定HOUR为0(0:00)到23(23:00)之间的一个整数。

文本/日期时间:包含所求小时的时间

允许HOUR(文本/日期时间,格式)内参数为空,即HOUR(),当参数为空时,取当前系统的服务器时间对应的小时数

如果参数中有NULL,则结果为NULL

输出类型数值
示例

HOUR()等于15,对应系统服务器时间为2020-10-23 15:36:2

HOUR("11:32:40")等于11。

HOUR("11:32:40","HH:mm:ss")等于11

3.3.15 MINUTE

MINUTE(文本/日期时间,格式)

简介
返回某一指定时间的分钟数
公式逻辑MINUTE(文本/日期时间,格式)

返回某一指定时间的分钟数,其值是介于0与59之间的一个整数

文本/日期时间:包含所求分钟数的时间

允许MINUTE(文本/日期时间,格式)内参数为空,即MINUTE(),当参数为空时,取当前系统的服务器时间对应的分钟数

如果参数中有NULL,则结果为NULL

输出类型数值
示例

MINUTE()等于36,对应系统服务器时间为2020-10-23 15:36:25

MINUTE("15:36:25")等于36

MINUTE("15:36:25","HH:mm:ss")等于36

3.3.16 SECOND

SECOND(文本/日期时间,格式)

简介
返回某一指定时间的秒数
公式逻辑SECOND(文本/日期时间,格式)

返回某一指定时间的秒数,其值是介于0与59之间的一个整数

文本/日期时间:包含所求秒数的时间

允许SECOND(文本/日期时间,格式)内参数为空,即SECOND(),当参数为空时,取当前系统的服务器时间对应的秒数

如果参数中有NULL,则结果为NULL

输出类型数值
示例

SECOND()等于25,对应系统服务器时间为2010-1-1 15:36:25

SECOND("15:36:25")等于25。

SECOND("15:36:25","HH:mm:ss")等于25

3.3.17 WEEKDAY

WEEKDAY(文本/日期时间)

简介
获取日期并返回星期数
公式逻辑WEEKDAY(文本/日期时间)

获取日期并返回星期数。返回值为介于0到6之间的某一整数,分别代表星期中的某一天(从星期日到星期六)

如果参数中有NULL,则结果为NULL

输出类型数值
示例

WEEKDAY("2005/9/10")等于6(星期六)

WEEKDAY("2005/9/11")等于0(星期日)

3.4 数字

3.4.1 ABS

ABS(数值)

简介
返回数字绝对值
公式逻辑ABS(数值)

返回指定数字的绝对值,恒为非负数。

如果参数中有NULL,则结果为NULL

输出类型数值
示例

ABS(-1.5)等于1.5

ABS(0)等于0

ABS(2.5)等于2.5

3.4.2 SIN

SIN(弧度值)

简介
求正弦
公式逻辑SIN(弧度值)

计算给定角度的正弦值

如果参数的单位是度,将其乘以PI()/180即可转换成弧度

如果参数中有NULL,则结果为NULL

输出类型数值
示例

SIN(10)等于-0.54

SIN(45*PI()/180)等于0.71

3.4.3 ASIN

ASIN(正弦值)

简介
反正弦值
公式逻辑ASIN(正弦值)

返回指定数值的反正弦值。反正弦值为一个角度,返回角度以弧度形式表示

指定数值必须在-1到1之间(含1与-1)。返回角度在-pi/2到pi/2之间(含-pi/2与pi/2)。用角度形式返回数值时,返回数值乘以180/PI()

如果参数中有NULL,则结果为NULL。(BI结果为0)

输出类型数值
示例

ASIN(0.5)等于0.523598776(pi/6弧度)

ASIN(1)等于1.570796327(pi/2弧度)

ASIN(0.5)*180/PI()等于30(度)

 3.4.4 COS

COS(弧度值)

简介
余弦值
公式逻辑COS(弧度值):返回一个角度的余弦值

要把一个角度转换成弧度值,将角度乘于PI()/180。COS(n*2*PI()+number)=COS(number)(其中n为整数,number从-pi到pi)

如果参数中有NULL,则结果为NULL

输出类型数值
示例

COS(0.5)等于0.877582562

COS(30*PI()/180)等于0.866025404

3.4.5 ACOS

简介
反余弦值
公式逻辑ACOS(余弦值)

返回指定数值的反余弦值。反余弦值为一个角度,返回角度以弧度形式表示

函数的参数必须在-1和1之间,包括-1和1。返回的角度值在0和Pi之间。如果要把返回的角度用度数来表示,用180/PI()乘返回值即可

如果参数中有NULL,则结果为NULL

输出类型数值
示例

ACOS(1)等于0(弧度)

ACOS(0.5)等于1.047197551(Pi/3弧度)

ACOS(0.5)*180/PI()等于60(度)

3.4.6 TAN

TAN(弧度值)

简介
求正切
公式逻辑TAN(弧度值):返回指定角度的正切值

如果参数是以度为单位的,乘以Pi()/180后转换为弧度

如果参数中有NULL,则结果为NULL

输出类型数值
示例

TAN(0.8)等于1.029638557

TAN(45*Pi()/180)等于1

3.4.7 ATAN

ATAN(正切值)

简介
反正切值
公式逻辑ATAN(正切值)

计算指定数值的反正切值。指定数值是返回角度的正切值,返回角度以弧度形式表示

返回角度在-pi/2到pi/2之间。无法返回角度-pi/2或pi/2。用角度形式返回数值时,返回数值乘以180/PI()

如果参数中有NULL,则结果为NULL

输出类型数值
示例

ATAN(-1)等于-0.785398163(-pi/4弧度)

ATAN(0)等于0(弧度)

ATAN(2)*180/PI()等于63.43494882(度)

3.4.8 ATAN2

ATAN2(X坐标, Y坐标)

简介
坐标的反正切值
公式逻辑ATAN2(X坐标, Y坐标)

返回X、Y坐标的反正切值。返回角度为X轴与过(X坐标,Y坐标)与坐标原点(0,0)的一条直线形成的角度。该角度以弧度显示

正值表示从x轴开始以逆时针方式所得的角度;负值表示从x轴开始以顺时针方式所得的角度。 a>0,b>0 or a>0,b<0时,公式直接成立;a<0,b>0,ATAN2(a,b)=PI()-ABS(ATAN(b/a)) ;a<0,b<0,ATAN2(a,b)=ABS(ATAN(b/a))-PI() 当用角度制显示返回数值时,把返回数值乘以180/PI() 返回值以弧度表示(返回值大于-pi且小于等于pi)

如果参数中有NULL,则结果为NULL

输出类型数值
示例

ATAN2(-2,2)等于2.356194490192345(弧度制的3*pi/4)

ATAN2(2,2)等于0.785398163(弧度制的pi/4)

ATAN2(-2,2)*180/PI()等于135(角度制)

3.4.9 CEILING

CEILING(数值)

简介
沿绝对值增大方向取整
公式逻辑CEILING(数值)

将参数沿绝对值增大的方向,舍入为最接近的整数。

如果参数中有NULL,则结果为NULL

输出类型数值
示例

CEILING(-2.5)等于-2

CEILING(0.5)等于1

CEILING(1.25)等于2

3.4.10 FLOOR

FLOOR(数值)

简介
沿绝对值减小的方向去尾舍入
公式逻辑FLOOR(数值)

将参数沿减小的方向,去尾舍入

如果参数中有NULL,则结果为NULL

输出类型数值
示例

FLOOR(-2.5)等于-3

FLOOR(2.5)等于2

3.4.11 ROUND

ROUND(数值, 舍入位数)

简介
按位数进行舍入
公式逻辑ROUND(数值, 舍入位数)

返回某个数字按指定位数舍入后的数字

舍入位数小于0,则在小数点左侧进行舍入

舍入位数等于0,则舍入到最接近的整数

舍入位数大于0,则舍入到指定的小数位

如果参数中有NULL,则结果为NULL

输出类型数值
示例

ROUND(2.15,1)等于2.2

ROUND(2.149,1)等于2.1

ROUND(-1.475,2)等于-1.48

ROUND(21.5,-1)等于20

3.4.12 POWER

POWER(底数, 指数)

简介返回乘幂
公式逻辑POWER(底数, 指数):返回指定数字的乘幂

底数按照该指数次幂乘方

如果参数中有NULL,则结果为NULL

输出类型数值
示例

POWER(6,2)等于36

POWER(14,5)等于537824

POWER(4,2/3)等于2.52

POWER(3,-2.3)等于0.08

3.4.13 EXP

EXP(指数值)

简介
返回e的n次幂
公式逻辑EXP(指数值)

返回e的n次幂。常数e为自然对数的底数,等于2.71828182845904

EXP函数与LN函数互为反函数

如果参数中有NULL,则结果为NULL

输出类型数值
示例

EXP(0)等于1

EXP(3)等于20.09

EXP(LN(2))等于2

3.4.14 LN

LN(正实数)

简介
返回一个数以e为底的对数
公式逻辑LN(正实数)

返回一个数的自然对数。自然对数以常数项e(2.71828182845904)为底

如果参数中有NULL,则结果为NULL

输出类型数值
示例

LN(86)等于4.45437

LN(2.7182818)等于1

LN(EXP(3))等于3

EXP(LN(4))等于4

3.4.15 LOG

LOG(正实数,底数)

简介
求任意底数对应的对数值,底数不加默认为10
公式逻辑

LOG(正实数,底数):按指定的任意底数,返回数值的对数

如果参数中有NULL,则结果为NULL

输出类型数值
示例

LOG(16,2)等于4

LOG(10)等于1

LOG(24,3)等于2.90

3.4.16 MAX

MAX(数值1, 数值2, ……)

简介
求最大值
公式逻辑MAX(数值1, 数值2, ……)

返回参数列表中的最大值

如果参数中有NULL,则结果为NULL

输出类型数值
示例MAX(1,2,3,4,5)等于5

3.4.17 MIN

简介
求最小值
公式逻辑MIN(数值1, 数值2, ……)

返回参数列表中的最小值。

如果参数中有NULL,则结果为NULL

输出类型数值
示例MIN(1,2,3,4,5)等于1

3.4.18 MOD

MOD(被除数, 除数)

简介
求余数
公式逻辑MOD(被除数, 除数)

返回两数相除的余数。结果的正负号与除数相同

除数为0时,余数无穷大;被除数为0时,余数为0

如果参数中有NULL,则结果为NULL

输出类型数值
示例

MOD(3,2)等于1

MOD(-3,2)等于1

MOD(3,-2)等于-1

MOD(-3,-2)等于-1

3.4.19 PI

简介
返回PI的倍数
公式逻辑PI(倍数):是一个数学常量函数

倍数为空时,函数返回数值3.14

倍数不为空时,则返回PI的对应整数倍数

如果参数中有NULL,则结果为NULL

输出类型数值
示例

SIN(PI()/2)等于1

计算圆的面积的公式:S=PI()*(r^2),其中S为圆的面积,R为圆的半径

PI(3)等于9.42

3.4.20 RAND

RAND()

简介
返回均匀分布的随机数
公式逻辑RAND()

返回均匀分布的随机数。每计算一次,函数都会返回一个新的随机数值

生成一个位于a和b之间的随机数,可以使用以下的公式RAND()*(b-a)+a

输出类型数值
示例

RAND()*60,生成一个大于等于0,小于60的随机数

RAND()*19,生成一个大于等于0,小于19的随机数

3.4.21 SIGN

SIGN(数值)

简介
返回数值正负性
公式逻辑SIGN(数值)

返回数值的正负性。当数字为正数时返回1,为零时返回0,为负数时返回-1

如果参数中有NULL,则结果为NULL

输出类型数值
示例

SIGN(10)等于1

SIGN(4-4)等于0

SIGN(-0.00001)等于-1

3.4.22 SQRT

SQRT(数值)

简介求非负数的算数平方根
公式逻辑
SQRT(数值)

返回一个非负数的算数平方根

如果参数中有NULL,则结果为NULL

输出类型数值
示例

SQRT(64)等于8

SQRT(-64)返回空白

3.4.23 TRUNC

简介
截尾取一定位数数值
公式逻辑TRUNC(数值, 取整精度)

将数字的一定位数截去,返回整数或小数 

如果参数中有NULL,则结果为NULL

输出类型数值
示例

TRUNC(8.9)等于8

TRUNC(-8.9)等于-8

TRUNC(-8.98,1)等于-8.9

3.5 其他函数

3.5.1 ISNULL

简介
判断输入内容是否全为NULL
公式逻辑ISNULL(参数)

参数值可为任意支持的类型

判断对象中所有的值是否全部都是NULL。结果为空或NULL,返回TRUE,否则返回FALSE

输出类型布尔
示例-