首页 > 解决方案 > 过去 12 个月的 QlikView 表达式 & DISTINCT & 未因选择而改变

问题描述

我有几个表达:

=COUNT(SUPP)

给我 9316 这是正确的,因为它是总数。

=COUNT(DISTINCT SUPP)

给我 3429 这是正确的,因为它是不同的总数。

=ROUND(Sum( if((Date(MonthName(MMMYY),'MMM-YY')) >= (AddMonths(Today(),-13)),1,0)))

给我 396 这是正确的,因为它是过去 12 个月 JAN 到 JAN 的总数。

=count({$<[Company] ={"$(=concat([Company],'","'))"}>}DISTINCT [SUPP])

给我 332 这是正确的,因为它是过去 12 个月 JAN 到 JAN 的总数,但只有当我做出日期选择时。

我需要的:

我需要以下表达式:

=ROUND(Sum( if((Date(MonthName(MMMYY),'MMM-YY')) >= (AddMonths(Today(),-13)),1,0)))

适应做两件事。

  1. 给出不同选择的结果,即 (332)

  2. 不受选择的影响。

或者使用这个表达式:

=count({$<[Company] ={"$(=concat([Company],'","'))"}>}DISTINCT [SUPP])

适应做两件事。

  1. 给出 332 的结果,无需选择 JAN 15 到 JAN 16。

  2. 不受选择的影响。

标签: qlikviewqliksenseset-analysisqlik-expression

解决方案


在表达式中使用{1}前缀将忽略来自列表框(或其他)的所有选择以及DISTINCT正在计算的字段上的。

=Count({1<MMMYY ={'>=$(=Date(AddMonths(Today(), -13),'MMM-YY'))<=$(=Date(Today(), 'MMM-YY'))'}>} DISTINCT [SUPP])

推荐阅读