计算字段

Insights in ArcGIS Online
Insights in ArcGIS Enterprise
Insights 桌面版

可以使用数据表向数据集添加新字段。 数据表可用于添加字段,例如增长率、损失率和随时间的变化,方法为从数据集中选择字段并应用运算符函数

注:
  • 数据表格可以提供数据的典型视图,显示限制为 2,000 行。 以升序或降序对表格进行排序可以查看顶部 2,000 行以及底部 2,000 行。 所有计算均会在完整数据集上执行。
  • 新计算字段仅显示在您的工作簿中,而不会显示在原始数据集中。 例如,在将计算字段 percentchange 添加到从 Microsoft Excel 添加的 CommodityPrices 数据集后,percentchange 字段将位于您的工作簿中,但不会添加到原始 Excel 文件中。 如果要保留工作簿之外的计算字段,则可以通过共享数据集创建新的要素图层。
  • 还可以使用查找答案中的计算百分比变化计算比例计算 Z 得分以计算字段。
提示:

可以使用数据表将归一化数据添加到地图、图表和表的数据集。 在计算数据并将其添加到您的数据集后,需要更改字段类型以采用比率/比例字段 比率/比例字段 形式表示该数据。 有关数据归一化的详细信息,请参阅分区统计图

将字段添加到数据集

要向数据集添加字段,请完成以下步骤:

  1. 在数据窗格中,单击要添加计算字段的数据集旁的数据集选项按钮 数据集选项
  2. 单击查看数据表
  3. 单击 + 字段

    名为新字段的列即会附加到表格中。

    注:

    可以重新调整列的尺寸并对其进行重新排序,但是不会保存这些更改。

  4. 单击新列的标题并提供一个更具描述性的名称。
  5. 单击 fx输入计算函数,以显示包含函数、字段名称和运算符的菜单,从而构建自己的公式。 等效的键盘命令也可用于替换 fx 菜单中的任何按钮。
  6. 按要求使用函数、字段和运算符完成计算。
  7. 单击运行。 如果运行按钮未启用,则计算语法中存在错误。
  8. 新计算字段将显示在数据集的底部。 通过选择已计算字段并单击删除已计算字段按钮 删除已计算字段 可将其移除。

运算符

计算字段可能需要数学和逻辑运算符。 以下运算符可用于计算字段:

运算符使用

+

加。

-

减。

×

乘。 等效的键盘命令是 *。

÷

除。 等效的键盘命令是 /。

xy

幂函数。 等效的键盘命令是 ^。

<

小于。

>

大于。

=

等于。

<=

小于或等于。

>=

大于或等于。

<>

不等于。

,

逗号,用作函数中语法组件之间的分隔符。

(

左括号。

)

右括号。

AND

逻辑运算符,必须满足所有条件。

OR

逻辑运算符,必须满足其中一个条件。

IS NULL

一个二进制运算符,用于测试字段中的值是否为空。 当测试值不为空时,输出值为 0;当测试值为空时,输出值为 1。

IS NOT NULL

一个二进制运算符,用于测试字段中的值是否不为空。 当测试值为空时,输出值为 0;当测试值不为空时,输出值为 1。

注:

数学运算符(例如 +、-、> 和 =)与数字和比率/比例字段兼容。 函数(例如 CONCATENATE()DATEDIF())可以分别用于代替字符串字段和日期/时间字段的某些数学运算符。

IS NULLIS NOT NULL 运算符与除位置之外的所有字段类型(字符串、数字、比率/比例和日期/时间)兼容。 一些具有空值的字符串字段可以配置为空字符串。 在这些情况下,IS NULLIS NOT NULL 将不会返回预期的结果。 相反,应使用 field=""field<>"" 表达式分别代替 field IS NULLfield IS NOT NULL

ANDOR 运算符可用于连接具有与其对应逻辑函数不同的语法的条件。 以下示例显示了使用函数和运算符的等效计算:

注:

在计算字段时,必须在 IF() 函数内使用 ANDOR

函数运算符

IF(AND(MeanAge>=18, MeanAge<=33),"Millennial","Other")

IF(MeanAge>=18 AND MeanAge<=33,"Millennial","Other")

IF(OR(Crime="Theft", Crime="Theft from vehicle", Crime="Shoplifting"), "Larceny", "Other")

IF(Crime="Theft" OR Crime="Theft from vehicle" OR Crime="Shoplifting", "Larceny", "Other")

函数

可以使用数据表中的 fx 按钮或输入计算函数字段来访问函数。 函数分为四种类型:字符串数值日期逻辑

在计算中添加函数时,弹出窗口将显示函数语法。 您可以使用关闭按钮 关闭对话框 移除弹出窗口,或通过单击输入计算函数字段中的函数来重新显示弹出窗口。

字符串函数

大多数字符串函数使用字符串输入生成字符串输出。 但是以下两个函数例外:VALUE() 函数和 FIND() 函数,这两个函数均使用字符串输入生成数值输出。

字符串函数中的输入文本可以为文字(用引号括起的文本)或类别字段值。 下表使用类别字段作为示例,并且使用可在这些字段中找到的示例值。 字段值中使用引号演示了字段具有分类数据。

语法描述示例

CONCATENATE(text1, [text2], ... )

连接两个或多个字符串值。

加利福尼亚州学校的数据集包含街道地址字段、城市字段和邮政编码字段。 可以使用 CONCATENATE() 函数创建邮寄地址的单个字段:

  • 函数语法:CONCATENATE(Address,", ", City," , CA, ",ZIP)
  • 示例字段值:
    • Address = "380 New York St"
    • City = "Redlands"
    • ZIP = "92373"
  • 结果文本:"380 New York St, Redlands, CA, 92373"

FIND(find_text, within_text, [start_num])

提供字符串或文本字段内指定文本(一个或多个字符)的位置。 与诸如 MID()LEFT()RIGHT() 等其他函数结合使用时,FIND() 函数可能最有用。

数据集包含带街道地址的字段(包括数值和街道名称)。 要按街道对数据进行分类,可使用 MID() 函数从剩余地址中移除街道名称。 但是,每个数值的长度不同,因此无法对各行执行 start_num。 可使用 FIND() 函数找到 start_num

  • 函数语法:FIND(" ", Address)
  • 示例字段值:
    • Address = "380 New York St"
  • 结果数值:4

LEFT(text, [num_chars])

返回文本字段的一部分。

  • num_chars:指定将返回表达式的字符数,且应为整数。 将采用从左至右的顺序从首个位置对字符数进行计数。 如果未提供 num_chars,则默认为一个字符。

交通事故数据集包括具有事故日期的类别字段,其中包括星期、日期和年份。 要按星期来研究事故,可使用 LEFT() 函数计算新字段以显示字段的前三个字符(从星期开始):

  • 函数语法:LEFT(Accident_Date, 3)
  • 示例字段值:
    • Accident_Date = "Monday, November 14, 2016"
  • 返回文本:"Mon"

LOWER(text)

将返回所有数据均转换为小写形式的字符表达式。

公共事业部门正在编写需要更换的街道符号列表。 向列表添加新条目后,Status 字段的格式变得不标准,因此无法使用唯一值来显示这些符号。 可使用 LOWER() 函数对 Status 字段进行标准化,以便全部显示小写字母:

  • 函数语法:LOWER(Status)
  • 示例字段值:
    • Status = "Installed"
  • 返回文本:"installed"

MID(text, start_num, [num_chars])

返回文本字段的一部分。

  • start_num:指定第一个字符的位置(从 1 开始)。 start_num 必须是整数。
  • num_chars:指定将返回表达式的字符数,且应为整数。 如果 num_chars 值大于字符串的长度,则不会返回空字符。 如果未提供 num_chars,则默认值为起始字符后的所有字符。

加利福尼亚州学校的数据集包含街道地址字段、城市字段和邮政编码字段。 可以使用 MID() 函数从街道地址中分离街道名称:

  • 函数语法:MID(Address, 5, 20)
  • 示例字段值:
    • Address = "380 New York St"
  • 结果文本:"New York St"

RIGHT(text, [num_chars])

返回文本字段的一部分。

  • num_chars:指定将返回表达式的字符数,且应为整数。 将采用从右至左的顺序从最终位置对字符数进行计数。 如果未提供 num_chars,则默认为一个字符。

国家公园数据集包括具有公园名称和两位州代码的字段。 要按州对公园进行符号化,可使用 RIGHT() 函数来添加和计算新字段:

  • 函数语法:RIGHT(Park, 2)
  • 示例字段值:
    • Park = "Hawai'i Volcanoes National Park, HI"
  • 返回文本:"HI"

SUBSTITUTE(source_text, old_text, new_text)

用指定的新文本替换字符串中的旧文本。

  • source_text:原始文本或带有文本的字段。
  • old_textsource_text 内要替换掉的文本。
  • new_text:用于替换 old_text 的文本。

坑洼位置的数据集包含具有街道名称的字段。 当 Main Street 更名为 5th Street 时,需要更新数据集。 可使用 SUBSTITUTE() 函数更新 street_name 字段:

  • 函数语法:SUBSTITUTE(street_name, "Main", "5th")

注:

SUBSTITUTE() 函数将以 new_text 替换所有出现的 old_text。 例如,在函数 SUBSTITUTE("aba", "a", "c") 中,结果文本为“cbc”。

TRIM(text)

将返回移除末尾多余空格的字符串。

要素服务包含在值的开头和结尾处存在多余空格的文本字符串。 可使用 TRIM() 函数移除多余的空格:

  • 函数语法:TRIM(City)
  • 示例字段值:
    • City = " Redlands "
  • 返回文本:"Redlands"

UPPER(text)

将返回所有数据均转换为大写形式的字符表达式。

NGO 总部位置的数据集包含组织全名及其缩写(如果适用)的字段。 可使用 UPPER() 函数对缩写进行标准化,以便全部显示大写字母:

  • 函数语法:UPPER(Org)
  • 示例字段值:
    • Org = "Nasa"
  • 结果文本:"NASA"

VALUE(text, [format])

将文本转换为数值。

  • format:指定用作数值中小数分隔符的字符。 format 可以为逗号 (",") 或者点 (".")。 如果未提供 format,则默认分隔符将为点。

注:

如果未提供 format,则 VALUE() 函数中的嵌套函数可能会输出意外的结果。 因此,建议在使用 VALUE() 函数时指定 format

VALUE() 函数目前不支持将文本转换为负数。

零售店数据集具有含收入金额的类别字段。 可使用 VALUE() 函数将 Revenue 字段转换为数值。

  • 函数语法:VALUE(Revenue, ".")
  • 示例字段值:
    • Revenue = "1,000.00"
  • 结果数字:1000.00

数值函数

数值函数使用数值输入生成数值输出。 数值函数通常与其他函数结合使用,或者作为一种转换数据的方法。

输入数值可以为文字数值或数值字段。 为了更好地显示各个函数的用法,以下某些示例使用数值作为输入,而非字段。

语法描述示例

ABS(number)

返回绝对值。

  • 函数语法:ABS(-350)
  • 结果数值:350

AVG(number)

返回平均值。

  • 函数语法:AVG(field)
  • field 的示例数字值:4、5、11、6.5
  • 结果:6.63

CEILING(number)

将数字向上舍入为最近的 1 的倍数。

  • 函数语法:CEILING(7.8)
  • 结果数值:8

COS(number)

指定角的三角余弦值,以弧度为单位。

可使用以下公式将度转换为弧度:

radians = θπ/180,其中 θ = 角度,π ≈ 3.14

  • 函数语法:COS(0.35)
  • 结果数值:0.94

FLOOR(number)

将数字向下舍入为最近的 1 的倍数。

  • 函数语法:FLOOR(7.8)
  • 结果数值:7

LN(number)

指定浮点表达式的自然对数。 自然对数使用常量 e 作为底数值(近似于 2.72)

  • 函数语法:LN(16)
  • 结果数值:2.77

LOG(number)

以指定数为底的数值的对数。 默认底数为 10。

  • 函数语法:LOG(16, 2)
  • 结果数值:4

MAX(number)MAX(date)

返回最大值。

  • 函数语法:MAX(num_field)
  • num_field 的示例值:4、5、11、6.5
  • 结果:11

MIN(number)MIN(date)

返回最小值。

  • 函数语法:MIN(date_field)
  • date_field 的示例值:03/17/2018、02/14/2019、10/31/2020
  • 结果:03/17/2018

POWER(number, power)

表达式的指定幂值。

  • 函数语法:POWER(2, 4)
  • 结果数值:16

ROUND(number, num_digits)

将数值四舍五入到指定位数。

  • num_digits = 输出中的小数位数
    • 如果 num_digits 为正,则数值将四舍五入到相应的小数位数
    • 如果 num_digits 为零,则数值将四舍五入到最接近的整数
    • 如果 num_digits 为负,则数值将四舍五入到小数点左侧指定的小数位

  • 函数语法:ROUND(54.854827, 2)
  • 结果数值:54.85
  • 函数语法:ROUND(54.854827, -1)
  • 结果数值:50

SIN(number)

指定角的三角正弦值,以弧度为单位。

可使用以下公式将度转换为弧度:

radians = θπ/180,其中 θ = 角度,π ≈ 3.14

  • 函数语法:SIN(0.79)
  • 结果数值:0.71

STDEV(number)

数值字段的标准差。

  • 函数语法:STDEV(field)
  • field 的示例数字值:4、5、11、6.5
  • 结果:3.09

SUM(number)

返回总值。

  • 函数语法:SUM(field)
  • field 的示例数字值:4、5、11、6.5
  • 结果:26.5

TAN(number)

返回输入表达式的正切值。

可使用以下公式将度转换为弧度:

radians = θπ/180,其中 θ = 角度,π ≈ 3.14

  • 函数语法:TAN(1.05)
  • 结果数值:1.74

日期函数

日期函数可以使用日期字段、文本或没有任何输入,具体取决于使用的函数。 DATEVALUE() 函数可用于替换 DATEDIF()TIMEDIF() 函数中的日期字段。

注:

DATEDIF()DATEADD() 中使用的日期/时间字段必须采用包含日期的格式(换言之,采用日期和时间格式或者仅日期格式)。 将不接受仅时间的日期/时间字段。

TIMEDIF() 中使用的日期/时间字段必须采用包含时间的格式(换言之,采用日期和时间格式或者仅时间格式)。 不接受仅日期的日期/时间字段。

语法描述示例

DATE(year, month, day, [hour, minute, second], [AM/PM])

使用三个或更多单独的字段或值创建日期/时间字段。 接受以下规范:

  • year"YY"(两位数年份)或 "YYYY"(四位数年份)
  • month "MM" (1-12)
  • day"DD" (1-31)
  • hour"HH" (0-23) 或 "hh" (1-12)
  • minute"mm" (0-59)
  • second"ss" (0-59)
  • AM/PM"AM"/"PM"(不区分大小写)

注:

所有输入字段均可以是数值或字符串,AM/PM 参数除外。 数值必须为整数值。 两位数年份必须为字符串。

如果您将 DATE() 函数与数据库数据集配合使用,并指定了任何时间参数(hourminutesecond),则必须输入所有时间参数的输入值。

餐厅数据集所包含的字符串字段中带有最近卫生检查的日期和时间。 可以使用 DATE() 函数创建检查的日期字段:

  • 函数语法:DATE(2016, Month, Day, Hour, Min, 00)
  • 示例字段值:
    • Month = 8
    • Day = 15
    • Hour = 11
    • Minute = 30
  • 结果日期:8/15/2016, 11:30:00

注:

此示例中结果日期的格式将采用 24 小时制。 要使用 12 小时制,您必须指定 AM 或 PM。 相同的示例函数可以写成 DATE(2016, Month, Day, Hour, Min, 00, "AM")

TIME(hour, minute, second)

使用三个单独的字段或值创建日期/时间字段。 接受以下规范:

  • hour"HH" (0-23) 或 "hh" (1-12)
  • minute"mm" (0-59)
  • second"ss" (0-59)
  • AM/PM"AM"/"PM"(不区分大小写)

注:

所有输入字段均可以是数值或字符串,AM/PM 参数除外。 数值必须为整数值。

医院记录的数据集包含病人的到达时间。 可以使用 TIME() 函数为记录创建时间字段:

  • 函数语法:TIME(Hour, Min, 00)
  • 示例字段值:
    • Hour = 11
    • Minute = 30
  • 结果时间:11:30:00

注:

此示例中结果时间的格式将采用 24 小时制。 要使用 12 小时制,您必须指定 AM 或 PM。 相同的示例函数可以写成 TIME(Hour, Min, 00, "AM")

DATEADD(date, integer, [unit])

向输入字段中的日期添加指定的时间量。

  • date 必须为日期/时间字段。 该字段必须采用包含日期的格式(换言之,采用日期和时间格式或者仅日期格式)。 将不接受仅时间的日期/时间字段。
  • integer:要向输入日期添加的数值。 如果使用常量,则该数值必须为整数,可以为正数或负数。 如果使用数值字段,则将忽略小数位。 因此,最佳做法是使用仅包含整数的字段,或者使用整数计算新字段(例如,通过使用 ROUND() 函数)。
  • unit:要添加的时间的单位。 受支持的单位值包括:
    • "ss" = 秒
    • "mm" = 分钟
    • "h" = 小时
    • "D" = 日(默认)
    • "M" = 月
    • "Y" = 年

如果未提供任何单位,则将使用 "D"

向日期/时间字段添加月份时,输出将为相应月份的同一天,不考虑该月份中的天数。 如果该月份的相应日期在新月份中无效,则将使用该月份的最后一天。 例如,如果计算向输入字段添加三个月,并且原始日期之一为 2021 年 11 月 30 日,则输出值 2022 年 2 月 30 日无效。 由于 2022 年不是闰年,因此结果将记录为 2022 年 2 月 28 日。

公共卫生部门负责保存卫生区内患者的疫苗记录。 某种特定疫苗具有两针剂,这两针剂必须至少间隔 60 天,并且不超过 180 天。 DATEADD() 可用于创建字段,其中包含患者有资格接种第二剂的首个日期和最后一剂的截止日期。

有资格接种日期:

  • 函数语法:DATEADD(first_dose_date, 60, "D")
  • 示例字段值:
    • first_dose_date = 7/11/2021
  • 结果日期:9/9/2021

最终日期:

  • 函数语法:DATEADD(first_dose_date, 180, "D")
  • 示例字段值:
    • first_dose_date = 7/11/2021
  • 结果日期:1/7/2022

TIMEADD(time, integer, unit)

向输入字段中的时间添加指定的时间量。

  • time 必须为日期/时间字段。 可以向所有日期/时间字段添加时间,包括尚未包含时间组件的字段。
  • integer:要向输入时间添加的数值。 如果使用常量,则该数值必须为整数,可以为正数或负数。 如果使用数值字段,则将忽略小数位。 因此,最佳做法是使用仅包含整数的字段,或者使用整数计算新字段(例如,通过使用 ROUND() 函数)。
  • unit:要添加的时间的单位。 受支持的单位值包括:
    • "ss" = 秒
    • "mm" = 分钟
    • "h" = 小时

将以协调世界时间 (UTC) 记录数据集的日期和时间,需要将其转换为中部标准时间 (CST)。 可以使用 TIMEADD() 函数创建带有 CST 时间的日期/时间字段:

  • 函数语法:TIMEADD(UTC_date, -6, "h")
  • 示例字段值:
    • UTC_date = 7/11/2021 2:30:00 PM
  • 结果日期:7/11/2021 8:30:00 AM

DATEDIF(start_date, end_date, [unit])

计算两个日期之间经过的时间。 start_date 必须早于 end_date,否则输出将为负值。

  • start_dateend_date 可以为日期/时间字段或 DATEVALUE() 函数。 如果使用日期/时间字段,则字段必须采用包含日期的格式(换言之,采用日期和时间格式或者仅日期格式)。 将不接受仅时间的日期/时间字段。
  • unit:要返回的时间单位。 受支持的单位值包括:
    • "ss" = 秒
    • "mm" = 分钟
    • "h" = 小时
    • "D" = 日(默认)
    • "M" = 月
    • "Y" = 年

如果未提供任何单位,则将使用 "D"

针对每个单位的结果执行四舍五入,如下所示:

  • 秒 - 对于秒,将不执行四舍五入。
  • 分钟 - 如果日期之间相隔整整 60 秒,则计为一分钟。 不足一分钟的结果将向下舍入。
  • 小时 - 如果日期之间相隔整整 60 分钟,则计为一小时。 不足一小时的结果将向下舍入。
  • 日 - 如果日期之间相隔整整 24 小时,则计为一日。 不足一日的结果将向下舍入。
  • 月 - 无论指定月份中有多少天,如果日期之间相隔整整一个月(例如 1 月 1 日至 2 月 1 日),则计为一月。 不足一月的结果将向下舍入。 计算中将不考虑诸如小时等时间组件。
  • 年 - 如果日期之间相隔 183 天(半年),则计为一年。 不足 183 天的结果将向下舍入。

餐厅数据集包含其最近卫生检查的日期。 可以使用 DATEDIF() 函数计算两次卫生检查之间经过的天数:

示例 1:

  • 函数语法:DATEDIF(Inspection1, Inspection2, "D")
  • 示例字段值:
    • Inspection1 = 8/15/2016, 11:30:00 AM
    • Inspection2 = 10/31/2016 2:30:00 PM
  • 结果时间(天):77

示例 2:

  • 函数语法:DATEDIF(Inspection1, Inspection2, "D")
  • 示例字段值:
    • Inspection1 = 8/15/2016, 11:30:00 AM
    • Inspection2 = 8/16/2016 8:00:00 AM
  • 结果时间(天):0

示例 3:

  • 函数语法:DATEDIF(Inspection1, Inspection2, "M")
  • 示例字段值:
    • Inspection1 = 8/15/2016, 11:30:00 AM
    • Inspection2 = 10/31/2016 2:30:00 PM
  • 结果时间(月):2

TIMEDIF(start_time, end_time, [unit])

计算两个日期/时间值之间经过的时间。 start_time 必须早于 end_time,否则输出将为负值。

  • start_timeend_time 可以为日期/时间字段或 DATEVALUE() 函数。 如果使用时间(例如,hh:mm:ss),则 start_timeend_time 必须采用仅时间格式。
  • unit:要返回的时间单位。 受支持的单位值包括:
    • "ss" = 秒(默认)
    • "mm" = 分钟
    • "h" = 小时

如果未提供任何单位,则将使用 "ss"

针对每个单位的结果执行四舍五入,如下所示:

  • 秒 - 对于秒,将不执行四舍五入。
  • 分钟 - 如果日期之间相隔整整 60 秒,则计为一分钟。 不足一分钟的结果将向下舍入。
  • 小时 - 如果日期之间相隔整整 60 分钟,则计为一小时。 不足一小时的结果将向下舍入。

医院收集记录的数据集中包括外科手术的开始和结束时间。 可以使用 TIMEDIF() 函数计算每个病人手术所消耗的时间:

  • 函数语法:TIMEDIF(TimeIn, TimeOut, "mm")
  • 示例字段值:
    • TimeIn = 11:30:00 AM
    • TimeOut = 2:30:20 PM
  • 结果时间(分钟):180

DATEVALUE(date_text, [format])

将文本转换为日期。

  • date_text 可以是字符串字段或用引号括起的文本。
  • format(可选)- 输入的日期格式。 format 作为用引号括起的文本输入。 可以使用以下单位规范输入 format
    • "MM" - 月 (1-12)
    • "DD" - 日 (1-31)
    • "YY" - 两位数年份
    • "YYYY" - 四位数年份
    • "HH" - 小时 (0-23)
    • "hh" - 小时 (1-12)
    • "mm" - 分钟 (0-59)
    • "ss" - 秒 (0-59)
    • "AM"/"PM" - 不区分大小写

注:

如果未提供 format,则 DATEVALUE() 函数中的嵌套函数可能会输出意外的结果。 因此,建议在 DATEVALUE() 内嵌套函数时指定 format

如果未提供 format,则未使用分隔符指定的日期(例如 "10312016")将视为毫秒。 因此,如果输入日期时未使用分隔符,建议指定一种格式。

如果指定日期时使用了分隔符,但是没有 format,则将猜测一种格式。 如果无法猜测格式,则将应用默认 "MM-DD-YY"

DATEVALUE() 函数只能读取用引号括起的文本或字符串字段。 日期/时间字段无法用作 DATEVALUE() 函数的输入。

餐厅数据集包含其最近卫生检查的日期。 可使用 DATEVALUE() 函数指定自上次检查后经过的天数,从而指定当前日期:

  • 函数语法:DATEDIF(Inspection_date, DATEVALUE("10/31/2016", "MM/DD/YYYY"), "D")
  • 示例字段值:
    • Inspection_date = 8/15/2016, 11:30:00 AM
  • 结果数值:77

可以通过多种方法对日期和时间进行格式化。 以下示例是一些将文本转换为日期格式的方法:

  • DATEVALUE("12/25/2016 12:30:25 pm", "MM/DD/YYYY hh:mm:ss pm")
  • DATEVALUE("12/25/2016 14:23:45", "MM/DD/YYYY HH:mm:ss")
  • DATEVALUE("25-08-2008 08:40:13 AM", "DD/MM/YYYY hh:mm:ss AM")

NOW()

以日期/时间格式返回当前日期和时间。 将根据协调世界时间 (UTC) 记录时间。

餐厅数据集包含其最近卫生检查的日期。 可使用 NOW() 函数指定自上次检查后经过的天数,从而指定当前日期:

  • 函数语法:DATEDIF(Inspection_date, NOW(), "D")
  • 示例字段值:
    • Inspection_date= 8/15/2016, 11:30:00 AM
  • 结果数值:77

逻辑函数

逻辑函数使用字符串或数值输入生成字符串或数值输出。 输入内容可以为文字(用引号括起的文本或常数)或字段值。 下表使用字段和文本值的组合作为示例,并且使用可在给定字段中找到的示例值。

语法描述示例

AND(condition,condition, ...)

测试两个或多个条件,如果满足所有条件,则返回 TRUEAND() 应该在 IF() 函数的 condition 参数内使用。

  • condition:至少包含一个条件运算符的任何表达式。 条件可以包括数值、字符串和字段值。 可使用以下条件运算符:
    • >:大于
    • <:小于
    • >=:大于或等于
    • <=:小于或等于
    • =:等于
    • <>:不等于

数据集包含生活在每个区块组中的人的平均年龄。 市场研究人员希望了解哪些区块组主要包含千禧一代。 平均年龄在千禧一代年龄范围内的区块组可以通过 IF()AND() 函数组合进行查找:

  • 函数语法:IF(AND(MeanAge>=18, MeanAge<=33),"Millennial","Other")
  • 示例字段值:
    • MeanAge = 43
  • 结果文本:"Other"

IF(condition, TRUE_expression, [FALSE_expression])

测试某一条件,并根据结果返回 TRUEFALSE 值。

  • condition:至少包含一个条件运算符的任何表达式。 条件可以包括数值、字符串和字段值。 可使用以下条件运算符:
    • >:大于
    • <:小于
    • >=:大于或等于
    • <=:小于或等于
    • =:等于
    • <>:不等于
  • TRUE_expression:条件为 true 的情况下将使用的表达式。 此参数为必选项。
  • FALSE_expression:条件为 false 的情况下将使用的表达式。 如果未提供 FALSE_expression,则默认值将为 null

TRUE_expressionFALSE_expression 可以是任何有效的表达式,其中包括嵌套 IF() 函数。 TRUE_expressionFALSE_expression 的数据类型应该相同(例如,两者都是字符串或两者都是数值)。

数据集包含涵盖商店收入和费用的字段,可用于查找商店的状态(是否已发布净利润或净亏损)。 可使用 IF() 函数查找各个商店的状态:

  • 函数语法:IF(Revenue>Expenses, "Profit","Loss")
  • 示例字段值:
    • Revenue = 400,000
    • Expenses = 350,000
  • 结果文本:"Profit"

ISNULL(field)*

测试字段中的值是否为空。 当测试值不为空时,输出值为 0;当测试值为空时,输出值为 1。

  • field:支持字符串、数值、比率/比例和日期/时间字段类型。

ISNULL() 可单独使用或用于 IF() 函数的 condition 参数。

数据集包含涉及骑行者的交通事故的位置,以及发生事故的街道上的自行车道类型。 对于在没有自行车道的街道上发生的事故,RouteType 字段留空。 数据集可更新为使用 IF()ISNULL() 函数组合填入空值。

  • 函数语法:IF(ISNULL(RouteType), "None", RouteType)

ISNOTNULL(field)*

测试字段中的值是否为空。 当测试值为空时,输出值为 0;当测试值不为空时,输出值为 1。

  • field:支持字符串、数值、比率/比例和日期/时间字段类型。

ISNOTNULL() 可单独使用或用于 IF() 函数的 condition 参数。

数据集包含涉及骑行者的交通事故的位置,以及发生事故的街道上的自行车道类型。 对于在没有自行车道的街道上发生的事故,RouteType 字段留空。 数据集可更新为使用 IF()ISNOTNULL() 函数组合填入空值。

  • 函数语法:IF(ISNOTNULL(RouteType), RouteType, "None")

OR(condition,condition, ...)

测试两个或多个条件,如果至少满足一个条件,则返回 TRUEOR() 应该在 IF() 函数的 condition 参数内使用。

  • condition:至少包含一个条件运算符的任何表达式。 条件可以包括数值、字符串和字段值。 可使用以下条件运算符:
    • >:大于
    • <:小于
    • >=:大于或等于
    • <=:小于或等于
    • =:等于
    • <>:不等于

一个数据集可包含整个城市犯罪发生的位置。 犯罪分析师想要通过与其他类似罪行进行比较来分析盗窃罪的模式。 为了将盗窃罪与其他罪行进行比较,分析师必须首先确定每种罪行是否应视为盗窃罪。 犯罪类型可以使用 IF()OR() 函数的组合进行确定:

  • 函数语法:IF(OR(Crime="Theft", Crime="Theft from vehicle", Crime="Shoplifting"), "Larceny", "Other")
  • 结果文本:"Larceny"

*没有数据的某些字段可以配置为空,而非 null。 在这些情况下,ISNULL()ISNOTNULL() 将不会返回预期的结果。 相反,应使用 field=""field<>"" 表达式分别代替 ISNULL(field)ISNOTNULL(field)