0

我正在寻找一个 DAX 度量来计算数量 = 数量 * 价格,其中价格是给定产品的最后一个先前价格。

换句话说,我正在寻找具有“where”条件的最后一个值的 DAX 度量。

以随附的工作簿为例:我有 3 个产品:

  • 苹果
  • 香蕉
  • 橘子

其中每一个都有美元价格,而数量只是数量 * 价格。

不过,橙子也可以换苹果!

为了总结这些橙子换苹果交易与其他美元交易的价值,我首先需要计算橙子的美元价值,为此我需要知道最后一个苹果支付的价格,即上一个价格,其中产品 = 苹果。

从随附的工作簿中获取此示例:

  • 上次购买苹果的价格是 5 美元
  • 售出 10 个苹果的总美元价格(数量)为:10*50=50 美元
  • 随后将 3 个橙子换成苹果,每个橙子 4 个苹果
  • 3 个橙子的总美元价格(数量)为:3x4x5=60 美元,即 # 橙子数量 * 橙子与苹果的比例 * 一个苹果的上一个价格
  • 总交易量 = 50 + 60 = 110 美元

此示例文件中还有更多示例: https ://docs.google.com/spreadsheets/d/1PTaKg9a3Yv1um2RTnpeYC4gdLVjQXEzl/edit?usp=sharing&ouid=106440602605717108817&rtpof=true&sd=true

我正在寻找的是一个 DAX 公式,它为我提供了最后一个带有条件或过滤器或 where 子句的值。

4

1 回答 1

0

以下作为计算列工作,但很昂贵,因为它使用 EARLIER:

=
VAR Conditional_Volume = IF(Transactions[product] = "orange_apple",
    CALCULATE(
    MAX(Transactions[price]), 
    ALL(Transactions),
    (Transactions[product]="apple"),    
    Transactions[transaction_id] < EARLIER(Transactions[transaction_id])
)*Transactions[price]*Transactions[quantity],Transactions[price]*Transactions[quantity])
RETURN Conditional_Volume
于 2022-02-03T15:42:45.617 回答