Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
Hola a todos,
Estoy trabajando en un proyecto de Power BI y tengo una extensa tabla de datos que contiene información sobre documentos de ingeniería. Cada documento tiene varias revisiones, y me gustaría crear una tabla que muestre no solo las últimas revisiones de cada documento, sino también la primera aparición cuando aparece un documento con una revisión específica. Hay un detalle importante a tener en cuenta: con cada envío de la lista de documentos, los registros se repiten, por lo que es esencial devolver no solo la revisión más alta, sino también la primera vez que el documento aparece con una revisión en particular.
He probado algunos enfoques utilizando medidas y columnas calculadas, pero no he podido lograr el resultado deseado.
Aquí están los detalles de mi tabla:
En el ejemplo anterior, me gustaría que me devolvieran solo la información de la última fila
¿Alguien podría guiarme sobre cómo realizar esta tarea en Power BI? ¿Qué fórmula de DAX debo usar o qué pasos debo seguir en Power Query para lograr este objetivo?
Cualquier ayuda o sugerencia será muy apreciada. ¡Gracias de antemano!
Creé un archivo pbix de muestra (vea el archivo adjunto), verifique si eso es lo que desea.
1. Cree una medida como se muestra a continuación
Flag =
VAR _seldate =
SELECTEDVALUE ( 'f_LDs'[Dt. LD] )
VAR _rev =
SELECTEDVALUE ( 'f_LDs'[Revisão] )
VAR _doc =
SELECTEDVALUE ( 'f_LDs'[Nº Alunorte] )
VAR _maxdate =
CALCULATE (
MAX ( 'f_LDs'[Dt. LD] ),
FILTER ( ALLSELECTED ( 'f_LDs' ), 'f_LDs'[Nº Alunorte] = _doc )
)
VAR _predate =
CALCULATE (
MAX ( 'f_LDs'[Dt. LD] ),
FILTER (
ALLSELECTED ( 'f_LDs' ),
'f_LDs'[Nº Alunorte] = _doc
&& 'f_LDs'[Dt. LD] < _maxdate
&& NOT ( ISBLANK ( 'f_LDs'[Dt. LD] ) )
)
)
RETURN
IF ( _seldate IN { _predate, _maxdate }, 1, 0 )
O bien, cree una columna calculada:
Column =
VAR _maxdate =
CALCULATE (
MAX ( 'f_LDs'[Dt. LD] ),
FILTER ( 'f_LDs', 'f_LDs'[Nº Alunorte] = EARLIER ( 'f_LDs'[Nº Alunorte] ) )
)
VAR _predate =
CALCULATE (
MAX ( 'f_LDs'[Dt. LD] ),
FILTER (
'f_LDs',
'f_LDs'[Nº Alunorte] = EARLIER ( 'f_LDs'[Nº Alunorte] )
&& 'f_LDs'[Dt. LD] < _maxdate
&& NOT ( ISBLANK ( 'f_LDs'[Dt. LD] ) )
)
)
RETURN
IF ( 'f_LDs'[Dt. LD] IN { _predate, _maxdate }, 1, 0 )
2. Cree un objeto visual de tabla y aplique el filtro de nivel visual con la condición (Flag is 1)
Saludos