Qlik 从多个字段中获得不同的计数
Posted
技术标签:
【中文标题】Qlik 从多个字段中获得不同的计数【英文标题】:Qlik get distinct count from multiple fields 【发布时间】:2017-07-28 05:42:45 【问题描述】:我已经在网上搜索了一个多小时,但找不到我需要的东西。
我有两列包含人名; Contact
和 Created By
。两者格式相同。
基本上我需要计算这两个列组合的不同值。例如该名称可以多次出现在每列数据中,但我只希望该名称计算一次。
我尝试使用以下内容,但它返回的数字高于两列之间的实际不同值。
=Sum(Aggr(Count(Distinct [Created By]),[Contact]))
也试过了,返回的数字和上面一样。
=Count(Distinct [Contact] & [Created By])
提前致谢!
【问题讨论】:
【参考方案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 将在 Contact
和 Created By
中有关联的名称,您可以修改原始公式如:(count($<date='2016-12-31'>distinct Contact) + count($<date='2016-12-31', [Created By]-=p(Contact)> distinct [Created By])) - (count($<date='2016-01-01'>distinct Contact) + count($<date='2016-01-01', [Created By]-=p(Contact)> distinct [Created By]))
。如果您的数据设置为 2016 年 1 月 1 日和 16 年 12 月 31 日是截止日期,我们将不得不稍作修改。以上是关于Qlik 从多个字段中获得不同的计数的主要内容,如果未能解决你的问题,请参考以下文章