本文先容 Tableau 中的逻辑函数过甚用途。它还使用示例来演示何如创建逻辑狡计美妙人妻。
为什么使用逻辑狡计逻辑狡计允许您笃定某个特定条款为真仍是假(布尔逻辑)。举例,您可能但愿凭据某些竣事值对值进行分类。
逻辑狡计可能如下所示:
狠狠干IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Break even' ELSE 'Loss' ENDTableau 中的可用逻辑函数和运算符AND语法<expr1> AND <expr2>界说对两个抒发式实验逻辑合取运算。(要是双方都为 true,则逻辑测试复返 true。)输出布尔值(True 或 False)示例
IF [Season] = "Spring" AND "[Season] = "Fall" THEN "It's the apocalypse and footwear doesn't matter" END
“要是(Season = Spring)和(Season = Fall)同期为 true,则复返“It's the apocalypse and footwear doesn't matter。”
阐扬频频与 IF 和 IIF 一说念使用。另请参见 NOT 和 大要。
要是两个抒发式都为 TRUE(即不为 FALSE 或 NULL),则恶果为 TRUE。要是任一抒发式为 NULL,则恶果为 NULL。在扫数其他情况下,恶果都为 FALSE。
要是所创建的狡计中的 AND 相比恶果表示在使命表上,则 Tableau 表示 TRUE 和 FALSE。要是要鼎新此情况,请使用设备花式对话框中的“设备花式”区域。
郑重:AND 运算符使用短路狡计。这示意要是第一个抒发式狡计为 FALSE,则根蒂不司帐算第二个抒发式。要是第二个抒发式在第一个抒发式为 FALSE 时产生很是,则这可能相当有用,因为在这种情况下从不狡计第二个抒发式。
CASE语法CASE <expression> WHEN <value1> THEN <then1> WHEN <value2> THEN <then2> ... [ELSE <default>]END输出取决于 <then> 值的数据类型。界说对 expression 进行求值,并将其与指定选项(<value1>、<value2> 等)进行相比。遭遇一个与抒发式匹配的 value 时,CASE 复返相应的 return。要是未找到匹配值,则复返(可选)默许值。要是不存在默许值何况莫得任何值匹配,则会复返 Null。
示例CASE [Season] WHEN 'Summer' THEN 'Sandals' WHEN 'Winter' THEN 'Boots' ELSE 'Sneakers' END
“望望“Season”字段。要是值为 Summer,则复返 Sandals。要是值为 Winter,则复返 Boots。要是狡计中的选项均不匹配“Season”字段中的选项,则复返 Sneakers。”
阐扬另请参见 IF 和 IIF。
与 WHEN、THEN、ELSE 和 END 皆集使用。
请示:许多时辰,您不错使用组来取得与复杂 CASE 函数疏通的恶果,大要使用 CASE 来替换本机分组功能,举例前边的示例。您可能念念测试哪个更适应您的场景。
ELSE语法CASE <expression> WHEN <value1> THEN <then1> WHEN <value2> THEN <then2> ... [ELSE <default>]END界说IF 或 CASE 抒发式的一个可选部分,用于指定要是莫得一个测试抒发式为 true 则复返的默许值。示例IF [Season] = "Summer" THEN 'Sandals' ELSEIF [Season] = "Winter" THEN 'Boots' ELSE 'Sneakers' END
CASE [Season] WHEN 'Summer' THEN 'Sandals' WHEN 'Winter' THEN 'Boots' ELSE 'Sneakers' END阐扬
与 CASE、WHEN、IF、ELSEIF、THEN 和 END 一说念使用
ELSE 关于 CASE 和 IF 是可选的。在狡计中,其中ELSE未指定,要是莫得<test> 为 true 时,举座狡计将复返 null。
ELSE不需要条款(举例 [Season] = "Winter")何况不错被以为是 null 责罚的一种神志。
ELSEIF语法[ELSEIF <test2> THEN <then2>]界说IF 抒发式的一个可选部分,用于指定启动 IF 以外的附加条款。示例IF [Season] = "Summer" THEN 'Sandals' ELSEIF [Season] = "Winter" THEN 'Boots' ELSEIF [Season] = "Spring" THEN 'Sneakers' ELSEIF [Season] = "Autumn" THEN 'Sneakers'ELSE 'Bare feet' END阐扬
与 IF、THEN、 ELSE 和 END 一说念使用
ELSEIF 不错被以为是特等的 IF 子句。ELSEIF 是可选的,何况不错重迭屡次。
与 ELSE 不同,ELSEIF 需要一个条款(举例 [Season] = "Winter")。
END界说用于竣事一个 IF 或 CASE 抒发式。示例IF [Season] = "Summer" THEN 'Sandals' ELSEIF [Season] = "Winter" THEN 'Boots' ELSE 'Sneakers' END
“要是 Season = Summer,,则复返 Sandals。不然,请观测下一个抒发式。要是 Season = Winter,则复返 Boots。要是两个抒发式都不为 true,则复返 Sneakers。”
CASE [Season] WHEN 'Summer' THEN 'Sandals' WHEN 'Winter' THEN 'Boots' ELSE 'Sneakers' END
“望望“Season”字段。要是值为 Summer,则复返 Sandals。要是值为 Winter,则复返 Boots。要是狡计中的选项均不匹配“Season”字段中的选项,则复返 Sneakers。”
阐扬与 CASE、WHEN、IF、ELSEIF、THEN 和 ELSE 一说念使用。
IF语法IF <test1> THEN <then1> [ELSEIF <test2> THEN <then2>...][ELSE <default>] END输出取决于 <then> 值的数据类型。界说测试一系列抒发式,同期为第一个为 true 的 <test> 复返 <then> 值。
示例IF [Season] = "Summer" THEN 'Sandals' ELSEIF [Season] = "Winter" THEN 'Boots' ELSE 'Sneakers' END
“要是 Season = Summer,,则复返 Sandals。不然,请观测下一个抒发式。要是 Season = Winter,则复返 Boots。要是两个抒发式都不为 true,则复返 Sneakers。”
阐扬另请参见 IF 和 IIF。
与 ELSEIF、THEN、ELSE 和 END 一说念使用
IFNULL语法IFNULL(expr1, expr2)输出取决于 <expr> 值的数据类型。界说要是 <expr1> 不为 null,则复返该抒发式,不然复返 <expr2>。
示例IFNULL([Assigned Room], "TBD")
“要是“Assigned Room”(分派的房间)字段不为 null,则复返其值。要是“Assigned Room”(分派的房间)字段为 null,则复返 TBD。”
阐扬与 ISNULL 进行相比。IFNULL 弥远复返一个值。ISNULL 复返一个布尔值(true 或 false)。
另请参见 ZN。
IIF语法IIF(<test>, <then>, <else>, [<unknown>])输出取决于抒发式中值的数据类型。界说检查是否知足条款(<test>),并在 test 为 true 时复返 <then>,在 test 为 false 时复返 <else>,要是 test 为 null 则为可选值 <unknown>。要是未指定可选的 unknown,IIF 将复返 null。示例IIF([Season] = 'Summer', 'Sandals', 'Other footwear')
“要是 Season = Summer,,则复返 Sandals。不然复返 Other footwear”
IIF([Season] = 'Summer', 'Sandals', IIF('Season' = 'Winter', 'Boots', 'Other footwear'))
“要是 Season = Summer,,则复返 Sandals。不然,请观测下一个抒发式。要是 Season = Winter,则复返 Boots。要是两者均不为 true,则复返 Sneakers。”
IIF('Season' = 'Summer', 'Sandals', IIF('Season' = 'Winter', 'Boots', IIF('Season' = 'Spring', 'Sneakers', 'Other footwear') ))
“要是 Season = Summer,,则复返 Sandals。不然,请观测下一个抒发式。要是 Season = Winter,则复返 Boots。要是莫得一个抒发式为 true,则复返 Sneakers。”
阐扬另请参见 IF 和 CASE美妙人妻。
IIF 莫得等同于 ELSEIF(如 IF)或重迭 WHEN 子句(如 CASE)的语句。相悖,不错通过将 IIF 语句嵌套为 <unknown> 元素来按规矩狡计多个测试。复返第一个(最外面的)true。
也即是说,不才面的狡计中,恶果将是红色,而不是橙色,因为一朝 A=A 狡计为 true,抒发式就会住手狡计:
IIF('A' = 'A', 'Red', IIF('B' = 'B', 'Orange', IIF('C' = 'D', 'Yellow', 'Green')))
IN语法<expr1> IN <expr2>输出布尔值(True 或 False)界说要是 <expr1> 中的任何值与 <expr2> 中的任何值匹配,则复返 TRUE。示例SUM([Cost]) IN (1000, 15, 200)
“Cost 字段的值是 1000、15 仍是 200?”
[Field] IN [Set]
“该字段的值是否存在于荟萃中?”
阐扬<expr2> 中的值不错是集、文本值列表或归并字段。
另请参见 WHEN。
ISDATE语法ISDATE(string)输出布尔值(True 或 False)界说要是 <string> 为有用日历,则复返 true。输入抒发式必须是字符串(文本)字段。示例ISDATE("2018-09-22")
“字符串 2018-09-22 是花式正确的日历吗?”
阐扬什么被视为有用日历取决于对狡计求值的系统的区域设备(连气儿在新窗口中掀开)。举例:
在好意思国:
ISDATE("2018-09-22") = TRUEISDATE("2018-22-09") = FALSE在英国: ISDATE("2018-09-22") = FALSEISDATE("2018-22-09") = TRUEISNULL语法ISNULL(expression)输出布尔值(True 或 False)界说
要是 <expression> 为 NULL(未包含有用数据),则复返 true。
示例ISNULL([Assigned Room])
“Assigned Room(分派的房间)字段是否为 null?”
阐扬与 IFNULL 进行相比。IFNULL 弥远复返一个值。ISNULL 复返一个布尔值。
另请参见 ZN。
MAX语法MAX(expression) 或 MAX(expr1, expr2)输出与参数疏通的数据类型,大要,要是参数的任何部分为 null,则为 NULL 。界说复返两个参数(必须为疏通数据类型)中的最大值。
MAX 也不错团聚神志愚弄于单个字段。
示例MAX(4,7) = 7MAX(#3/25/1986#, #2/20/2021#) = #2/20/2021# MAX([Name]) = "Zander"阐扬
关于字符串
MAX 频频是按字母规矩排在终末的值。
关于数据库数据源,MAX 字符串值在数据库为该列界说的排序序列中最高。
关于日历
关于日历,MAX 是最近的日历。要是 MAX 是团聚,恶果不会有日历档次结构。要是 MAX 是相比,恶果将保留日历档次结构。
动作团聚
MAX(expression) 是团聚函数,复返单个团聚恶果。这在可视化项中表示为 AGG(expression)。
动作相比
MAX(expr1, expr2) 相比这两个值并复返一个行级值。
另请参见 MIN。
MIN语法MIN(expression) 或 MIN(expr1, expr2)输出与参数疏通的数据类型,大要,要是参数的任何部分为 null,则为 NULL 。界说复返两个参数(必须为疏通数据类型)中的最小值。
MIN 也不错团聚神志愚弄于单个字段。
示例MIN(4,7) = 4MIN(#3/25/1986#, #2/20/2021#) = #3/25/1986#MIN([Name]) = "Abebi"阐扬
关于字符串
MIN 频频是按字母规矩罗列在前边的值。
关于数据库数据源,MIN 字符串值在数据库为该列界说的排序序列中最低。
关于日历
关于日历,MIN 是最早的日历。要是 MIN 是团聚,恶果不会有日历档次结构。要是 MIN 是相比,恶果将保留日历档次结构。
动作团聚
MIN(expression) 是团聚函数,复返单个团聚恶果。这在可视化项中表示为 AGG(expression)。
动作相比
MIN(expr1, expr2) 相比这两个值并复返一个行级值。
另请参见 MAX。
NOT语法NOT <expression>输出布尔值(True 或 False)界说对一个抒发式实验逻辑非运算。示例IF NOT [Season] = "Summer" THEN 'Don't wear sandals' ELSE 'Wear sandals' END
“要是 Season 不等于 Summer,则复返 Don't wear sandals。不然,复返 Wear sandals。”
阐扬频频与 IF 和 IIF 一说念使用。另请参见 AND 和 大要。
大要语法<expr1> OR <expr2>输出布尔值(True 或 False)界说对两个抒发式实验逻辑析取操作。示例IF [Season] = "Spring" OR [Season] = "Fall" THEN "Sneakers" END
“要是 (Season = Spring) 或 (Season = Fall) 为 true,则复返 Sneakers。”
阐扬频频与 IF 和 IIF 一说念使用。另请参见 AND 和 NOT。
要是任一抒发式为 TRUE,则恶果为 TRUE。要是两个抒发式都为 FALSE,则恶果为 FALSE。要是两个抒发式都为 NULL,则恶果为 NULL。
要是所创建的狡计中的 OR 将相比恶果表示在使命表上,则 Tableau 表示 TRUE 和 FALSE。要是要鼎新此情况,请使用设备花式对话框中的“设备花式”区域。
郑重:OR 运算符使用短路狡计。这示意要是第一个抒发式狡计为 TRUE,则根蒂不司帐算第二个抒发式。要是第二个抒发式在第一个抒发式为 TRUE 时产生很是,则这可能相当有用,因为在这种情况下从不狡计第二个抒发式。
THEN语法IF <test1> THEN <then1> [ELSEIF <test2> THEN <then2>...] [ELSE <default>] END界说IF、ELSEIF 或 CASE抒发式的必需部分,用于界说要是特定值或测试为 true 则复返什么恶果。示例IF [Season] = "Summer" THEN 'Sandals' ELSEIF [Season] = "Winter" THEN 'Boots' ELSE 'Sneakers' END
“要是 Season = Summer,,则复返 Sandals。不然,请观测下一个抒发式。要是 Season = Winter,则复返 Boots。要是两个抒发式都不为 true,则复返 Sneakers。”
CASE [Season] WHEN 'Summer' THEN 'Sandals' WHEN 'Winter' THEN 'Boots' ELSE 'Sneakers' END
“望望“Season”字段。要是值为 Summer,则复返 Sandals。要是值为 Winter,则复返 Boots。要是狡计中的选项均不匹配“Season”字段中的选项,则复返 Sneakers。”
阐扬与 CASE、WHEN、IF、ELSEIF、THEN、ELSE 和 END 一说念使用
WHEN语法CASE <expression> WHEN <value1> THEN <then1> WHEN <value2> THEN <then2> ... [ELSE <default>]END界说CASE 抒发式的必需部分。查找第一个与 <expression> 匹配的 <value>,并复返对应的 <then>。示例CASE [Season] WHEN 'Summer' THEN 'Sandals' WHEN 'Winter' THEN 'Boots' ELSE 'Sneakers' END
“望望“Season”字段。要是值为 Summer,则复返 Sandals。要是值为 Winter,则复返 Boots。要是狡计中的选项均不匹配“Season”字段中的选项,则复返 Sneakers。”
阐扬与 CASE、THEN、ELSE 和 END 一说念使用。
CASE 也援救 WHEN IN构造,举例:
CASE <expression> WHEN IN <set1> THEN <then1> WHEN IN <combinedfield> THEN <then2> ... ELSE <default> END
WHEN IN 中的值不错是集、文本值列表或归并字段。另请参见 IN。
ZN语法ZN(expression)输出取决于 <expression> 的数据类型,大要为 0。界说要是 <expression> 不为 null,则复返该抒发式,不然复返零。示例ZN([Test Grade])
“要是测试得益不为 null,则复返其值。要是测试得益为 null,则复返 0。”
阐扬ZN 是 IFNULL 的特殊情况,其中要是抒发式为 null,则替代项弥远为 0,而不是在狡计中指定。
ZN 在实验特等狡计时止境有用,何况 null 将使通盘狡计为 null。可是,请严慎将这些恶果解说为 null 并不老是与 0 同义,何况可能代表缺失数据。
另请参见 ISNULL。
郑重:其中一些本色上是逻辑运算符,表示为玄色,而不是蓝色。关相连注信息,请参见运算符语法。
创建逻辑狡计按照底下的递次进行操作以了解何如创建逻辑狡计。
在 Tableau Desktop 中,招引到 Tableau 附带的示例 - 超市已保存数据源。导航到使命表。从“数据”窗格中,将“State”(州/省/市/自治区)拖到“行”功能区。从“数据”窗格中,将“Category”(类别)拖到“行”功能区,并将其放在“State”(州/省/市/自治区)的右侧。从“数据”窗格中,将“Sales”(销售额)拖到“列”功能区。接管“分析”>“创建狡计字段”。在掀开的狡计剪辑器中,实验以下操作:将狡计字段定名为“KPI”。输入以下公式:SUM([Profit]) > 0
此狡计将快速检查某个成员是否大于零。要是大于零,则复返 true;不然复返 false。
完成后,单击“笃定”。新狡计字段会表示在“数据”窗格中的“度量”下。就像其他字段相同,您不错在一个或多个可视化项中使用该字段。
从“数据”窗格中,将“KPI”拖到“符号”卡上的“神采”。您当今不错看到每个州/省/市/自治区的哪些类别在损失。
另请参见表示关节程度贪图
Tableau 中的函数
Tableau 函数(按类别)
Tableau 函数(按字母规矩)美妙人妻