在 Explore 中,您可以 编写公式 来支持自定义指标和属性。要使公式正常工作,需要正确构造。
如果您的公式构造不正确,公式编辑器会在您编写或编辑公式时实时显示一条错误消息。错误消息指出了公式的问题,并在可能的情况下提供了如何解决问题的指导。
这篇文章列出了您在公式编辑器中可能遇到的错误消息,并提供了关于修复公式的更多建议,包括公式不正确和正确的例子。
本文章包含以下主题:
相关文章:
一般语法错误消息
如果您看到以下错误消息,则表示您的公式中的某些语法不正确:
- “公式出现了问题。检查您的计算语法并再试一次。”
下表列出了此错误的最常见原因。
原因 | 公式不正确 | 正确的公式 |
---|---|---|
您已打开但未关闭括号或圆括号。或者您关闭的数量多于打开的数量。 | IF ([Ticket status] = "Solved")) THEN [Ticket ID] ENDIF | IF ([Ticket status] = "Solved") THEN [Ticket ID] ENDIF |
您已打开但未关闭引号。 | [工单状态] = "已解决 | [工单状态] = "已解决" |
您未将属性用方括号括起来。 | 工单状态 = “已解决” | [工单状态] = "已解决" |
您未在指标前添加聚合器。 |
首次回复时间(分钟) |
SUM(First reply time (min)) |
您缺少 IF 语句的一个重要部分。在此示例中,ENDIF 缺失。 |
IF ([Ticket status] = "Solved") THEN [Ticket ID] |
IF ([Ticket status] = "Solved") THEN [Ticket ID] ENDIF |
数据类型错误消息
下表显示了您可能在公式编辑器中看到的与数据类型相关的错误消息,包括公式的错误和正确版本。有关数据类型的更多信息,请参阅 在 Explore 公式中使用数据类型。
以下各节介绍了以下数据类型错误消息:
等于、不等于以及小于或大于表达式
错误消息示例 | 公式不正确 | 正确的公式 |
---|---|---|
无法将 [项目阶段] 用作文本,将 1 用作数字。使用相同类型。 | [项目阶段]=1 |
[项目阶段]="1" 相等表达式的两边应使用相同的数据类型。用引号引起来的值被视为文本,但不带引号的数字是数字。由于 项目阶段 是一个文本属性,该值应带有引号。 |
无法将 [工单国家] 用作文本,将 [用户国家代码] 用作数字。使用相同类型。 | [工单国家/地区]!=[用户国家代码] |
[工单国家/地区]!=[用户国家/地区名称] 不等式表达式的两边应使用相同的数据类型。工单国家 是文本,所以右边的属性也应该是文本。 |
无法将 [Ticket assigned - Date] 用作文本,将 26 用作数字。仅使用数字或文本。 | [工单已分配 - 日期] >= 26 |
[Ticket assigned - Date] >= "2023-01-26" 大于或等于表达式的两边应使用相同的数据类型。在这种情况下,它是一个用引号引起来的日期。 |
无法使用 VALUE(Agent replies) 作为数字和 2 作为文本。仅使用数字或文本。 | VALUE(Agent replies)<”2” |
VALUE(Agent replies)<2 小于表达式的两边应使用相同的数据类型。用引号引起来的值被视为文本,但不带引号的数字是数字。由于 专员回复 是一个指标,其值应为数字,因此不应使用引号。 |
算术运算和文本值联接
错误消息示例 | 公式不正确 | 正确的公式 |
---|---|---|
无法将 [工单组] 用作文本,将 [工单 ID] 用作数字。仅使用数字或文本。如有必要,使用 STRING 函数将数字转为文本,或使用 NUMBER 函数将文本转为数字。 | [工单组]+[工单 ID] |
[工单组]+STRING([工单 ID]) 此公式的目标是连接文本,如 Explore 配方:联接属性。这就是为什么需要通过 STRING 函数将数字属性转换为文本的原因。 |
无法将 VALUE(Full resolution time (min)) 用作数字,将 [Additional task time] 用作文本。仅使用数字或文本。如有必要,使用 STRING 函数将数字转为文本,或使用 NUMBER 函数将文本转为数字。 | VALUE(Full resolution time (min))+[Additional task time] |
VALUE(Full resolution time (min))+NUMBER([Additional task time]) 此公式的目标是将两个值相加。完全解决时间(分钟) 是一个数字,而 附加任务时间 是一个文本字段,其中列出了数值。最好的方法是 在 Support 中创建一个新的数字自定义字段, 以便对额外的任务时间进行重新编码,这样无需进行任何转换,并且在 Explore 中“开箱即用”。或者,可以通过 NUMBER 函数将文本属性转换为数字。 |
无法将 VALUE(First reply time (min)) 用作数字,将“60”用作文本。仅使用数字。 | VALUE(First reply time (min))/"60" |
VALUE(First reply time (min))/60 除法等算术运算需要数值。用引号引起来的值被视为文本,但不带引号的数字是数字。此处不应使用引号。 |
无法将 COUNT(Comments) 用作数字,将 [Comment public] 用作文本。仅使用数字。 | COUNT(Comments)-[Comment public] |
COUNT(Comments)-COUNT(Public comments) 算术运算(例如减法)需要数值。评论公开 是一个文本属性。您需要使用指标。 |
函数
错误消息示例 | 公式不正确 | 正确的公式 |
---|---|---|
无法在 THEN 语句中使用不同的类型。1 是数字,“0”是文本。使用相同类型。 | IF [Ticket status]="Open" THEN 1 ELSE "0" ENDIF |
THEN 和 ELSE 关键字后使用的值应为相同类型。用引号引起来的值被视为文本,但不带引号的数字是数字。因此,有两种方法可以解决此错误,如上所示。 |
不能将 1 用作数字,将 2 用作数字。仅使用布尔值。 | IF 1 OR 2 THEN [Ticket ID] ENDIF |
IF VALUE(Agent replies) = 1 OR VALUE(Agent replies) = 2 THEN [Ticket ID] ENDIF 在 IF 语句内设置的条件应为 TRUE 或 FALSE。正确的语法是:IF TRUE OR FALSE THEN [Ticket ID] ENDIF 您需要添加一些条件,如上所示。(但是,公式编辑器不会评估条件本身的有效性。) |
无法在此函数中使用数字。使用文本。 | NUMBER([工单 ID]) |
NUMBER([Ticket external ID]) NUMBER 函数旨在将带有数值的文本属性转换为文本。工单 ID 属性是一个数字字段,因此无法用于此函数。但是,文本属性(例如 工单外部 ID)可以。 |
无法在此函数中使用文本,布尔值。使用文本、文本或数字。 | LINK("https://subdomain.zendesk.com/agent/organizations/" + STRING([工单组织 ID]), [组织复选框]) |
LINK 函数需要文本作为第二个参数,这就是为什么您不能使用布尔属性。有两个选项,如上所示。您可以使用文本属性,或通过 STRING 函数将布尔属性转换为文本。 |
此处无法使用 [Ticket created - month] 作为文本。使用时间戳类型。 | DATE_LAST([Ticket created - Month]) |
DATE_LAST([Ticket created - Timestamp]) DATE_LAST 函数需要一个时间戳属性。 |
无法使用不同的条件类型。使用文本类型。 | SWITCH ([Ticket group]) {CASE "Support":“1”案例 3:"2" } |
SWITCH ([Ticket group]) {CASE "Support":“1”案例 3:"2" } 由于 工单组 是一个文本属性,所有个案的条件都应为文本类型。用引号引起来的值被视为文本,但不带引号的数字是数字。所以 3 需要用引号引起来。 |
无法在 SWITCH 语句中使用不同的类型。“1”是文本,2 是数字。使用相同类型。 | SWITCH ([Ticket group]) {CASE "Support":"1" CASE "IT":2 } |
SWITCH ([Ticket group]) {CASE "Support":"1" CASE "IT":"2" } 所有个案的结果都应属于同一类型。用引号引起来的值被视为文本,但不带引号的数字是数字。因此 2 需要用引号引起来。 |
数组不支持不同类型。使用相同类型。 | IN([支路实例], ARRAY(1, "2", "3")) |
IN([支路实例], ARRAY(1, 2, 3)) 如果是文本属性,请对所有值使用引号,如果是数字属性,请不要对所有值使用引号。支路实例 是一个数字属性,因此公式不应使用引号。 |
指标聚合器错误消息
错误消息示例 | 公式不正确 | 正确的公式 |
---|---|---|
无法使用 SUM(数据库指标)聚合器。使用 VALUE 个聚合器、ATTRIBUTE_FIX 或 ATTRIBUTE_ADD 函数。 | IF SUM(Requester wait time (min))>120 THEN "Long wait time" ELSE "Short wait time" ENDIF |
IF VALUE(Requester wait time (min))>120 THEN "Long wait time" ELSE "Short wait time" ENDIF 此错误消息显示在计算属性中,而不是指标中。在这种情况下,您需要使用 VALUE 聚合器。 |
无法在计算属性中使用 COUNT(Solved tickets)。将指标包装在 ATTRIBUTE_FIX 或 ATTRIBUTE_ADD 函数中。 | IF COUNT(Solved tickets)>1 THEN "Solved" ELSE "Unsolved" ENDIF |
IF ([Ticket status - Unsorted] = "Solved" OR [Ticket status - Unsorted] = "Closed") "Solved" ELSE "Unsolved" ENDIF 此错误消息显示在计算属性中,而不是指标中。解决此错误的最佳方法是使用与“已 解决工 单”指标相同的条件。此指标的公式为:IF ([Ticket status - Unsorted] = "Solved" OR [Ticket status - Unsorted] = "Closed") THEN [Ticket ID] ENDIF 因此,您可以如上所示更新公式。 |
无法在计算属性中使用 COUNT(Ticket assignments to Dev)。将指标包装在 ATTRIBUTE_FIX 或 ATTRIBUTE_ADD 函数中。 | IF COUNT(Ticket assignments to Dev)>1 THEN "Solved" ELSE "Unsolved" ENDIF |
IF ATTRIBUTE_FIX(COUNT(Ticket assignments to Dev), [Update ticket ID])>1 THEN "Multiple escalations" ELSE "One or no escalations" ENDIF 此错误消息显示在计算属性中,而不是指标中。如果原始公式更复杂且无法重复使用,请尝试使用 ATTRIBUTE_FIX 函数指定此属性应在哪些级别聚合。在这种情况下,应在“ 更新工单 ID”级别进行计算。 |
处于状态的时间已包含聚合器。将 AVG 替换为 SUM,或确保“处于状态的时间”仅包含 VALUE 个聚合器。 | AVG(状态时间) |
SUM(状态时间) 处于状态的时间是一个嵌套指标。其公式已包含聚合器。例如,可以是 MED(First reply time (hrs))。不允许在中值的基础上计算平均值,因此必须将顶级聚合器设置为 SUM,或者将较低级别的聚合器更改为 VALUE。 |
其它错误消息
错误消息示例 | 公式不正确 | 正确的公式 |
---|---|---|
[工单状态]在此数据集中不存在。检查是否有错别字。 | [Ticket statuses] ="Solved" |
[Ticket status] ="Solved" 此错误的最常见原因是:
在此示例中,属性名称中有错别字。 |
[计算组]的公式配置错误。请在保存前修复。 | IF [计算的组] = "light" THEN TRUE ELSE FALSE ENDIF | 计算组 的公式中有一些配置错误。因此,您需要先解决这个问题。 |
计算在这里引用自身 COUNT(Sales ticket)。将其移除或替换。 | COUNT(Sales ticket)/COUNT(Tickets) | 您正在其内部添加一个公式。在本例中,正在编辑的公式是 销售工单 ,用户正在尝试在公式中添加 销售工 单。 |
一个计算中最多 3 个级别。在这里移除嵌套计算:SUM((2nd reply time) | MED(2nd reply time) / MED(First reply time (min) | 第二次回复时间 计算指标基于另一个计算,而该计算本身又基于另一个计算。此类计算称为嵌套计算。最多只允许 3 个嵌套级别。 |
无法在这里使用[工单组]。INCLUDES_ALL 仅可用于工单标签属性。 | INCLUDES_ALL([工单组], "Support", "Sales") |
INCLUDES 函数仅允许带有工单标签属性。对于其它属性,使用 IN 函数。 |
翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性
如对翻译准确性有任何疑问,请以文章的英语版本为准。