我在Qlikview中有一个包含2列的表:
A B
a 10
b 45
c 30
d 15
基于此表,我有一个完整累积的公式定义为: SUM(a)/ SUM(TOTAL a)
结果,
A B D
b 45 45/100=0.45
c 30 75/100=0.75
d 15 90/100=0.90
a 10 100/100=1
我的问题是。如何在A列中标记D列中的值<&lt; = 0.8)? 挑战是D被定义为完全积累,但如果我在公式中引用D,它就不会考虑完全积累!
我试着定义一个公式E = if(D> 0.8,&#39; Y&#39;,&#39; N&#39;)但这个公式没有取可见(累计)值不幸的是,对于D而言,它没有积累。如果这样做,我会试图隐藏(不禁用)E并从表格的维度列,文本颜色选项中引用它。有什么想法吗?感谢
答案 0 :(得分:1)
您无法从维度或其属性中获取表达式列的值,因为表达式列依赖于提供的维度。它会创造一个无限循环。您的选择是:
使用聚合创建临时表并使用RangeSum()累积值。请注意,如果按照列A的升序排序表,则只能正确累积。
=IF(Aggr(RangeSum(Above(Sum(B),0,10)),A)/100>0.8,
rgb(0,0,0),
rgb(255,0,0)
)