我有一份关于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周等)发生,即使它们不再符合过滤器中的条件。我也有兴趣看到有关新客户的相同信息,这些新客户将在以后的几周内加入符合初始标准的统计数据。
我的问题是,我不确定如何计算标记客户的列,如果他们符合特定日期的标准,因为这似乎只将所有数据过滤到该日期。
我要问清楚,是否可能?
答案 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]))