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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
kingkike
Frequent Visitor

Mostrar el valor en una columna que coincida con la máxima fecha

Buenas

necesito mostrar en la columna ultimo estado incidencia, el valor que coincida con el campo última hora

 

En la tabla he marcado en amarillo el problema que tengo, el cálculo de la última hora está correcto, pero cuando busco con MAX, en la otra columna, al ser texto, no lo debe hacer bien

He puesto una tabla con el problema que tengo, la incidencia INFORM/00056 tiene dos registros uno del 19/09/2023 como anulada y otro del 14/09/2023, quiero mostrar en la columna ultimo estado de incidencia, el estado que coincida con la máxima fecha, pero no me funciona, para este ejemplo debería poner anulada que es la máxima fecha (19/09/2023), no se porque muestra cerrada, que incluso esa incidencia no tiene ese estado

 

kingkike_1-1695794428876.png

la columna de ultima hora tiene esta formula

 

ultima hora = CALCULATE (MAX ( 'InformeSAR'[Fecha de ejecución] ),FILTER ( 'InformeSAR', [Incidencias] = EARLIER ( 'InformeSAR'[Incidencias] )))
 
la de último estado incidencia
 
Ultimo estado incidencia = CALCULATE (
    max( 'InformeSAR'[Estado Incidencias]),
    FILTER ( 'InformeSAR', [Fecha de ejecución] = earlier( InformeSAR[ultima hora] ) )
)
 
Muchas gracias.
Saludos

 

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Veo que has actualizado la fórmula, pero todavía no está produciendo los resultados deseados. Si desea mostrar el estado del incidente que coincide con la fecha máxima para cada incidente, debe utilizar un enfoque diferente. Puede lograr esto mediante una combinación de funciones SUMMARIZE, ADDPILLARS y EARLY . Aquí está la fórmula revisada:

Estado de la última incidencia =
VAR MaxDate = MAXX(
FILTER('InformeSAR', 'InformeSAR'[Incidentes] = ANTES('InformeSAR'[Incidentes])),
'InformeSAR'[Fecha de aplicación]
)
DEVOLUCIÓN
MAXX(
FILTER('InformeSAR', 'InformeSAR'[Fecha de implementación] = MaxDate),
'InformeSAR'[Estado del incidente]
)

Esta fórmula calcula primero la fecha máxima (MaxDate) para el incidente actual filtrando la tabla en función del incidente actual utilizando EARLY. A continuación, encuentra el estado del incidente que corresponde a la fecha máxima para ese incidente específico.

Esto debería darle el estado correcto del incidente para cada incidente en función de la fecha máxima.

Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

kingkike
Frequent Visitor

alguien puede ayudarme por favor?

Syndicate_Admin
Administrator
Administrator

Veo el problema al que se enfrenta, y tiene razón en que usar MAX con campos de texto puede no darle el resultado deseado. En su caso, desea mostrar el estado del incidente que coincida con la fecha máxima, no con el estado máximo del incidente.

Puede lograr esto mediante la siguiente fórmula de DAX para la columna "Estado de la última incidencia":

Estado de la última incidencia =
VAR MaxDate = MAX('InformeSAR'[Fecha de implementación])
DEVOLUCIÓN
CALCULAR(
MAX('InformeSAR'[Estado del incidente]),
FILTER('InformeSAR', 'InformeSAR'[Fecha de implementación] = MaxDate)
)

Esta fórmula calcula la fecha máxima en la columna "Fecha de implementación" y la almacena en la variable MaxDate. Luego, utiliza la función CALCULATE con la función FILTER para encontrar el estado máximo del incidente para las filas donde la "Fecha de implementación" coincide con MaxDate. Esto debería darle el estado del incidente que corresponde a la fecha máxima.

Asegúrese de reemplazar la fórmula existente en la columna "Estado de la última incidencia" con la fórmula anterior, y debe mostrar el estado correcto del incidente que coincida con la fecha máxima.

kingkike
Frequent Visitor

No funciona, he cambiado la formula y ahora muestra lo siguiente:

 

kingkike_0-1695795617317.png

Todas las pone como DETECTADA, creo que max con campos de texto no funciona, realmente el calculo sería poner el valor que coincida, no el max

Syndicate_Admin
Administrator
Administrator

Parece que está trabajando con Power BI e intentando mostrar el valor en una columna que coincide con la fecha máxima de otra columna. En su caso, desea mostrar la columna Estado del último incidente, que debe mostrar el estado que corresponde a la fecha máxima en la columna Fecha de implementación para cada incidente. Sin embargo, las fórmulas actuales de DAX no producen los resultados deseados.

Para lograr su objetivo, puede usar la siguiente fórmula de DAX para la columna Estado del último incidente:

Estado del último incidente =
VAR MaxDate = MAX('InformeSAR'[Fecha de implementación])
DEVOLUCIÓN
CALCULAR(
MAX('InformeSAR'[Estado del incidente]),
FILTER('InformeSAR', 'InformeSAR'[Fecha de implementación] = MaxDate)
)

Así es como funciona esta fórmula:

  1. Definimos una variable MaxDate que calcula la fecha máxima de la columna Fecha de implementación para cada fila.

  2. A continuación, utilizamos la función CALCULATE para encontrar el estado máximo del incidente para las filas donde la fecha de implementación coincide con MaxDate calculado en el paso 1.

Esta fórmula debería proporcionarle el estado correcto del último incidente para cada incidente en función de la fecha máxima. Reemplace la fórmula existente de estado del último incidente con esta en Power BI y debería funcionar como se esperaba.

no funciona

Helpful resources

Announcements
PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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