【问题标题】:How can I group data by matching identical cells in same column then counting instances of a related column?如何通过匹配同一列中的相同单元格然后计算相关列的实例来对数据进行分组?
【发布时间】:2019-03-26 15:29:44
【问题描述】:

data output

我对 Webi 很陌生,但在创建变量时遇到了问题。我正在尝试检查每个实体旧帐号是否有超过 1 个电子邮件地址,以及是否有 1 个联系人姓名包含“年度报告”。因此,当我将每个实体遗留帐号标记为没有电子邮件时,只会提取没有包含“年度报告”的联系人姓名的那些。在上面的示例中,只有黄色组应该被称为没有电子邮件。现在他们都被拉进没有电子邮件。我尝试过使用 if 和 match,因为它们是我最熟悉的。有人有什么建议吗?

【问题讨论】:

    标签: business-objects webi


    【解决方案1】:

    您可以通过多种方式做到这一点。我将举一个使用两个变量的示例,但您可以轻松地将它们组合成一个。

    Has No Email Var=If(Match(Upper([Contact EmailAddress]); "NOEMAIL*"); 1; 0)
    Annual Report Contact Name Var=If(Match(Upper([Contact Name]); "ANNUAL REPORT*"); 1; 0)
    

    然后您将应用包含两个组件的报告过滤器...

    Has No Email Var = 1 
    AND
    Annual Report Contact Name Var = 0
    

    让我解释一些事情......

    • Upper 函数的用途是Match 函数区分大小写。如果您知道您的电子邮件地址总是小写,那么您可以删除 Upper 函数并使其与“noemail*”匹配。
    • 重要的是,我在要查找的字符串的末尾只有一个星号(“*”)。这只会找到相应列值以该字符串开头的匹配项。如果您希望无论何时在所搜索列中的任何位置找到该字符串都为真,那么您将在两端加星号。
    • 您还可以在查询过滤器中设置限制条件。但这里是事情可能会变得混乱的地方。在查询过滤器中,您可以选择 Matches pattern 运算符。但是,通配符是不同的(“%”而不是“*”),并且您不要在搜索文本周围加上双引号。所以你会有这样的事情......

      Contact EmailAddress 匹配模式 noemail%

      联系人姓名与年报不同%

      我确定您注意到我没有将搜索文本转换为大写。在查询面板中,Web Intelligence 区分大小写in,并且可能会遵循源数据数据库的区分大小写。我们所有的数据库都不区分大小写,所以如果您的数据库区分大小写,您可能需要稍微尝试一下。或者只是按照我最初的说明来创建变量和报告过滤器。

    • 如果您想要单个字符而不是多个字符的通配符(“*”和“%”会这样做),您需要使用“?”在您的变量定义或查询过滤器中的“_”中。

    希望这会有所帮助,

    诺埃尔

    【讨论】:

    猜你喜欢
    • 2021-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多