PowerBI跟踪客户列表

时间:2018-03-08 00:35:06

标签: reporting powerbi dax

我有一份关于Power BI报告的泡菜。我有一组我想跟踪的客户。通过在我们的开始日期过滤掉几列来收集该客户集;也就是说,他们都开始在某个日期匹配相同的标准。

标准是10k以下的Num许可证,低于.1的%遵守率,以及Num功能> =。

在数据库中,这看起来像这样:

╔═══════════════╦═══════════╦═════════════╦════════════╦═════════════╗
║ Customer Name ║ StartDate ║ NumLicenses ║ %Adherence ║ NumFeatures ║
╠═══════════════╬═══════════╬═════════════╬════════════╬═════════════╣
║ Customer A    ║ 2/21/2018 ║        6000 ║ .08        ║           5 ║
║ Customer B    ║ 2/21/2018 ║        4400 ║ .01        ║           4 ║
║ Customer C    ║ 2/21/2018 ║        2150 ║ .07        ║           4 ║
╚═══════════════╩═══════════╩═════════════╩════════════╩═════════════╝

我希望随着时间的推移跟踪这组客户,所以我想看看这组客户下周的表现如何:

在数据库中,这看起来像这样:

╔═══════════════╦═══════════╦═════════════╦════════════╦═════════════╗
║ Customer Name ║ StartDate ║ NumLicenses ║ %Adherence ║ NumFeatures ║
╠═══════════════╬═══════════╬═════════════╬════════════╬═════════════╣
║ Customer A    ║ 2/28/2018 ║        6000 ║ .11        ║           7 ║
║ Customer B    ║ 2/28/2018 ║        4400 ║ .01        ║           4 ║
║ Customer C    ║ 2/28/2018 ║        2150 ║ .07        ║           2 ║
╚═══════════════╩═══════════╩═════════════╩════════════╩═════════════╝

因此,根据我目前的标准作为PowerBI中的过滤器,客户A和C将不会出现在第2周的报告中,因为它们不再符合标准。

我无法访问从中提取此数据的数据库;我只能更新报告本身而不能更新任何查询。

我感兴趣的是能够看到第1周的客户群如何在第2周(以及第3周等)发生,即使它们不再符合过滤器中的条件。我也有兴趣看到有关新客户的相同信息,这些新客户将在以后的几周内加入符合初始标准的统计数据。

我的问题是,我不确定如何计算标记客户的列,如果他们符合特定日期的标准,因为这似乎只将所有数据过滤到该日期。

我要问清楚,是否可能?

1 个答案:

答案 0 :(得分:1)

设置一个检查每行标准的计算列很简单:

Criteria = IF(Customers[NumLicenses] < 10000 &&
              Customers[Adherence] < 0.1 &&
              Customers[NumFeatures] >= 3,
              "Meets", "Fails")

根据此列,您可以创建一个新的计算列,用于检查客户是否符合条件:

CriteriaEverMet =
    CALCULATE(MAX(Customers[Criteria]),
              ALLEXCEPT(Customers, Customers[CustomerName])) = "Meets"

这是另一个给出相同结果的公式:

CriteriaEverMet =
    "Meets" IN CALCULATETABLE(VALUES(Customers[Criteria]),
                              ALLEXCEPT(Customers, Customers[CustomerName]))