【问题标题】:Filter only alphabetic values in tableau仅过滤画面中的字母值
【发布时间】:2021-03-30 08:36:16
【问题描述】:

我在 tableau 中有具有以下值的列: 1234 3456 6789 营地-1 营地-2 3号营地

我只想显示带有值的过滤器 营地-1 营地-2 3号营地

如何在 tableau 的过滤器中只选择字母值?

【问题讨论】:

  • 你的意思是除了这三个之外,其他值对过滤器隐藏了吗?

标签: mysql tableau-api visualization dashboard


【解决方案1】:

您的示例不清楚要包含什么以及要排除什么。为了更好地解释,我举了一个详细的例子

Case-1如果您想搜索/过滤digits at start,请使用此计算字段

REGEXP_MATCH([Field1], '^[0-9]')

Case-2如果你想搜索numbers anywhere,使用这个

REGEXP_MATCH([Field1], '(.*)[0-9]')

案例3如果需要digits only

REGEXP_MATCH([Field1], '^[0-9]+$')

case-4 for alphabet at start 使用这个

REGEXP_MATCH([Field1], '^[:alpha:]')

所有比赛的结果如下所示

注意结合numbers anywhere AND alphabet at start 可以只过滤掉case1、case2和case3。

祝你好运

【讨论】:

  • 您好,谢谢。它帮助我找到了我想要的输出
  • 很高兴得到帮助。请随时接受和投票,这通常在 Stack Overflow 上需要。
【解决方案2】:

如果 Tableau 列包含数字和文本的混合,则该列将是文本列,并且所有内容都将被视为文本。这将问题减少为识别包含非数字值的特定行的问题。

这需要一些字符串操作和比较。如果您知道这些行中的内容结构是可预测的(例如,当行中有非数字字符时,第一个字符始终是字母),那么一个简单的等式将过滤这些行:

if ascii(left([Text And Numbers],1) )>57 then 'text' else 'number' END

这利用了数字 9 的 ASCII 十进制代码是 57 并且大多数具有更高代码的 ASCII 字符是字母或标点符号的观察结果(如果您的代码中除了数字、字母或标点符号之外什么都没有,这是一个公平的假设数据)。

显然,如果字母和数字可能出现在字符串中的任何位置,您需要一个更复杂的函数,但 Tableau 提供了使用 正则表达式 的选项,它可以像任何字母字符一样编码更复杂的文本分析存在于字符串中(有关适当的正则表达式的一些想法,请参阅this)。

【讨论】:

    猜你喜欢
    • 2013-01-12
    • 2015-11-09
    • 2021-12-10
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多