首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅筛选tableau中的字母值

仅筛选tableau中的字母值
EN

Stack Overflow用户
提问于 2020-12-20 16:38:47
回答 2查看 303关注 0票数 0

我在tableau中有一列,其值如下: 1234 3456 6789 camp-1 camp-2 camp-3

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

如何在tableau中仅选择filter中的字母值?

EN

回答 2

Stack Overflow用户

发布于 2020-12-22 12:54:04

您的示例不清楚您想要包含的内容和要排除的内容。为了更好地解释,我举了一个详细的例子。

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

代码语言:javascript
复制
REGEXP_MATCH([Field1], '^[0-9]')

Case-2如果要搜索numbers anywhere,请使用以下命令

代码语言:javascript
复制
REGEXP_MATCH([Field1], '(.*)[0-9]')

Case-3 (如果需要digits only )

代码语言:javascript
复制
REGEXP_MATCH([Field1], '^[0-9]+$')

适用于alphabet at startcase-4使用以下内容

代码语言:javascript
复制
REGEXP_MATCH([Field1], '^[:alpha:]')

所有匹配结果如下所示

备注组合numbers anywhere alphabet at start您只能过滤掉case1、case2和case3。

祝好运

票数 1
EN

Stack Overflow用户

发布于 2020-12-21 02:04:15

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

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

代码语言:javascript
复制
if ascii(left([Text And Numbers],1) )>57 then 'text' else 'number' END

这利用了这样的观察结果,即数字9的ASCII十进制代码是57,代码较高的大多数ASCII字符都是字母或标点符号(如果数据中除了数字、字母或标点符号之外没有其他内容,这是一个合理的假设)。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65378229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档