使用pentaho排除具有特定值[字符串中的子字符串]的数据

使用pentaho排除具有特定值[字符串中的子字符串]的数据,pentaho,Pentaho,我有一列“数字字段”(Excel表格)。它的值如下所示 Test_Number Number_field 1 0011 10 00A34 PS 2 0011 10 00A34 PS 3 0010 01 00A30 PS 4 0010 01 00A30 PS 5 0010 01 00A35 PS 6 0010 01 00A35 PS 现在,我需要从这些文件中删除那些

我有一列“数字字段”(Excel表格)。它的值如下所示

Test_Number Number_field
1            0011 10 00A34 PS
2            0011 10 00A34 PS
3            0010 01 00A30 PS
4            0010 01 00A30 PS
5            0010 01 00A35 PS
6            0010 01 00A35 PS

现在,我需要从这些文件中删除那些包含
“0A34”
“0A35”
的文件。我怎样才能做到这一点?我尝试了“filter”选项,但无法使用此选项搜索字符串中的子字符串。请帮助

如果您想在excel中这样做,那么您可以使用下面的公式并对其进行筛选,以从excel中删除记录。 添加以下公式,并将其拖动到所有记录上。在此新公式列上创建筛选器,然后删除记录

=IF(OR(IFERROR( SEARCH("A34",B2), 0),IFERROR( SEARCH("A35",B2), 0)), "REMOVE", "KEEP")
检查下面的快照

希望这对你有帮助


如果有帮助,则将其标记为答案。

使用带有以下参数的
用户定义Java表达式的组合:

  • Java表达式:
    (数字字段indexOf(“0A34”)!=-1 |数字字段indexOf(“0A35”)!=-1)?“删除”:“确定”
  • 值类型:字符串
  • 新字段:是要删除的行吗
筛选行
使用以下参数进行步骤:

  • 条件:`is_row_to_remove=remove(String)
  • 将“真”数据发送到步骤:您的下一步
  • 将“假”数据发送到步骤:
    Dummy(不执行任何操作)
    step
流程说明:

  • 用户定义的Java表达式:Java代码查找
    0A34
    0A35
    ,并在新字段中用
    Remove
    值标记该行
    is row\u to\u Remove
  • 筛选行:根据
    中的值筛选记录流的步骤是\u row\u to \u remove
    。如果值设置为
    Remove
    ,则继续执行
    Dummy
    步骤。否则将继续进行下一步

  • 您可以按如下两个步骤简单地完成此操作。

    筛选行
    步骤中,添加以下条件。

    这对我来说是新鲜事。不错。:)@mzy和我从来没有尝试过你解释的步骤
    用户定义Java表达式
    也从你的答案中学到了一个新东西:),因为我想在这里发布更多的步骤。如果有人提供了正确的答案,请始终尝试在你的所有问题中选择正确的答案。如果他们帮助了你,总是通过向上投票来鼓励他们。