- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Recuperar el valor anterior, sin sumas u otros agregados
Buenas tardes, tengo una tabla con una serie de registros.
Codigo Fecha Estado
11 | 01/01/2019 | 0 |
12 | 01/01/2019 | 1 |
13 | 05/01/2019 | 1 |
11 | 05/01/2019 | 1 |
14 | 15/01/2019 | 1 |
11 | 20/01/2019 | 2 |
12 | 31/01/2019 | 2 |
13 | 31/01/2019 | 2 |
Con los datos de esta tabla, genero otra, tipo calendario en la que, por Código y Fecha, coloco su estado.
Por ejemplo, para el código 11:
- genero fechas entre el 1 y el 4 de enero con el Estado = 0
- genero fechas entre el 5 y el 19 de enero con el Estado = 1
- genero fechas entre el 20 y el 31 de enero con el Estado = 2
Código | Fecha | Estado |
11 | 01/01/2019 | 0 |
11 | 02/01/2019 | 0 |
11 | 03/01/2019 | 0 |
11 | 04/01/2019 | 0 |
11 | 05/01/2019 | 1 |
11 | 06/01/2019 | 1 |
11 | 07/01/2019 | 1 |
11 | 08/01/2019 | 1 |
11 | 09/01/2019 | 1 |
11 | 10/01/2019 | 1 |
11 | 11/01/2019 | 1 |
11 | 12/01/2019 | 1 |
11 | 13/01/2019 | 1 |
11 | 14/01/2019 | 1 |
11 | 15/01/2019 | 1 |
11 | 16/01/2019 | 1 |
11 | 17/01/2019 | 1 |
11 | 18/01/2019 | 1 |
11 | 19/01/2019 | 1 |
11 | 20/01/2019 | 2 |
11 | 21/01/2019 | 2 |
11 | 22/01/2019 | 2 |
11 | 23/01/2019 | 2 |
11 | 24/01/2019 | 2 |
11 | 25/01/2019 | 2 |
11 | 26/01/2019 | 2 |
11 | 27/01/2019 | 2 |
11 | 28/01/2019 | 2 |
11 | 29/01/2019 | 2 |
11 | 30/01/2019 | 2 |
11 | 31/01/2019 | 2 |
He buscado y buscado y la solución siempre me lleva a utilizar EARLIER pero en los ejemplos siempre utilizan CALCULATE con alguna función de agregado (SUMX, MAXX, etc).
Necesito recuperar el Estado anterior para un Código y Fecha, sin funciones de Agregado, mostrar directamente el valor que tenía en el registro anterior.
Me es urgente, ¿podeis decirme con algún ejemplo cómo he de hacerlo?
Muchas gracias
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @jcgutierro , My file
¡Ay! Mucho trabajo e ir por el camino equivocado. Por lo tanto, se trataba de encontrar la fecha del último espacio en blanco [St_ID] y luego usar eso para encontrar LastNonBlank [St_ID] porque aparentemente el orden en el que la función busca no será como esperamos que sea. Entonces, si usamos una fecha, sabemos cómo va eso. Reduje su conjunto de datos, pero traté de mantenerme fiel a los nombres. Es posible que deba agregar nuevamente en la prueba para el TKID, pero creo que esto lo resuelve.
Por favor hazme saber si tienes preguntas.
Si esto resuelve sus problemas, márquelo como la solución, para que otros puedan encontrarlo fácilmente. Los kudos también son agradables.
Nathaniel
LastNonBlank B = var LastNonBlankDate=CALCULATE(MAX(Cruzado[Fecha]),FILTER(ALL(Cruzado),Cruzado[Fecha]<=EARLIER(Cruzado[Fecha]) && Cruzado[St_ID]<>0)) var LastNonBlankSt_ID = CALCULATE(SUM(Cruzado[St_ID]), FILTER(ALL(Cruzado),Cruzado[Fecha]=LastNonBlankDate) ) return IF(Cruzado[St_ID]>0, Cruzado[St_ID],LastNonBlankSt_ID)
Did I answer your question? Mark my post as a solution!
Proud to be a Super User!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @jcgutierro ,
If you set it up using CALCULATE, it will need MAX on the column name, but that will return the value from just that one line. You could use min and get the same value, as it is only looking at the one row.
If this solves your issues, please mark it as the solution, so that others can find it easily. Kudos are nice too.
Nathaniel
Did I answer your question? Mark my post as a solution!
Proud to be a Super User!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Gracias por tu preocupación.
Te muestro el DAX utilizado y que como verás no funciona bien, a partir del día 7 muestra un valor de 6 en vez de 5 (último valor correspondiente al día 7 )
Alguna solución?
Mil gracias.
---------------------
Columna 2 = var prevKind = CALCULATE(MAXX(Cruzado;Cruzado[St_Id]); FILTER(Cruzado;Cruzado[Tk_Id]=EARLIER(Cruzado[Tk_Id]) && Cruzado[Fecha] <= EARLIER(Cruzado[FechaGenerada];1))) RETURN IF(Cruzado[St_Id]>0;Cruzado[St_Id];prevKind)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @jcgutierro
Todavía no lo he descubierto, pero si cambias MAXX a MINX, obtienes 1, así que eso me dice que no obtendrás el último, obtendrás el más grande. Y si solo dice = en lugar de <= no obtendrá nada porque no tiene nada en esa columna. En ST_ID reemplaza el 1 con un 7 y será más claro
Nathaniel
Did I answer your question? Mark my post as a solution!
Proud to be a Super User!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi @jcgutierro , My file
¡Ay! Mucho trabajo e ir por el camino equivocado. Por lo tanto, se trataba de encontrar la fecha del último espacio en blanco [St_ID] y luego usar eso para encontrar LastNonBlank [St_ID] porque aparentemente el orden en el que la función busca no será como esperamos que sea. Entonces, si usamos una fecha, sabemos cómo va eso. Reduje su conjunto de datos, pero traté de mantenerme fiel a los nombres. Es posible que deba agregar nuevamente en la prueba para el TKID, pero creo que esto lo resuelve.
Por favor hazme saber si tienes preguntas.
Si esto resuelve sus problemas, márquelo como la solución, para que otros puedan encontrarlo fácilmente. Los kudos también son agradables.
Nathaniel
LastNonBlank B = var LastNonBlankDate=CALCULATE(MAX(Cruzado[Fecha]),FILTER(ALL(Cruzado),Cruzado[Fecha]<=EARLIER(Cruzado[Fecha]) && Cruzado[St_ID]<>0)) var LastNonBlankSt_ID = CALCULATE(SUM(Cruzado[St_ID]), FILTER(ALL(Cruzado),Cruzado[Fecha]=LastNonBlankDate) ) return IF(Cruzado[St_ID]>0, Cruzado[St_ID],LastNonBlankSt_ID)
Did I answer your question? Mark my post as a solution!
Proud to be a Super User!
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Muchas gracias Nathaniel_C, funciona tal y como esperaba.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Aún trabajando en esto, mirar LASTNONBLANK () puede funcionar, ya que lo que está buscando no es el número máximo antes de este, sino el último valor en la columna ST_ID antes del primer espacio en blanco entre la celda que está mirando hacia arriba. ¿Si eso tiene algún sentido?
Avísame si vienes con algo.
Nathaniel
Did I answer your question? Mark my post as a solution!
Proud to be a Super User!

Helpful resources
Join us at the Microsoft Fabric Community Conference
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Power BI Monthly Update - February 2025
Check out the February 2025 Power BI update to learn about new features.

User | Count |
---|---|
24 | |
13 | |
11 | |
10 | |
9 |
User | Count |
---|---|
18 | |
14 | |
13 | |
12 | |
10 |