首页 > 解决方案 > 列 .... 的单个值无法确定

问题描述

我有 2 个用于库存管理的表。1 表示股票列表和其他一些属性,1 表示每日价值(我在股票指数上两者之间有关系)。

我想要每周的表现,即价值比前一周增加/减少了 xx。

所以我创建了一个表(每周),其中有几行对应于每一行的一周。我有 2 列:1 是一周的开始日期,1 是一周的最后一天。

我创建了一个计算的第三列,其中包含给定一周开始日期的所有值的总和:

CALCULATE (
    SUMX ( Daily_Stock; [Price] * RELATED ( Stock_list[Qty] ) );
    FILTER ( Daily_Stock; Daily_Stock[Date] = weeklies[begin_date] )
)

它工作正常,但我想排除一些在开始日期之前售出的股票(我有其他理由能够做到这一点),所以如果特定股票是这种情况,我会尝试乘以 0。

CALCULATE (
    SUMX (
        Daily_Stock;
        [Price] * RELATED ( Stock_list[Qty] )
            * IF ( RELATED ( Stock_list[sold_date] ) < weeklies[begin date]; 0; 1 )
    );
    FILTER ( Daily_Stock; Daily_Stock[Date] = weeklies[begin_date] )
)

我有以下错误:

无法确定表 Stock_list 中的列 sold_date 的单个值。

稍微调整一下,我在每周表上遇到了同样的错误。

有谁知道我应该在这里做什么?

我可以解释更多,我想避免一个太长的帖子。

谢谢

标签: daxpowerquery

解决方案


我认为问题在于关系。

我假设 RELATED 是基于你提到的股票指数。

我认为相关 stock_list[sold_date] 返回 RELATED stockID 曾经售出的所有日期。

这意味着您要尝试将多个日期与每周[开始日期]进行比较。

从 powerpivotpro 复制的关于在度量中使用 VALUES 和 IF 的图像。 在此处输入图像描述

如果我是对的,您需要另一种与您的库存清单相关的方式来获得单数匹配。我不确定 VALUES 解决方案 rob collie 用于度量的方法是否在这里有效,但也许值得测试。Rob collie powerpivotpro - IF(VALUES) 的魔力


推荐阅读