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
Syndicate_Admin
Administrator
Administrator

Rellenar los datos que faltan con la última fila rellenada

¡Estoy buscando ayuda!

Tengo una tabla que muestra registros de datos minuto a minuto para máquinas en un entorno de producción. Cada fila debe tener un valor 'RefNo', sin embargo, estoy descubriendo que el último conjunto de registros de datos siempre tiene este valor faltante y, desafortunadamente, no hay forma de que pueda aplicar una corrección en el origen.

Requiero una nueva columna que básicamente contenga la siguiente lógica:

Si el campo 'RefNo' de las filas actuales está en blanco, traiga el último valor registrado en 'RefNo' hasta que el 'Valor' se restablezca a 0. He probado algunas soluciones diferentes, pero mi DAX no está a la altura para que todo funcione.

A continuación se muestra una instantánea de mis datos y esperaría una solución para rellenar las filas 110-124 con 'REF001', después de lo cual comienza una nueva ejecución de producción ('REF002') (sin embargo, también estoy viendo el mismo problema con los registros de datos que no se capturan al comienzo de la ejecución, lo que actualmente no es un problema teniendo en cuenta lo que estoy tratando de lograr).

Lew_14_0-1636716082650.png

¡Cualquier ayuda / orientación sería enormemente apreciada!

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

Hola @Lew_14

Puede crear una columna calculada. Si RefNo está en blanco y el valor > 0, entonces Index else blank().

No estoy seguro de cómo funcionaría eso, Tarun. ¿Podría explicarnos más a fondo? Anteriormente agregué una columna calculada que muestra el RefNo anterior si el RefNo actual está en blanco (usando el Índice, DAX a continuación), pero obviamente eso solo funciona para la última fila poblada +1, mientras que necesito que todas las filas despobladas se completen con el RefNo para esa ejecución en particular.

RefNo (modificado) = si(ISBLANK(«TABLA»[RefNo]),VALOR DE BÚSQUEDA(«TABLA»[RefNo],«TABLA»[Índice],«TABLA»[Índice]-1),«TABLA»[RefNo])
Podría funcionar capturando el índice de la última fila poblada de RefNo para cualquier ejecución dada y luego llevar esa variable a cualquier fila donde el RefNo esté en blanco, sin embargo, no estoy seguro de cómo lo haría.
Muchas gracias

Allí, @Lew_14

Pruebe las columnas calculadas como se muestra a continuación:

Index (amended) = 
VAR a =
    CALCULATE (
        Max ( 'Table'[Index] ), 
        FILTER (
            'Table',
            'Table'[Index] <= EARLIER ( 'Table'[Index] )  
                && 
                'Table'[RefNo] <> BLANK () 
        )
    )  
RETURN
    IF ( ISBLANK ( 'Table'[RefNo] ), a, 'Table'[Index] )
RefNo2 (amended) = 
IF (
    ISBLANK ( 'TABLE'[RefNo] ),
    LOOKUPVALUE ( 'TABLE'[RefNo], 'TABLE'[Index], 'Table'[Index (amended)] ),
    'TABLE'[RefNo]
)

188.png

Saludos
Equipo de soporte de la comunidad _ Eason

Hay @v-easonf-msft,

Gracias por su respuesta, esto funciona perfectamente... ¡casi!

Mencioné que había RefNo en blanco al comienzo de la carrera y esto no fue un problema, sin embargo, parece que estaba equivocado ahora que he impulsado su sugerencia. Una vez que el recuento se restablece a 0, me gustaría que el RefNo permaneciera en blanco (ya que actualmente está trayendo el RefNo anterior y esto está alterando algunas de mis imágenes incorrectamente), sin embargo, sería perfecto si el código pudiera mirar hacia adelante y tomar el próximo RefNo disponible una vez que el recuento de 'Valor' se restablezca a 0 y el RefNo esté en blanco, si eso es posible?

Muchas gracias,

Lewis

Allí, @Lew_14

No estoy completamente seguro de lo que quieres. ¿Es este el resultado que quieres?

194.png

En caso afirmatorio, modifique la fórmula de «Índice (modificado)» como se indica a continuación:

Index (amended) = 
VAR a =
    CALCULATE (
        MAX ( 'Table 2'[Index] ),
        FILTER (
            'Table 2',
            'Table 2'[Index] <= EARLIER ( 'Table 2'[Index] )
                && 'Table 2'[RefNo] <> BLANK ()
        )
    ) 
VAR b =
    CALCULATE (
        MIN ( 'Table 2'[Index] ),
        FILTER (
            'Table 2',
            'Table 2'[Index] >= EARLIER ( 'Table 2'[Index] )
                && 'Table 2'[RefNo] <> BLANK ()
        )
    ) 
RETURN
    IF (
        ISBLANK ( 'Table 2'[RefNo] ),
        IF ( 'Table 2'[Valuew] = 0, b, a ),
        'Table 2'[Index]
    )

Por favor, marque 'Tabla 2' en mi archivo adjunto.

Saludos
Equipo de soporte de la comunidad _ Eason
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Disculpas, ¡es un poco difícil de explicar! Una vez que el valor se restablece a 0, comenzará un nuevo recuento para la siguiente ejecución de producción, sin embargo, el recuento a veces puede subir (a 10, por ejemplo) antes de que se asigne el RefNo. En estos casos necesito el cálculo para mirar hacia adelante y agarrar el siguiente RefNo, pero creo que su sugerencia solo hace esto donde el valor es 0, si estoy en lo correcto.

Estoy luchando para verificar esto ya que recibo un error de que no hay suficiente memoria disponible para agregar la columna de índice modificada. Mi tabla solo tiene 20k filas y alrededor de 10 columnas y tengo 8 GB de RAM disponible, por lo que si hay algo que se te ocurra para hacer que el código sea más eficiente, sería extremadamente útil.

Muchas gracias

En ella, @Lew_14

Lo siento, la pregunta está un poco más allá de mi capacidad. No tengo ni idea de cómo optimizar este código mío 😞.

Creo que puede haber otras ideas más convenientes, pero no lo he pensado en este momento.

Saludos
Equipo de soporte de la comunidad _ Eason

Hola @Lew_14
¿Podría compartir el archivo pbix después de eliminar la información confidencial? Además, por favor comparta el resultado esperado también.

Gracias.

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

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.