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.
Hola a todos
Tengo esta tabla que viene ordenada al azar:
Fecha | Producto | Lote | Cambio |
27-04-2020 | Producto 1 | 2N7J | Mañana |
08-05-2020 | Producto 1 | 5R3E | Mañana |
19-05-2020 | Producto 2 | 848Y | Noche |
19-05-2020 | Producto 2 | 848Y | Noche |
19-05-2020 | Producto 2 | 8S9G | Noche |
22-05-2020 | Producto 1 | 8V2U | Noche |
22-05-2020 | Producto 4 | 8V3T | Noche |
26-05-2020 | Producto 1 | Ax3s | Mañana |
08-06-2020 | Producto 1 | CL7R | Noche |
12-06-2020 | Producto 1 | DR2F | Noche |
19-06-2020 | Producto 1 | FF4P | Noche |
08-07-2020 | Producto 1 | LD4N | Mañana |
07-07-2020 | Producto 3 | LL7A | Mañana |
13-07-2020 | Producto 1 | NH8U | Mañana |
16-04-2020 | Producto 1 | WS9V | Noche |
16-04-2020 | Producto 1 | WS9W | Noche |
Lo que necesito es clasificar los baños por fecha y turno, pasando de más viejo a más nuevo que primero es la fecha más reciente y el turno es la primera noche, luego mañana y más viejo es turno de noche.
He tratado de hacerlo con
Fecha | Producto | Lote | Cambio | rango |
27-04-2020 | Producto 1 | 2N7J | Mañana | 9 |
08-05-2020 | Producto 1 | 5R3E | Mañana | 8 |
19-05-2020 | Producto 2 | 848Y | Noche | 1 |
19-05-2020 | Producto 2 | 848Y | Noche | 1 |
19-05-2020 | Producto 2 | 8S9G | Noche | 2 |
22-05-2020 | Producto 1 | 8V2U | Noche | 7 |
22-05-2020 | Producto 4 | 8V3T | Noche | 1 |
26-05-2020 | Producto 1 | Ax3s | Mañana | 6 |
08-06-2020 | Producto 1 | CL7R | Noche | 5 |
12-06-2020 | Producto 1 | DR2F | Noche | 4 |
19-06-2020 | Producto 1 | FF4P | Noche | 3 |
08-07-2020 | Producto 1 | LD4N | Mañana | 2 |
07-07-2020 | Producto 3 | LL7A | Mañana | 1 |
13-07-2020 | Producto 1 | NH8U | Mañana | 1 |
16-04-2020 | Producto 1 | WS9V | Noche | 10 |
16-04-2020 | Producto 1 | WS9W | Noche | 11 |
Lo cual, si lo ordeno por fecha para verlo mejor:
Fecha | Producto | Lote | Cambio | rango |
13-07-2020 | Producto 1 | NH8U | Mañana | 1 |
08-07-2020 | Producto 1 | LD4N | Mañana | 2 |
07-07-2020 | Producto 3 | LL7A | Mañana | 1 |
19-06-2020 | Producto 1 | FF4P | Noche | 3 |
12-06-2020 | Producto 1 | DR2F | Noche | 4 |
08-06-2020 | Producto 1 | CL7R | Noche | 5 |
26-05-2020 | Producto 1 | Ax3s | Mañana | 6 |
22-05-2020 | Producto 1 | 8V2U | Noche | 7 |
22-05-2020 | Producto 4 | 8V3T | Noche | 1 |
19-05-2020 | Producto 2 | 848Y | Noche | 1 |
19-05-2020 | Producto 2 | 848Y | Noche | 1 |
19-05-2020 | Producto 2 | 8S9G | Noche | 2 |
08-05-2020 | Producto 1 | 5R3E | Mañana | 8 |
27-04-2020 | Producto 1 | 2N7J | Mañana | 9 |
16-04-2020 | Producto 1 | WS9V | Noche | 10 |
16-04-2020 | Producto 1 | WS9W | Noche | 11 |
¿Alguna ayuda, por favor?
Gracias de antemano!
Solved! Go to Solution.
Hola @jgm1984 ,
Crear una COLUMNA
_add =
var a = CALCULATE(MAx('Table'[DATE ]), FILTER('Table', 'Table'[DATE ] = EARLIER('Table'[DATE ]) && 'Table'[ Product] = EARLIER('Table'[ Product]) && 'Table'[Batch] <> EARLIER('Table'[Batch])))
var b = IF (a <> BLANK() && 'Table'[Shift] = "Morning" , 3, 0)
RETURN
SWITCH(
TRUE(),
a <> BLANK() && 'Table'[Shift] = "Morning",.3,
a <> BLANK() && 'Table'[Shift] = "Evening",.2,
a <> BLANK() && 'Table'[Shift] = "Night",.1
)
Crear la columna de rango
Ranki =
var a = MAXX(FILTER('Table','Table'[Batch] = EARLIER('Table'[Batch]) && 'Table'[ Product] = EARLIER('Table'[ Product])),'Table'[DATE ])
var b = RANKX(FILTER('Table','Table'[ Product] = EARLIER('Table'[ Product])),'Table'[DATE ] + 'Table'[_add] ,,DESC,Dense)
RETURN
b
saludos
Harsh Nathani
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)
@jgm1984 hay una entrada de blog de RANKX que puede ayudarle a ordenar la clasificación de varias columnas. Compruémoslo aquí.
https://radacad.com/how-to-use-rankx-in-dax-part-1-of-3-calculated-columns
https://radacad.com/how-to-use-rankx-in-dax-part-2-of-3-calculated-measures
Si por alguna razón, no ayuda, explique lo que hizo y lo que no está funcionando y podemos investigarlo.
Me gustaría ❤ elogios si mi solución ayudara. 👉 Si puedes pasar tiempo publicando la pregunta, también puedes hacer esfuerzos para dar a Kudos quien haya ayudado a resolver tu problema. ¡Es una muestra de agradecimiento!
⚡Visítenos en https://perytus.com, su ventanilla única para proyectos/formación/consulta relacionadas con Power BI.⚡
Subscribe to the @PowerBIHowTo YT channel for an upcoming video on List and Record functions in Power Query!!
Learn Power BI and Fabric - subscribe to our YT channel - Click here: @PowerBIHowTo
If my solution proved useful, I'd be delighted to receive Kudos. When you put effort into asking a question, it's equally thoughtful to acknowledge and give Kudos to the individual who helped you solve the problem. It's a small gesture that shows appreciation and encouragement! ❤
Did I answer your question? Mark my post as a solution. Proud to be a Super User! Appreciate your Kudos 🙂
Feel free to email me with any of your BI needs.
¡Hola otra vez!
Gracias por su ayuda, pero he leído la guía, pero todavía tengo el mismo problema y sé que estoy haciendo algo grong pero no cómo hacer ir correctamente. Al final, nunca soy capaz de clasificarlo de más nuevo a más viejo. Y sé que necesito poner una condición donde filtre todas las fechas antes de la fecha en la fila real, pero también necesito filtrar el producto para esa fila. Y no puedo conseguir un lugar para poner ambas condiciones correctamente.
He probado muchas combinaciones, pero lo más cercano que estoy es con:
RANKX(FILTER(ALL('Table'[Batch],'Table'[Date]),'Table'[Date]<TODAY()),'Table'[Batch],ASC,Dense)
RANKX(FILTER(ALL('Table'[Batch],'Table'[Date]),DATESYTD('Table'[Date])),DISTINCTCOUNT('Table'[Batch]),,ASC,Dense)
Pero de todos modos, parece que todavía lo clasifica como están en la tabla al principio.
¿Alguna ayuda, por favor?
¡Gracias!
Hola @jgm1984 ,
¿Puede explicar la lógica un poco mejor.
Tal vez me estoy perdiendo algo.
saludos
Harsh Nathani
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)
¡Seguro! 🙂
Tengo cuatro columnas a tener en cuenta para el rango:
FECHA DE CAMBIO DE LOTE DEL PRODUCTO
y tengo la eficiencia como la quinta columna con la que voy a hacer los cálculos después. El objetivo es obtener la velocidad media de los últimos tres lotes para cada producto.
Los datos vienen en una clasificación aleatoria, no ordenado por fecha, quiero decir. Así que entiendo:
FECHA DE CAMBIO DE LOTE DEL PRODUCTO
09/02/2020 Producto 1 Una mañana
09/02/2020 Producto 1 A Noche
10/02/2020 Producto 1 Una Noche
10/02/2020 Producto 1 B Mañana
06/02/2020 Producto 1 C Mañana
05/02/2020 Producto 1 D Noche
05/02/2020 Producto 2 E Noche
07/02/2020 Producto 2 F Mañana
Y así sucesivamente. Así que lo que me gustaría conseguir es conseguir que otros lo clasifiquen de la siguiente manera:
FECHA DE CLASIFICACIÓN DE TURNO DE LOTE DEL PRODUCTO
09/02/2020 Producto 1 A Mañana 2
09/02/2020 Producto 1 A Noche 2
10/02/2020 Producto 1 Una Noche 2
10/02/2020 Producto 1 B Mañana 1
06/02/2020 Producto 1 C Mañana 3
05/02/2020 Producto 1 D Noche 4
05/02/2020 Producto 1 E Mañana 5
05/02/2020 Producto 2 F Noche 2
07/02/2020 Producto 2 G Mañana 1
Sería esta lógica:
Para cada producto, clasifique cada lote por fecha y turno, de más reciente a más antiguo, teniendo en cuenta que el plazo real es
Fecha X noche --> Fecha X mañana --> Fecha X noche --> Fecha X+1 noche --> Fecha X+1 mañana --> ... y así sucesivamente
¡Espero que tenga sentido!
Muchas gracias por su ayuda
Hola @jgm1984 ,
10/02/2020 Producto 1 Una Noche 2
es este 10/02/2020 o 09/02/2020
saludos
Harsh Nathani
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)
Hola @jgm1984 ,
Crear una COLUMNA
_add =
var a = CALCULATE(MAx('Table'[DATE ]), FILTER('Table', 'Table'[DATE ] = EARLIER('Table'[DATE ]) && 'Table'[ Product] = EARLIER('Table'[ Product]) && 'Table'[Batch] <> EARLIER('Table'[Batch])))
var b = IF (a <> BLANK() && 'Table'[Shift] = "Morning" , 3, 0)
RETURN
SWITCH(
TRUE(),
a <> BLANK() && 'Table'[Shift] = "Morning",.3,
a <> BLANK() && 'Table'[Shift] = "Evening",.2,
a <> BLANK() && 'Table'[Shift] = "Night",.1
)
Crear la columna de rango
Ranki =
var a = MAXX(FILTER('Table','Table'[Batch] = EARLIER('Table'[Batch]) && 'Table'[ Product] = EARLIER('Table'[ Product])),'Table'[DATE ])
var b = RANKX(FILTER('Table','Table'[ Product] = EARLIER('Table'[ Product])),'Table'[DATE ] + 'Table'[_add] ,,DESC,Dense)
RETURN
b
saludos
Harsh Nathani
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)
¡¡¡¡¡Funcionó!!!!!
¡Muchas gracias por su ayuda!
hola @jgm1984 ,
Hapy para ayudar a 🙂
saludos
Harsh Nathani
¿He respondido a tu pregunta? ¡Marca mi puesto como una solución! Apreciar con un Kudos!! (Haga clic en el botón Pulgares arriba)
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 |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
1 | |
1 |