仅过滤画面中的字母值
Posted
技术标签:
【中文标题】仅过滤画面中的字母值【英文标题】:Filter only alphabetic values in tableau 【发布时间】:2021-03-30 08:36:16 【问题描述】:我在 tableau 中有具有以下值的列: 1234 3456 6789 营地-1 营地-2 3号营地
我只想显示带有值的过滤器 营地-1 营地-2 3号营地
如何在 tableau 的过滤器中只选择字母值?
【问题讨论】:
你的意思是除了这三个之外,其他值对过滤器隐藏了吗? 【参考方案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)。
【讨论】:
以上是关于仅过滤画面中的字母值的主要内容,如果未能解决你的问题,请参考以下文章