我在tableau中有一列,其值如下: 1234 3456 6789 camp-1 camp-2 camp-3
我只想显示带有值的过滤器camp-1 camp-2 camp-3
如何在tableau中仅选择filter中的字母值?
发布于 2020-12-22 12:54:04
您的示例不清楚您想要包含的内容和要排除的内容。为了更好地解释,我举了一个详细的例子。

Case-1如果要搜索/过滤digits at start,请使用此计算字段
REGEXP_MATCH([Field1], '^[0-9]')Case-2如果要搜索numbers anywhere,请使用以下命令
REGEXP_MATCH([Field1], '(.*)[0-9]')Case-3 (如果需要digits only )
REGEXP_MATCH([Field1], '^[0-9]+$')适用于alphabet at start的case-4使用以下内容
REGEXP_MATCH([Field1], '^[:alpha:]')所有匹配结果如下所示

备注组合numbers anywhere 和 alphabet at start您只能过滤掉case1、case2和case3。
祝好运
发布于 2020-12-21 02:04:15
如果Tableau列包含数字和文本的混合,则该列将是文本列,并且所有内容都将被视为文本。这将问题减少到识别包含非数字值的特定行的问题。
这需要一些字符串操作和比较。如果您知道这些行中内容的结构是可预测的(例如,当行中有非数字字符时,第一个字符始终是字母),那么一个简单的等式将对这些行进行过滤:
if ascii(left([Text And Numbers],1) )>57 then 'text' else 'number' END这利用了这样的观察结果,即数字9的ASCII十进制代码是57,代码较高的大多数ASCII字符都是字母或标点符号(如果数据中除了数字、字母或标点符号之外没有其他内容,这是一个合理的假设)。
显然,如果字母和数字可以出现在字符串中的任何位置,您需要一个更复杂的函数,但是Tableau提供了使用正则表达式的选项,它可以编写更复杂的文本分析代码,就像字符串中出现的任何字母字符一样(有关适当的正则表达式的一些概念,请参阅this )。
https://stackoverflow.com/questions/65378229
复制相似问题