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

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.

Reply
Anonymous
Not applicable

¿Cómo calcular el número de tienda 1 en ventas para cada cliente de mi organización?

¡Hola a todos!

Estoy teniendo muchos problemas a la hora de obtener la Tienda número 1 en ventas para cada uno de mis clientes calculadas en una columna.

En primer lugar he creado la clasificación con la fórmula RANX como una medida como esta:

ID de almacén de rangos á RANKX(ALL(orders[store_id]),RANKX(ALL(orders[store_id]),CALCULATE([Num orders]))+DIVIDE(RANKX(ALL(orders[store_id]),CALCULATE([revenue])),(COUNTROWS(ALL(orders[store_id]))+1)),ASC)
Esto me hace la clasificación de todo el ID de la tienda, calculando primero el número de pedidos y también los ingresos totales, sólo para romper lazos si un cliente tiene la misma cantidad de pedidos con 2 o más tiendas.
Después de esto creé otra medida para obtener el ID de tienda cuando este rango es igual a 1:
Rango de ID de Tienda 1 - CALCULATE(ALL(orders[store_id]),FILTER(ALLSELECTED(orders[store_id]),[ID de almacén de rango]-1))
Así que después de eso me gustaría usar una columna de cálculo usando group by con todo mi ID de Clientes y calcular el Rango 1 del ID de Tienda para cada cliente, pero intead del ID de Tienda me gustaría obtener el Nombre de la Tienda, así que intenté usar LOOKUPVALUE en una tabla como esta:
Clientes de información: ADDCOLUMNS(SUMMARIZE(Clients,Clients[id]), "Store Name Rank 1", LOOKUPVALUE(store[name],store[ID], [Store ID Rank 1]))
Pero como tengo en mis datos más de 50 miles de id de Clientes, cada vez que intento calcular, power BI me devuelve que no tengo suficiente memoria para realizar esto.
Me gustaría saber si hay otra manera más eficiente de calcular esto, este parámetro es muy importante para nuestra organización
Muchas gracias de antemano!!
1 ACCEPTED SOLUTION
Anonymous
Not applicable

Oye

PFA la solución.

Cree una tabla adicional .

Rank á SUMMARIZE(Orders,Orders[client_id],Orders[store_id],"Orders",COUNT(Orders[store_id]))
Publique esta opción para agregar una columna de cálculo a esta tabla.
Estrella á RANKX(FILTER('Rank','Rank'[client_id]-EARLIER('Rank'[client_id])),'Rank'[Orders],DESC)
Esto clasificará las tiendas por cliente, publicará esto, vaya a la página del lienzo arrastre "Estrella" en el panel de filtro y seleccione es igual a 1, arrastre su ID de cliente e ID de tienda, obtendrá grupos de clientes donde el ID de la tienda 1.
Si te gusta la solución, amablemente, acédárlala y avísame.

View solution in original post

12 REPLIES 12
Anonymous
Not applicable

Creo que la mejor solución sería clasificar en 1 variable, en lugar de contar u órdenes puede crear una columna en la función de resumen en la que puede resumir órdenes + Ingresos y esa columna se puede llamar como "Todo Total" y luego reemplazar la variable de orden con esta recién creada "Todo Total" en la función de clasificación que clasificará los números como un todo , que en realidad te contaría la historia.

Anonymous
Not applicable

Sure, I will look at the file tomorrow, in the meantime have you tried the solution?

Anonymous
Not applicable

@nishantchawla sí lo intenté, pero no funcionó tan bien

El objetivo principal es configurar grupo por cada client_ID, puedo obtener la tienda de rango 1. Y luego puedo filtrar para ver todos los clients_id a grupos con el mismo rango de tienda 1

Anonymous
Not applicable

Oye

PFA la solución.

Cree una tabla adicional .

Rank á SUMMARIZE(Orders,Orders[client_id],Orders[store_id],"Orders",COUNT(Orders[store_id]))
Publique esta opción para agregar una columna de cálculo a esta tabla.
Estrella á RANKX(FILTER('Rank','Rank'[client_id]-EARLIER('Rank'[client_id])),'Rank'[Orders],DESC)
Esto clasificará las tiendas por cliente, publicará esto, vaya a la página del lienzo arrastre "Estrella" en el panel de filtro y seleccione es igual a 1, arrastre su ID de cliente e ID de tienda, obtendrá grupos de clientes donde el ID de la tienda 1.
Si te gusta la solución, amablemente, acédárlala y avísame.
Anonymous
Not applicable

@nishantchawla Esta es una gran solución!! No necesitaba mucha memoria para procesar, pero sólo tengo una pregunta más para que esto pueda llegar a ser perfecto

Usando este sistema de rango que usted dijo entre la cantidad de órdenes, si hay dos o más tiendas con la misma cantidad de órdenes, estarán empatadas con el mismo rango.

Me gustaría romper la corbata de los ingresos para cada tienda, tal vez Sum(order[value]) asistirá. Pero, ¿cómo puedo romper esta corbata con el DAX Rankx?

Anonymous
Not applicable

Hola @danlindoso11

No sé por qué estás creando una columna calculada, acaba de crear una medida como se muestra a continuación

Calculate(selectedvalue(storeID),topn(1,allselected(storeID),Sum(orders),desc)

Esta medida le dará el 1 storeID clasificado

Anonymous
Not applicable

Hola @nishantchawla

He intentado esta medida en este momento, pero no resolvió mi objetivo.

Quería crear una columna calculada porque necesito estar entre todas las tiendas que cada uno de nuestros clientes ha hecho, cuál es la que hizo más pedidos. Así que si eso puedo filtrar a todos los clientes que tienen la historia X (por ejemplo) como su rango 1 órdenes Store, y con eso puedo personalizar mi comunicación con este grupo.

Y una medida que no puedo hacer eso

Anonymous
Not applicable

También puede intentar crear una medida de dax simple como á var a á distinctcount(orders) return Rankx(allselected(storeID,a,,desc) y en el panel de filtro arrastre esta medida y manténgala siempre igual a 1. Publique esto, haga una segmentación con su ID de cliente y seleccione los clientes y en consecuencia la clasificación de la tienda cambiará y llegaremos a saber que para estos muchos clientes esta es la tienda número 1 y del mismo modo.

¿Esto lo resolvió?

Anonymous
Not applicable

Oye, @danlindoso11 puedes compartir el PBIX conmigo?

Anonymous
Not applicable
AlB
Super User
Super User

Hola @danlindoso11

¿Puede mostrar una muestra de las tablas relevantes en su modelo (3 parece) y detallar sus relaciones? O, si es posible, compartir el pbix

Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.

Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

Anonymous
Not applicable

Hey @AlB

Puedo explicarte desde aquí, pero por favor dime si lo entiendes, si no puedo enviarte una huella.

La tabla ORDERS tiene una columna denominada ID de almacén (que significa el identificador de tienda que el cliente realizó el pedido) y esta columna está vinculada con la tabla STORE que tiene una columna denominada ID.

También tengo una tabla CLIENTS que tiene una columna denominada ID y he creado una relación con la tabla ORDERS que tiene una columna denominada Id. de clientes.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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