首页 > 解决方案 > 需要在 power bi 报告中应用公式

问题描述

在此处输入图像描述输出Excel 数据在此处输入图像描述我在 excel 中有一个表格,其中提到了 3 列。封闭列是计算列,我在 Row1 中应用了公式,IFERROR(IF(B2="","",B2),"") 其中 B2=71,输出为 71(封闭列)。

在封闭列的第 2 行中,我应用了公式IFERROR(IF(01/2020=01/2020, 284-71, 284),"")- / IFERROR(IF(A3=A2, B3-B2, B3),"")。输出是 213 等等...

我在 power bi、报告月份和打开列中拥有相同的数据。我需要创建一个计算列来获取封闭的列数据。请帮助我使用适用于 power bi 的公式。Excel 数据

标签: powerbidaxpowerbi-desktoppowerbi-datasourcepower-bi-report-server

解决方案


您的数据中有一个索引或 ID列,只需使用该列。在这里,我添加了一个索引列来维护行之间的顺序,数据如下所示 -

在此处输入图像描述

现在在下面创建这个度量 -

Closed = 

VAR previous_row_open = 
CALCULATE(
    MAX(your_table_name[open]),
    FILTER(
        ALLEXCEPT(
            your_table_name,
            your_table_name[report month]
        ),
        your_table_name[Index] = MIN(your_table_name[Index]) - 1
    )
) + 0

VAR previous_row_report_month = 
CALCULATE(
    MAX(your_table_name[report month]),
    FILTER(
        ALLEXCEPT(
            your_table_name,
            your_table_name[report month]
        ),
        your_table_name[Index] = MIN(your_table_name[Index]) - 1
    )
)

RETURN
IF(
    previous_row_report_month = BLANK(),
    MIN(your_table_name[open]),
    MIN(your_table_name[open]) - previous_row_open
) 

这是输出 -

在此处输入图像描述

自定义列的代码

Closed_column = 

VAR current_index = your_table_name_2[Index]

VAR previous_row_open = 
CALCULATE(
    MAX(your_table_name_2[open]),
    FILTER(
        ALLEXCEPT(
            your_table_name_2,
            your_table_name_2[report month]
        ),
        your_table_name_2[Index] = current_index - 1
    )
) + 0

VAR previous_row_report_month = 
CALCULATE(
    MAX(your_table_name_2[report month]),
    FILTER(
        ALLEXCEPT(
            your_table_name_2,
            your_table_name_2[report month]
        ),
        your_table_name_2[Index] = current_index - 1
    )
)

RETURN
IF(
    previous_row_report_month = BLANK(),
    your_table_name_2[open],
    your_table_name_2[open] - previous_row_open
)

推荐阅读