仅过滤表格中的字母值

问题描述

我在表格中有以下值的列: 1234 3456 6789 营地 1 营地2 营地-3

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

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

解决方法

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

enter image description here

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]+$')

case-4 alphabet at start 使用这个

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

所有比赛结果如下

enter image description here

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

祝你好运

,

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

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

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

这利用了以下观察结果:数字 9 的 ASCII 十进制代码是 57,并且大多数具有更高代码的 ASCII 字符是字母或标点符号(如果您的代码中除了数字、字母或标点符号之外没有其他任何内容,那么这是一个合理的假设)数据)。

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