【问题标题】:Qlik get distinct count from multiple fieldsQlik 从多个字段中获得不同的计数
【发布时间】:2017-07-28 05:42:45
【问题描述】:

我已经在网上搜索了一个多小时,但找不到我需要的东西。

我有两列包含人名; ContactCreated By。两者格式相同。

基本上我需要计算这两个列组合的不同值。例如该名称可以多次出现在每列数据中,但我只希望该名称计算一次。

我尝试使用以下内容,但它返回的数字高于两列之间的实际不同值。

=Sum(Aggr(Count(Distinct [Created By]),[Contact])) 

也试过了,返回的数字和上面一样。

=Count(Distinct [Contact] & [Created By])

提前致谢!

【问题讨论】:

    标签: count aggregate qlikview


    【解决方案1】:

    我想你可以试试这样的:

    count(distinct Contact) + count({$<[Created By]-=p(Contact)>} distinct [Created By])
    

    基本上,它将来自 Contact 的唯一计数添加到来自Created By 的唯一计数,其中Created By 不是Contact 中的名称之一。

    【讨论】:

    • 你太棒了!!!太感谢了。我对 Qlikview 比较陌生。是否可以再添加一件?现在工作正常,我发现我需要在“创建”大于或等于 2016 年 1 月 1 日的地方添加。想法?
    • 还有 -=p 中的 p 代表什么?
    • 为了保存迭代,这正是我现在想要做的,因为我知道计算两列之间的不同值是可能的。我需要计算一年中第一天的不同计数(联系人+创建者)与当天/今年最后一天之间的差异,以较大者为准。例如2016 年 1 月 1 日有 100 个不同,2016 年 12 月 31 日有 125 个不同,显示的值等于 25。 2017 年 1 月 1 日为 150,2017 年 3 月 8 日为 166,显示的值将等于 16。
    • p() 是一个函数,它产生传递的字段的“可能值”。它在上述公式中的使用(没有任何 set 修饰符)只会导致 Contact 的所有不同值。 p() 函数有许多更广泛的用途。请参阅here 或尝试使用谷歌搜索“Qlik P() 和 E()”以获取更多详细信息。
    • 假设您的数据已设置为如果您在日历列表框中选择 1/1/16 将在 ContactCreated By 中有关联的名称,您可以修改原始公式如:(count({$&lt;date={'2016-12-31'}&gt;}distinct Contact) + count({$&lt;date={'2016-12-31'}, [Created By]-=p(Contact)&gt;} distinct [Created By])) - (count({$&lt;date={'2016-01-01'}&gt;}distinct Contact) + count({$&lt;date={'2016-01-01'}, [Created By]-=p(Contact)&gt;} distinct [Created By]))。如果您的数据设置为 2016 年 1 月 1 日和 16 年 12 月 31 日是截止日期,我们将不得不稍作修改。
    猜你喜欢
    • 1970-01-01
    • 2016-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-18
    • 2023-04-05
    • 1970-01-01
    相关资源
    最近更新 更多