逻辑函数

本文介绍 Tableau 中的逻辑函数及其用途。它还使用示例来演示如何创建逻辑计算。

为什么使用逻辑计算

逻辑计算允许您确定某个特定条件为真还是假(布尔逻辑)。例如,您可能希望快速确定您分销商品的每个国家/地区的销售额是高于还是低于特定阈值。

逻辑计算可能如下所示:

SUM(Sales) > 1,000,000

Tableau 中的可用逻辑函数:

函数

语法

说明

IN <expr1> IN <expr2>

如果 <expr1> 中的任何值与 <expr2> 中的任何值匹配,则返回 TRUE。

<expr1> 中的值可以是集、文本值列表或合并字段。

示例:

SUM([Cost]) IN (1000, 15, 200)

[SET] IN [COMBINED FIELD]

AND

IF <expr1> AND <expr2> THEN <then> END

对两个表达式执行逻辑合取运算。

示例:

IF (ATTR([Market]) = "Africa" AND SUM([Sales]) > [Emerging Threshold] )THEN "Well Performing"

CASE CASE <expression> WHEN <value1> THEN <return1> WHEN <value2> THEN <return2> ... ELSE <default return> END

执行逻辑测试并返回相应的值。CASE 函数可评估 expression,并将其与一系列值(value1value2 等)比较,然后返回结果。遇到一个与 expression 匹配的值时,CASE 返回相应的返回值。如果未找到匹配值,则使用默认返回表达式。如果不存在默认返回表达式并且没有任何值匹配,则会返回 Null。

CASE 比 IIF 或 IF THEN ELSE 更易于使用。

通常,您使用一个 IF 函数来执行一系列任意测试,并使用 CASE 函数搜索与表达式的匹配值。但 CASE 函数都可以重写为 IF 函数,不过 CASE 函数一般更加简明。

很多时候可以使用组获得与复杂 case 函数相同的结果。

示例:

CASE [Region] WHEN 'West' THEN 1 WHEN 'East' THEN 2 ELSE 3 END

CASE LEFT(DATENAME('weekday',[Order Date]),3) WHEN 'Sun' THEN 0 WHEN 'Mon' THEN 1 WHEN 'Tue' THEN 2 WHEN 'Wed' THEN 3 WHEN 'Thu' THEN 4 WHEN 'Fri' THEN 5 WHEN 'Sat' THEN 6 END

ELSE IF <expr> THEN <then> ELSE <else> END

测试一系列表达式,同时为第一个为 true 的 <expr> 返回 <then> 值。

示例:

If [Profit] > 0 THEN 'Profitable' ELSE 'Loss' END

ELSEIF IF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END

测试一系列表达式,同时为第一个为 true 的 <expr> 返回 <then> 值。

示例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END

END IF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END

测试一系列表达式,同时为第一个为 true 的 <expr> 返回 <then> 值。必须放在表达式的结尾。

示例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END

IF IF <expr> THEN <then> [ELSEIF <expr2> THEN <then2>...] [ELSE <else>] END

测试一系列表达式,同时为第一个为 true 的 <expr> 返回 <then> 值。

示例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Breakeven' ELSE 'Loss' END

IFNULL IFNULL(expr1, expr2)

如果 <expr1> 不为 null,则返回该表达式,否则返回 <expr2>。

示例:

IFNULL([Profit], 0)

IIF IIF(test, then, else, [unknown])

检查某个条件是否得到满足,如果为 TRUE 则返回一个值,如果为 FALSE 则返回另一个值,如果未知,则返回可选的第三个值或 NULL。

示例:

IIF([Profit] > 0, 'Profit', 'Loss')

ISDATE ISDATE(string)

如果给定字符串为有效日期,则返回 true。

示例:

ISDATE("2004-04-15") = True

ISNULL ISNULL(expression)

如果表达式为 NULL(未包含有效数据),则返回 true。

示例:

ISNULL([Profit])

MAX MAX(expression)Max(expr1, expr2)

返回单一表达式所有记录中的最大值,或返回每条记录两个表达式中的最大值。

示例:

MAX([Sales])

MIN MIN(expression)MIN(expr1, expr2)

返回单一表达式所有记录中的最小值,或返回每条记录两个表达式中的最小值。

示例:

MIN([Profit])

NOT IF NOT <expr> THEN <then> END

对一个表达式执行逻辑非运算。

示例:

IF NOT [Profit] > 0 THEN "Unprofitable" END

或者 IF <expr1> OR <expr2> THEN <then> END

对两个表达式执行逻辑析取操作。

示例:

IF [Profit] < 0 OR [Profit] = 0 THEN "Needs Improvement" END

THEN IF <expre> THEN <then> [ELSEIF ,expr2> THEN <then2>...] [ELSE <else>] END

测试一系列表达式,同时为第一个为 true 的 <expr> 返回 <then> 值。

示例:

IF [Profit] > 0 THEN 'Profitable' ELSEIF [Profit] = 0 THEN 'Break even' ELSE 'unprofitable' END

WHEN CASE <expr> WHEN <Value1> THEN <return1> ... [ELSE <else>] END

查找第一个与 <expr> 匹配的 <value>,并返回对应的 <return>。

示例:

CASE [RomanNumberal] WHEN 'I' THEN 1 WHEN 'II' THEN 2 ELSE 3 END

ZN ZN(expression)

如果 <expression> 不为 null,则返回该表达式,否则返回零。

示例:

ZN([Profit])


创建逻辑计算

按照下面的步骤进行操作以了解如何创建逻辑计算。

  1. 在 Tableau Desktop 中,连接到 Tableau 附带的“Sample - Superstore”已保存数据源。

  2. 导航到工作表。

  3. 从“数据”窗格中,将“State”(州/省/市/自治区)拖到“行”功能区。

  4. 从“数据”窗格中,将“Category”(类别)拖到“行”功能区,并将其放在“State”(州/省/市/自治区)的右侧。

  5. 从“数据”窗格中,将“Sales”(销售额)拖到“列”功能区。

  6. 选择“分析”>“创建计算字段”

  7. 在打开的计算编辑器中,执行以下操作:

    • 将计算字段命名为“KPI”。

    • 输入以下公式:

      SUM([Profit]) > 0

      此计算将快速检查某个成员是否大于零。如果大于零,则返回 true;否则返回 false。

    • 完成后,单击“确定”

      新计算字段会显示在“数据”窗格中的“度量”下。就像其他字段一样,您可以在一个或多个可视化项中使用该字段。

  8. 从“数据”窗格中,将KPI拖到“标记”卡上的“颜色”

    您现在可以看到每个州/省/市/自治区的哪些类别在亏损。

另请参见

显示关键进度指标

逻辑计算免费视频教程

Tableau 中的函数

Tableau 函数(按类别)

Tableau 函数(按字母顺序)

感谢您的反馈!