Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Tengo una tabla de pedidos y en función de la fecha de creación del pedido estoy tratando de calcular el recuento de nuevos clientes/clientes devueltos e ingresos creados por ambos segmentos. ¿Es un poco más complicado porque quiero que sea dinámico en función del período que un usuario elija. (Adjunto es el portátil power bi con mis intentos fallidos de calcular este :))
Aquí está el ejemplo de datos que utilizo:
Cliente | Orden | created_at_date | Cantidad |
A | A1 | 01.01.20 | 60 |
A | A2 | 10.01.20 | 10 |
A | A3 | 30.01.20 | 200 |
B | B1 | 23.09.19 | 10 |
B | B2 | 01.01.20 | 20 |
B | B3 | 10.01.20 | 35 |
C | C1 | 23.09.19 | 10 |
C | C2 | 30.01.20 | 15 |
Resultado deseado y explicación:
Supongamos que quiero ver el número de clientes nuevos o que regresan solo para 01.01.2020. Basándose en el ejemplo anterior, el cliente A hizo su primer pedido (A1) en 01.01.2020, por lo tanto, el cliente A es un nuevo cliente para el período dado (01.01.2020). El cliente B hizo su primer pedido (B1) el 23.09.19 y el segundo pedido (B2) se realizó el 01.01.202, por lo tanto, el cliente B es un cliente que regresa para el período dado.
La revista generada por el nuevo cliente y cliente que regresa para el período de 01.01.2020 es:
nuevo cliente: 60 (A1) y cliente de retorno: 10 (B2).
Si hago los mismos cálculos para todo el mes de Janury para 2020, será así:
cliente que regresa | nuevo cliente | |
Contar | 2 (B & C) | 1 (A) |
Ingresos | 70 (B2+B3 +C2) | 270 (A1+A2+A3) |
Mi lógica para calcular esto era la siguiente:
Como tengo una segmentación de fecha, cuento el número de pedidos antes de la última fecha de la segmentación de datos y el número de pedidos que se colocaron entre las fechas especificadas en la segmentación de datos. Si esos dos números son iguales, entonces es un nuevo cliente.
Aquí está el cálculo para el nuevo cliente:
IsNewCustomer ??
Fue
Fecha de finalización: lastdate('Book1'[created_at_date])
Fue
StartDate á firstdate('Book1'[created_at_date])
Ordenes de VARTillNow - CALCULATE (
DISTINCTCOUNT ( 'Book1'[orden]),'Book1'[created_at_date]<-EndDate)
Pedidos de VARInPeriod - CALCULATE (
DISTINCTCOUNT ( 'Book1'[orden]),'Book1'[created_at_date]<-EndDate, 'Book1'[created_at_date]>'StartDate)
devolución
CALCULATE (OrdersTillNow - OrdersInPeriod)
Y luego traté de aplicar esto para contar nuevos clientes:
Recuento de nuevos clientes: CALCULATE(DISTINCTCOUNT(Book1[customer]), filter(Book1, [IsNewCustomer]))
Y como ya puede ver, no funciona porque el isNewCustomer se calcula en el nivel de cliente y no en el nivel de pedido.
Pregunta:
¿Cómo podría lograr el resultado deseado que proporcioné en el ejemplo?
@Ashish_Mathur gracias por el cuaderno y la solución! De hecho, hace wotk para el pequeño conjunto de datos.
Sin embargo, si tengo un conjunto de datos grande y quiero mostrar el número de nuevos usuarios durante semanas/días, esta solución no escala.
Esto es lo que obtengo de power bi desktop:
Hola
Puede descargar mi archivo PBI desde aquí.
Espero que esto ayude.
Hay un patrón probado y probado para esto. Lo he usado y funciona. https://www.daxpatterns.com/new-and-returning-customers/
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |