Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply

¿CUÁNTOS CLIENTES HEMOS PERDIDO ESTE AÑO?

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

EtiquetaIdentifica
-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!

1 ACCEPTED SOLUTION

Jugando con la fórmula que proporcionó y cambiándola he venido a la solución desesidered:

Clientes perdidos ?
Año VAR á MAX(fatturato[anno_fattura])
devolución
CALCULATE(
COUNTROWS( FILTRO (
RESUMEN(
volumen de negocios[codice_cliente_statistico],
"Año" , IF(ISBLANK(CALCULATE( SUM(turnover[turnover]), turnover[anno_fattura] á Year)), 0, CALCULATE(SUM(turnover[turnover]) , turnover[anno_fattura] ? Year)) ,
"Año-1" , IF(ISBLANK(CALCULATE( SUM(turnover[turnover]), turnover[anno_fattura] á Year-1)), 0, CALCULATE( SUM(turnover[turnover]), turnover[anno_fattura] - Year-1))) ,

[Año] <-0 &&
[Año-1] > 0 )

))
¡Muchas gracias!

View solution in original post

10 REPLIES 10
tex628
Community Champion
Community Champion

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


Connect on LinkedIn

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)

gabrielefugazzi_0-1603879097755.png

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

Hay un ")" demasiado aquí:

image.png


Connect on LinkedIn

Al quitarlo, se produce el siguiente error (siempre en la cláusula filter)

gabrielefugazzi_1-1603880145999.png

¡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)
)




Connect on LinkedIn

No hay problema en absoluto! Sólo estoy aprendiendo

Haciendo lo sugerido he definido la fórmula de la siguiente manera:

Clientes perdidos ?
Año VAR á MAX(fatturato[anno_fattura])

devolución
CALCULATE(
COUNTROWS(
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 partir de esta fórmula, la salida debe ser el número total de clientes con su importe total de venta por año (si estoy en lo correcto). La salida es 10826.
Un resultado extraño porque al ejecutar la consulta en Excel (conectado al modelo tabular) el resultado es 5791 clientes en 2019 y 2020 (el mismo período seleccionado en PowerBI).
También he intentado cambiar COUNTROWS con DISTINCTCOUNT, pero no se realizó correctamente porque DAX rechaza esa combinación de función (parámetro no es del tipo correcto).
Me equivoco en algo, pero no puedo verlo.

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





Connect on LinkedIn

Jugando con la fórmula que proporcionó y cambiándola he venido a la solución desesidered:

Clientes perdidos ?
Año VAR á MAX(fatturato[anno_fattura])
devolución
CALCULATE(
COUNTROWS( FILTRO (
RESUMEN(
volumen de negocios[codice_cliente_statistico],
"Año" , IF(ISBLANK(CALCULATE( SUM(turnover[turnover]), turnover[anno_fattura] á Year)), 0, CALCULATE(SUM(turnover[turnover]) , turnover[anno_fattura] ? Year)) ,
"Año-1" , IF(ISBLANK(CALCULATE( SUM(turnover[turnover]), turnover[anno_fattura] á Year-1)), 0, CALCULATE( SUM(turnover[turnover]), turnover[anno_fattura] - Year-1))) ,

[Año] <-0 &&
[Año-1] > 0 )

))
¡Muchas gracias!

Maravilloso para escuchar! Buena apariencia con cálculos futuros 🙂

Br
J


Connect on LinkedIn

Helpful resources

Announcements
Sept PBI Carousel

Power BI Monthly Update - September 2024

Check out the September 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Sept NL Carousel

Fabric Community Update - September 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors