首页 > 解决方案 > 如何在tableau中使用exists和not exists

问题描述

我正在努力解决 tableau 中存在和不存在的问题,就像我在 DB 查询中那样。我在这里发布了示例数据。

我想找出有 ABC 和 ABCD 的位置以及有多少位置。

哪些位置和多少个位置有 ABCD12345678、ABCD1 而不是 ABC。

我可以有多个这样的组合。谁能帮我解决这个要求?

HNS_LOCATION_ID HNS_PRODUCT_CODE

1000682 ABC

1000682 ABCD

1000682 ABCD1

1000682 ABCD12

1000682 ABCD123

1000682 ABCD1234

1000682 ABCD12345

1000682 ABCD123456

1000682 ABCD1234567

1000683 ABCD

1000683 ABCD1234567

1000683 ABCD12

1000683 ABCD1

1000683 ABCD1234

1000683 ABCD123456

1000683 ABCD12345

1000683 ABCD123

1000683 ABC

1000685 ABCD

1000685 ABCD12

1000685 ABCD1234567

1000685 ABCD1

1000685 ABCD12345

1000685 ABCD123

1000685 ABCD1234

1000685 ABCD123456

1000685 ABCD12345678

标签: tableau-api

解决方案


对于第二种情况,只需定义一个名为meet_criteria的计算字段为:

max([HNS_PRODUCT_CODE] = "ABCD12345678") and
max([HNS_PRODUCT_CODE] = "ABCD1") and
not max([HNS_PRODUCT_CODE] = "ABCD")

由于 True 被认为大于 False,因此该计算表明您的标准是否得到满足。(您可以将 max(condition) 解读为“至少一行满足条件。”)

有多种方法可以使用此计算字段。例如,您可以将 meet_criteria 放在 Rows 上,将 HNS_LOCATION_ID 放在 Text 上,以查看满足和不满足条件的位置。(假设您将 HNS_LOCATION_ID 视为维度)

您可以根据 HNS_LOCATION_ID 字段定义一个名为locations_matching_criteria的集合,并使用 meet_criteria 计算作为定义它的条件。从字面上看,右键单击数据窗格中的 HNS_LOCATION_ID,选择创建集,从常规选项卡上的单选按钮中选择全部使用,然后转到条件选项卡并使用 meet_criteria 计算字段作为条件。该集合现在包含您的匹配位置。

然后您可以在公式中使用该集合并构建您的可视化 - 例如,将您的集合放在行上,将 COUNTD(HNS_LOCATION_ID) 放在列上。有很多有趣的方式来使用集合


推荐阅读