powerbi - 获取最近 2 个月内没有销售的客户 (ID) 的数量和列表
问题描述
所以,我有2张桌子如下
销售表:
+----+------------+
| ID | SALE_DATE |
+----+------------+
| 1 | 09-21-2021 |
| 2 | 09-21-2021 |
| 3 | 09-21-2021 |
| 2 | 09-21-2021 |
| 3 | 09-21-2021 |
| 1 | 09-21-2021 |
| 5 | 07-22-2021 |
| 6 | 09-21-2021 |
| 9 | 09-21-2021 |
| 7 | 08-21-2021 |
| 8 | 05-21-2021 |
+----+------------+
客户表
+----+
| ID |
+----+
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| 6 |
| 7 |
| 8 |
| 9 |
| 10 |
+----+
我想创建 2 个措施:
1st 将是过去 2 个月内没有销售的客户数,因此在本例中为 2(8 和 10)
第二个措施将给出所有这些客户 ID(8 和 10)的列表
现在,我使用此度量来获取过去 2 个月内没有销售的所有 ID 的列表
show_hide =
VAR current_name = MIN(SALES[ID])
VAR chk_not_in =
IF(
COUNTROWS(
FILTER(
ALL(SALES),
SALES[ID]= current_name && SALES[SALE_DATE])> DATE(YEAR(NOW()),MONTH(NOW())-2, DAY(NOW()))
)
)= 0,
0,
1
)
VAR chk_in =
IF(
COUNTROWS(
FILTER(
ALL(CUSTOMER),
CUSTOMER[ID] = current_name
)
) = 0,
0,
1
)
RETURN IF(chk_in = 1 && chk_not_in = 1, 1, 0)
因此,show_hide 为“0”的每个 ID 都将是过去 2 个月内没有任何销售额的 ID,我想知道是否有简单的方法可以做到这一点,而且,我不知道如何计算所有的那些身份证
解决方案
首先 - 我假设您的测试数据是 2020 年而不是 2021 年,并且 SALES 表中的 ID 是 CUSTOMER ID。
我会将其作为衡量标准和计算列来解决。
该措施将计算过去两个月内未售出的客户。从您的数据来看,我认为您缺少 (4) 个没有售出任何东西的客户 - 使客户总数达到三个 (4, 8, 10)。
CustomersWithNoSalesIn2Months =
// Work out what date was 2 months ago
VAR twoMonthsAgo = DATE(YEAR(NOW()),MONTH(NOW())-2, DAY(NOW()))
// Count the total distinct customers in the customer table
VAR totalCustomers = CALCULATE(DISTINCTCOUNT(Customer[ID]))
// Count how many distinct customers did have sales in the past 2 months
VAR customersWithSalesInTheLast2Months = CALCULATE(DISTINCTCOUNT(Sales[ID]), Sales[SALE_DATE] > twoMonthsAgo)
// Subtract the customers who did have sales from the total to get the number of customers that did not have sales
RETURN totalCustomers - customersWithSalesInTheLast2Months
计算的列将放置在 CUSTOMER 表中,并将计算过去 2 个月内有多少销售客户。
SalesMadeInTheLast2Months =
VAR MostRecentSale = CALCULATE(MAX(Sales[SALE_DATE]), FILTER(Sales, Customer[ID] = Sales[ID]))
VAR TwoMonthsAgo = DATE(YEAR(NOW()),MONTH(NOW())-2, DAY(NOW()))
RETURN CALCULATE(COUNTROWS(Sales), FILTER(Sales, Sales[SALE_DATE] > TwoMonthsAgo), FILTER(Sales, Sales[ID] = Customer[ID]))
现在,您可以在客户表中过滤BLANK
销售额或在您需要的任何其他计算中使用计数。例如,客户 1,2 和 3 在过去 2 个月内的销售额最高。
推荐阅读
- time-complexity - 遍历 2 个不同大小的列表的复杂性
- angular - 用多条线动态地将数据添加到折线图js
- r - 从 col2 中的 col1 匹配 ID,如果它小于 col3 在 col1 中匹配的行中的值,则取该行的 col3 的值
- python - 在 Python 和 Kivy 语言之间实例化 Kivy Children Widget
- azure-devops - 您如何在 Team Services 中组合来自多个构建的人工制品?
- tabs - Material design lite 导航标签自动滑动
- python - 使用 Openpyxl 将数据从一个工作簿移动到另一个工作簿
- python - Tensorflow 对象检测:使用 .h5 (hdf5) 文件从头开始训练
- javascript - 显示来自 mustache 的 javascript 变量内容
- amazon-web-services - 负载均衡器/目标组关系查询