Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreGet certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now
Necesito su ayuda para responder a la pregunta resaltada anteriormente.
LO QUE LOS DATOS SE VEN COMO (Modelo tabular, Conexión dinámica en vivo)
- Tabla de hechos: VENTAS (Producto, Cliente, Importe, Precio, ...)
- Tabla de dimensiones: CLIENTES (id, nombre, ...)
SEGMENTACIÓN DE CLIENTES DESIDERED
Etiqueta | Identifica |
-100 | Cliente perdido: el año anterior fue la última vez que compró |
-1 | Cliente descreased: el año antes de comprar más de ahora |
1 | Aumento del cliente: el año anterior a la compra de menos de ahora |
100 | Cliente ganado: este año fue la primera vez que compró |
LO QUE HE HECHO HASTA AHORA
He creado una medida de la siguiente manera para calcular la segmentación para cada cliente (esta fórmula da la salida desidered):
segmentación ?
VAR maxyear á max(SELLINGS[año])
var sellings á round(CALCULATE(sum(SELLINGS[price]), SELLINGS[year] á maxyear), 2)
var sellingsBefore á round(CALCULATE(sum(SELLINGS[price]), SELLINGS[year] á maxyear -1), 2)
return if(and(sellingsBefore <> 0, sellings <-0), -100, if(and(sellingsBefore á 0, f sellings > 0), 100, if(sellings > sellingsBefore, 1, if(sellings < sellingsBefore, -1, 0))))
Y trató de la siguiente fórmula para calcular los clientes perdidos:
lostCustomers - CALCULATE(DISTINCTCOUNT(CUSTOMERS[id]), FILTER ( SELLINGS, SELLINGS[segmentation] -100))
El valor devuelto está en blanco, pero sé que el cliente perdido es 37.
LO QUE SUPONGO
Supongo que mi fórmula es incorrecta porque la fórmula no se aplica al identificador de cliente antes de aplicar el recuento distinto. El problema es que no sé cómo solucionarlo. ¿Cómo crear una tabla de estilos de matriz en la que pueda realizar el recuento distinto?
¿Me puedes ayudar?
¿Cómo puedo contar a los clientes y mostrar en un gráfico cuántos para cada segmentación? ¡Gracias!
Solved! Go to Solution.
Jugando con la fórmula que proporcionó y cambiándola he venido a la solución desesidered:
Pruebe esta medida, si funciona para clientes perdidos podemos fácilmente hacer una para cada segmentación:
Lost Customers =
VAR Year = MAX(Calendar[Year])
VAR Year-1 = Year -1
VAR Year-2 = Year -2
Return
CALCULATE(
COUNTROWS(
SUMMARIZE(
Customers[ID],
"Year" , CALCULATE( SUM(Sellings[Price]) , ALL(Calendar) , Calendar[Year] = Year) ,
"Year-1" , CALCULATE( SUM(Sellings[Price]) , ALL(Calendar) , Calendar[Year] = Year-1) ,
"Year-2" , CALCULATE( SUM(Sellings[Price]) , ALL(Calendar) , Calendar[Year] = Year-2)
)),
[Year] = BLANK(),
[Year-1] = BLANK(),
[Year-2] <> BLANK()
)
Br
J
Hola John,
He aplicado su fórmula y he observado estos errores resaltados (por favor, mire los nombres de tablas y campos italianos que he traducido antes para una mejor comprensión en la comunidad... fatturato - VENTAS, codice_cliente_statistico - identificador de cliente)
Dado que se detecta un error en los filtros aplicados a la función de resumen, he intentado lo siguiente:
Clientes perdidos ?
Año VAR á MAX(fatturato[anno_fattura])
Regreso, 19
CALCULATE(
COUNTROWS( FILTRO (
RESUMEN(
volumen de negocios[codice_cliente_statistico],
"Año", CALCULATE( SUM(turnover[turnover]), ALL(turnover), turnover[anno_fattura] - Year) ,
"Año-1", CALCULATE( SUM(turnover[turnover]), ALL(turnover), turnover[anno_fattura] - Año-1)),
[Año] - BLANK() &&
[Año-1] <> BLANK() )
))
Pero el resultado devuelto sigue siendo BLANK 🙄.
Gracias por su ayuda
Al quitarlo, se produce el siguiente error (siempre en la cláusula filter)
¡Mi mal, no estaba pensando bien! Usted debe ser totalmente correcto con el enfoque filter() que me preocupa en cuanto a por qué usted está recibiendo un resultado en blanco allí. Si solo haces una conteo normal sin ningún filtro, ¿qué resultado obtienes?
Lost Customers =
VAR Year = MAX(Calendar[Year])
Return
COUNTROWS(
SUMMARIZE(
Customers[ID],
"Year" , CALCULATE( SUM(Sellings[Price]) , ALL(Calendar) , Calendar[Year] = Year) ,
"Year-1" , CALCULATE( SUM(Sellings[Price]) , ALL(Calendar) , Calendar[Year] = Year-1) ,
"Year-2" , CALCULATE( SUM(Sellings[Price]) , ALL(Calendar) , Calendar[Year] = Year-2)
)
No hay problema en absoluto! Sólo estoy aprendiendo
Haciendo lo sugerido he definido la fórmula de la siguiente manera:
Con 2020 seleccionado en la segmentación de datos. Esto debería devolver el número exacto de clientes distintos con ventas en 2020 o 2019.
Si agrega esto en una tabla con la columna de cliente, debe obtener las ventas de 2020. Podría facilitar la comparación y ver si las cosas se están calculando correctamente:
2020 =
SUMX(
SUMMARIZE(
fatturato, fatturato[codice_cliente_statistico],
"Year" , CALCULATE( SUM(fatturato[fatturato]) , ALL(fatturato) , fatturato[anno_fattura] = Year) ,
"Year-1" , CALCULATE( SUM(fatturato[fatturato]) , ALL(fatturato) , fatturato[anno_fattura] = Year-1)),
[Year]
)
Br
J
Jugando con la fórmula que proporcionó y cambiándola he venido a la solución desesidered:
Maravilloso para escuchar! Buena apariencia con cálculos futuros 🙂
Br
J
@gabrielefugazzi, consulte este blog. Y usar Datesytd en lugar de datesmtd
Consulte también: https://community.powerbi.com/t5/Community-Blog/Customer-Retention-Part-2-Period-over-Period-Retenti...
Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early Bird pricing ends December 9th.