运行总功能的速度优化

时间:2018-07-27 16:08:31

标签: dax powerpivot

有一张表格,其中包含按产品(SKU)和商店显示的销售量(数量)和收入(rur)。表中的产品汇总为品牌(这是一个非常简单的示例)。 目标是针对品牌上下文计算数据透视表的每个单元格,提取累计总金额中50%单位销售边界的计算价格(这不是简单的价格中位数!)。

enter image description here

我故意对示例中的行进行排序,以便以升序对估算价格(收入“ rur”除以单位“ qty”)进行排序

enter image description here

此外,按价格订购的单位销售被视为累计总数,并转换为总额的百分比

enter image description here

此后,我们寻找最大装运百分比不超过要求的边界(50%),然后将价格返回到汇总表的单元格enter image description here

在视觉上,看起来像这样

enter image description here

表中的结果看起来像这样(实际上,我们不应该在更大的表上计算50%以及10%和90%的边界,但是我在这里简化)

enter image description here

在模型中,我创建了一个计算列

price:= [rur] / [qty]

以及提供必要解决方案的措施

price.50%qty=
MAXX (
    FILTER (
        ADDCOLUMNS (
            ADDCOLUMNS (
                'tbl',
                "cs.qty", SUMX ( FILTER ( 'tbl', tbl[price] <= EARLIER ( tbl[price] ) ), tbl[qty] )
            ),
            "cs.qty.%", [cs.qty] / SUM ( tbl[qty] )
        ),
        [cs.qty.%] <= 0.5
    ),
    [price]
)

它可以在一个只有1个单元的小型表上工作,但是一旦建立了20个品牌的表10个月(200个单元),结果就无法等待。我知道EARLIER并不是最佳选择,但我不知道如何优化功能

0 个答案:

没有答案