Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 给定日期2个表的幂双加权平均收益率_Powerbi - Fatal编程技术网

Powerbi 给定日期2个表的幂双加权平均收益率

Powerbi 给定日期2个表的幂双加权平均收益率,powerbi,Powerbi,我想计算给定日期的两个关系表之间的平均收益率 Table1 Table2 +-------------------------------+ +-------------------------------+ | ID TradeDate Amount | | ID TradeDate Yield | +-------------------------------+ +---

我想计算给定日期的两个关系表之间的平均收益率

Table1                               Table2
+-------------------------------+    +-------------------------------+
| ID     TradeDate       Amount |    | ID     TradeDate       Yield  |
+-------------------------------+    +-------------------------------+
| 1       2018/11/30      100   |    | 1       2018/11/8      2.2%   |
| 1       2018/11/8       101   |    | 1       2018/8/8       2.1%   |
| 1       2018/10/31      102   |    | 1       2018/5/8       2.0%   |
| 1       2018/9/30       103   |    | 2       2018/9/8       1.7%   |
| 2       2018/11/30      200   |    | 2       2018/6/8       1.6%   |
| 2       2018/10/31      203   |    | 2       2018/3/8       1.5%   |
| 2       2018/9/30       205   |    | 3       2018/10/20     1.7%   |
| 3       2018/11/30      300   |    | 3       2018/7/20      1.6%   |
| 3       2018/10/31      300   |    | 3       2018/4/20      1.6%   |
| 3       2018/9/30       300   |    +-------------------------------+
+-------------------------------+
我创建了一个名为“DateList”的表,并使用切片器选择指定的日期

屏幕截图日期列表。

我希望取得以下成果:

as of *11/9/2018*
+-----------------------------------------------------------------+
| ID      LastDate       Value     LatestYieldDate     LastYield  |
+-----------------------------------------------------------------+
| 1       2018/11/8       101          2018/11/8         2.2%     |
| 2       2018/10/31      203          2018/9/8          1.7%     |
| 3       2018/10/31      300          2018/10/20        1.7%     |
+-----------------------------------------------------------------+
| Total                   604                           1.7836%   |                   
+-----------------------------------------------------------------+
目前,我使用以下公式来实现部分结果

在表1中创建两个度量

    LastDate = 
    VAR SlicerDate = MIN(DateList[Date])
    VAR MinDiff =
        MINX(FILTER(ALL(Table1),Table1[ID] IN VALUES(Table1[ID])),
            ABS(SlicerDate - Table1[TradeDate]))
    RETURN
        MINX(FILTER(ALL(Table1),Table1[ID] IN VALUES(Table1[ID])
            && ABS(SlicerDate - Table1[TradeDate]) = MinDiff),
            Table1[TradeDate])

    Value = CALCULATE(SUM(Table1[Amount]), FILTER(Table1, Table1[TradeDate] = [LastDate]))
在表2中创建两个度量

LastYieldDate = 
VAR SlicerDate = MIN(DateList[Date])
VAR MinDiff =
    MINX(FILTER(ALL(Table2),Table2[ID] IN VALUES(Table2[ID])),
        ABS(SlicerDate - Table2[TradeDate]))
RETURN
    MINX(FILTER(ALL(Table2),Table2[ID] IN VALUES(Table2[ID])
         && ABS(SlicerDate - Table2[TradeDate]) = MinDiff),
        Table2[TradeDate])

LastYield = CALCULATE(SUM(Table2[Yield]), FILTER(Table2, 
            Table2[TradeDate] = [LastYieldDate]))
我不知道如何计算两个表之间的正确平均收益率 这是我目前的结果

屏幕截图当前结果。

首先需要为
ID
值创建一个桥接表,以便更轻松地使用这两个表

IDList = VALUES(Table1[ID])

现在,我们将在我们的可视化应用程序中使用
IDList[ID]
,而不是从另一个表中使用
ID

我们用于衡量最后平均收益率的指标是基本和积平均值:

LastYieldAvg = 
DIVIDE(
    SUMX(IDList, [Value] * [LastYield]),
    SUMX(IDList, [Value])
)
注意,当只有一个
ID
值时,它简化为

[Value] * [LastYield] / [Value] = [LastYield]

再次感谢亚历克西斯。我可以直接使用DAX而不是创建桥接表吗?嗨,Alexis,如果我在表1和表2中有一个名为[company]的附加列(如a、B、C等),我如何在桥接表[IDList]中组合[company]和[ID]?谢谢,还有一些。