点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我已经开发了一个WEBI报告,其后端数据源是BEX查询。 该查询的层次结构为" H1",量度为" m1"。 我需要为每个层次结构级别总计计算" m1"。 为了避免随着每个层次级别的扩展使m1加倍,我对m1总数使用了以下公式
=总和(if([H1] .Depth = 0; [m1]; 0))
我使用了以下链接中的公式
https://archive.sap.com/discussions/thread/3331847
我也尝试过使用soln。 通过以下链接。
https://archive.sap.com/discussions/thread/3359253
没有运气…..:(
从第一个链接开始的此公式可以完美地计算每个层次结构级别的m1总数,而无需通过层次结构级别扩展BUT将聚合加倍
当我在Webi报表上将H1用作输入控件过滤器时,会出现公式问题。 当选择m1总数时,仅对于所有子节点的顶级层次结构节点而言,总的来说才是正确的,因为我使用了条件" if([H1] .Depth = 0; [m1]; 0)",所以m1总数对所有子节点都是正确的。
我尝试了公式的不同变体,例如,在else条件中,而不是0,我给条件" if([H1] .Depth = 1; [m1]; if([H1] .Depth = 2; [m1]; 0))"。 我有3个等级的层次结构。 所以我的公式变成
Sum(if([H1] .Depth = 0; [m1]; if([H1] .Depth = 1; [m1]; if([H1] .Depth = 2; [m1]; 0)) ))
此变体在任何层次结构级别上都不会产生0的总和,但深度1的总和(m1总计)是两倍,深度2则是三倍。
我可以理解,对于级别1,它包括深度0和深度1的总和,与深度2相同,这为深度0,深度1和深度2加了。
因此,为了避免这种情况,我在各个级别分别使用了sum,但这会导致" MultiValue错误"。
请提出一个适用于聚合和输入控制的公式,该公式可过滤子节点而不产生总计0的
任何帮助将不胜感激。
谢谢!!!!!
您好,Afreen,
我想您可能现在已经知道了这一点,但是只要我正确理解您的问题,就可以尝试以下操作:
在上图中,我有两个相同的表块。 两者都使用相同的变量:
第二个变量仅显式计算您的L0总数。 为了避免L0结果重复,我添加了Nofilter()函数,并且仅在表的聚合页脚中使用[v_M1 Total(L0)]变量。 在对左侧表中的层次结构值进行过滤时,值不会更改。
但是我不确定这是您的问题吗?
亲切的问候,
汤姆
嗨,汤姆,
感谢您的支持。 我申请了你的Soln。 它有效!!
但是对于其他人,我也要提到我的问题。 我申请了
我没有使用深度进行层次结构,而是使用了简单的webi上下文运算符ForEach
总和([Measure] ForEach(表和本节中的所有尺寸列)。
再次感谢您的支持。
一周热门 更多>