带动力枢轴的线性编程

时间:2016-05-27 15:00:40

标签: excel powerpivot linear-programming dax

我需要在一个庞大的Power Pivot上构建一个最好的案例场景分析。

所以我想知道是否可以在PP内进行线性优化。

问题如下:

我有N个航空公司,每个航空公司都有一个每次旅行的价格和一个容量(旅行/周)。我需要通过在这些运营商之间分配X旅行来最小化成本($ /周)。

实际上,我不需要知道如何来分发它,只需最低费用

示例:

承运人|价格|容量

20美元10美元

B $ 30 20

C $ 15 5

对于X = 20,我需要的信息就是最好的情况需要花费425美元(5 * 15美元+ 10 * 20美元+ 5 * 30美元)。

我无法弄清楚如何进行迭代,除了使用多个计算列伪装它们

1 个答案:

答案 0 :(得分:3)

这是一个累积的问题。让我们假设X的值作为一列存储在同一个电力枢轴实体上。我们将打电话给X TotalPeople。 添加一个名为CummulativeCapacity的计算列:

=
CALCULATE (
    SUM ( Table1[Capacity] ),
    FILTER ( ALL ( Table1 ), Table1[Price] <= EARLIER ( Table1[Price] ) )
)

然后添加另一列以存储运营商的总价格:

    =
IF (
    [TotalPeople] > [CummulativeCapacity],
    [Price] * [Capacity],
    IF (
        (
            [TotalPeople]
                - CALCULATE (
                    MAX ( [CummulativeCapacity] ),
                    FILTER ( Table1, Table1[Price] < EARLIER ( Table1[Price] ) )
                )
        )
            * [Price]
            < 0,
        0,
        [TotalPeople]
            - CALCULATE (
                MAX ( [CummulativeCapacity] ),
                FILTER ( Table1, Table1[Price] < EARLIER ( Table1[Price] ) )
            )
    )
        * [Price]
)

总价的总和将是最低费用。