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

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Es necesario completar los espacios en blanco con datos anteriores y mostrar también el total de la columna correcta

Hola a todos,

Estoy buscando sugerencias sobre cómo rellenar valores en blanco con el valor de la última fecha disponible mediante una medida en Power BI. A continuación se muestra una muestra de mis datos:

Fecha Mes Store_ID Product_Code Ventas

01-01-20241A101100
01-02-20242A101
01-03-20243A101400
01-01-20241B102300
01-02-20242B102
01-03-20243B102500

Comportamiento esperado:

  • Para febrero de 2024, Tienda A, Producto 101, si el valor de ventas está en blanco, debe tomar el valor de ventas de enero de 2024 (100).

  • Para marzo de 2024, Tienda B, Producto 102, si el valor de ventas está en blanco, debe tomar el valor de ventas de febrero de 2024 (500).
    Nota:
    La tabla anterior es solo una referencia. En realidad, no tenemos filas durante meses con ventas en blanco en la tabla de hechos. En su lugar, nos basamos en una tabla de Dim_Calendar separada para todas las fechas.
    La tabla de hechos tiene el siguiente aspecto:

    Fecha Mes Store_ID Product_Code Ventas
    01-01-20241Un101100
    01-03-20243Un101400
    01-01-20241B102300
    01-03-20243B102500

    Esta es la medida de DAX que estoy usando actualmente, que logra con éxito el comportamiento de relleno hacia adelante para filas individuales:
    _test mostrar el recuento de acciones =
    VAR a = CALCULAR(
    [_test Recuento de acciones de visualización base],
    CALCULATETABLE(
    LASTNONBLANK('Dim_Calendar'[Fecha], CALCULATE([_test Recuento de acciones de visualización base])),
    DATESBETWEEN(
    'Dim_Calendar'[Fecha],
    MINX(ALL('Dim_Calendar'), 'Dim_Calendar'[Fecha]),
    MAX('Dim_Calendar'[Fecha])
    )
    )
    )
    DEVOLUCIÓN
    IF([_test Recuento de recursos compartidos de visualización base] = BLANK(), a, [_test Recuento de recursos compartidos de visualización base])


    Esta medida funciona bien para rellenar los valores en blanco, pero me enfrento a un problema con los totales de las columnas : no suman correctamente los valores rellenados hacia adelante.

    ¿Alguien podría ayudarme a modificar esta medida para que los totales de las columnas reflejen correctamente los datos rellenados?

    VannurVali_0-1747991710563.png


    ¡Gracias de antemano!

    Saludos
    Vannur Vali

19 REPLIES 19
Syndicate_Admin
Administrator
Administrator

Hola @v-kpoloju-msft, @antfr99 , @Ashish_Excel, @pankajnamekar25,

¡Espero que estés bien!

Gracias por su pronta respuesta y continuo apoyo.


Saludos
D. Vannur Vali

Hola @DVannurVali,

Discúlpate por la demora en la respuesta. Después de revisar minuciosamente los detalles que proporcionó, volví a reproducir el escenario y funcionó de mi parte. Lo utilicé como datos de muestra y lo implementé con éxito.

resultado:

vkpolojumsft_0-1749702819667.png
También incluyo el archivo .pbix para su mejor comprensión, por favor échele un vistazo:

Si esta publicación ayuda, entonces por favor danos 'Felicitaciones' y considera Acéptalo como una solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias por usar el Foro de la comunidad de Microsoft.

Hola @DVannurVali,

¿Puedo preguntarle si ha resuelto este problema? Si es así, marque la respuesta útil y acéptela como la solución. Esto será útil para que otros miembros de la comunidad que tengan problemas similares lo resuelvan más rápido.

Gracias.

Syndicate_Admin
Administrator
Administrator

Hola

Esto funciona bien

S = SUM(Data[Sales])
Last sale = CALCULATE([S],CALCULATETABLE(LASTNONBLANK('Calendar'[Date],CALCULATE([S])),DATESBETWEEN('Calendar'[Date],MINX(ALL('Calendar'),'Calendar'[Date]),MAX('Calendar'[Date]))))

Ashish_Excel_1-1748133066707.png

Syndicate_Admin
Administrator
Administrator

Hola @VannurVali,

Gracias por ponerse en contacto con el foro de la comunidad de Microsoft Fabric. Gracias @Ant_Fri, @pankajnamekar25, por sus aportes sobre este tema.

Después de revisar minuciosamente los detalles que proporcionó, pude reproducir el escenario y funcionó de mi parte. Lo he utilizado como datos de muestra por mi parte y lo he implementado con éxito.

resultado:

vkpolojumsft_0-1748002343953.png

También incluyo el archivo .pbix para su mejor comprensión, por favor échele un vistazo:

Si esta publicación ayuda, entonces por favor danos 'Felicitaciones' y considera Acéptalo como una solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias por usar el Foro de la comunidad de Microsoft.


Hola @VannurVali,

¿Puedo preguntarle si ha resuelto este problema? Si es así, marque la respuesta útil y acéptela como la solución. Esto será útil para que otros miembros de la comunidad que tengan problemas similares lo resuelvan más rápido.

Gracias.

Hola @VannurVali,

Quería comprobar si ha tenido la oportunidad de revisar la información proporcionada. No dude en ponerse en contacto con nosotros si tiene más preguntas. Si mi respuesta ha abordado su consulta, acéptela como una solución y dé un 'Felicitaciones' para que otros miembros puedan encontrarla fácilmente.
Gracias.

Hola @v-kpoloju-msft, no funciona como se esperaba.

Hola @VannurVali,

Después de revisar minuciosamente los detalles que proporcionó, volví a reproducir el escenario y funcionó de mi parte. Lo utilicé como datos de muestra y lo implementé con éxito.

resultado:

vkpolojumsft_0-1748842782029.png


También incluyo el archivo .pbix para su mejor comprensión, por favor échele un vistazo:

Si esta publicación ayuda, entonces por favor danos 'Felicitaciones' y considera Acéptalo como una solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias por usar el Foro de la comunidad de Microsoft.

Hola @VannurVali,

¿Puedo preguntarle si ha resuelto este problema? Si es así, marque la respuesta útil y acéptela como la solución. Esto será útil para que otros miembros de la comunidad que tengan problemas similares lo resuelvan más rápido.

Gracias.

Hola @VannurVali,

Quería comprobar si ha tenido la oportunidad de revisar la información proporcionada. No dude en ponerse en contacto con nosotros si tiene más preguntas. Si mi respuesta ha abordado su consulta, acéptela como una solución y dé un 'Felicitaciones' para que otros miembros puedan encontrarla fácilmente.
Gracias.

Hola @VannurVali,

Espero que esta información sea útil. Por favor, hágamelo saber si tiene más preguntas o si desea discutir esto más a fondo. Si esto responde a su pregunta, acéptelo como una solución y dele un 'Felicitaciones' para que otros puedan encontrarlo fácilmente.
Gracias.

Hola @v-kpoloju-msft, No funciona como se esperaba.

Hola @VannurVali,
Gracias por ponerse en contacto con el foro de la comunidad de Microsoft Fabric.

Después de revisar minuciosamente los detalles que proporcionó, volví a reproducir el escenario y funcionó de mi parte. Lo utilicé como datos de muestra y lo implementé con éxito.

resultado:

vkpolojumsft_0-1748604876992.png

También incluyo el archivo .pbix para su mejor comprensión, por favor échele un vistazo:

Si esta publicación ayuda, entonces por favor danos 'Felicitaciones' y considera Acéptalo como una solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias por usar el Foro de la comunidad de Microsoft.

Syndicate_Admin
Administrator
Administrator

Hola @VannurVali

Sugiero la siguiente medida que funciona con una tabla de hechos y una tabla Dim_Calendar (relación activa en la fecha):

Sales fill Total = 
VAR fillTable =
    ADDCOLUMNS(
        SUMMARIZE(
            FactTable,
            FactTable[Store_ID],
            FactTable[Product_Code],
            'Dim_Calendar'[Date]
        ),
        "fillValue",
        VAR CurrentDate = [Date]
        VAR CurrentStore = [Store_ID]
        VAR CurrentProduct = [Product_Code]
        RETURN
            CALCULATE(
                MAX(FactTable[Sales]),
                FILTER(
                    ALL('Dim_Calendar'),
                    'Dim_Calendar'[Date] <= CurrentDate
                ),
                FactTable[Store_ID] = CurrentStore,
                FactTable[Product_Code] = CurrentProduct
            )
    )

RETURN
    SUMX(fillTable, [fillValue])

Los resultados con la columna total que se muestra son los siguientes:

Fill.png

En la vista de matriz, tendría esto, que creo que es similar a su resumen de escenario:

Matrix 2.png


Arriba creado con la ayuda de la IA.
Espero que esto ayude
Antonio

Hola @Ant_Fri, no funciona como se esperaba.

Hola @VannurVali

Ok, bien notado. Solo para explicar el propósito del código:

VAR fillTable =

Above crea una tabla temporal que almacena todas las combinaciones de tienda, producto y fecha, junto con el valor de ventas "completado" para cada uno.

SUMMARIZE(
    FactTable,
    FactTable[Store_ID],
    FactTable[Product_Code],
    'Dim_Calendar'[Date]
)

Arriba se crea una tabla de todas las combinaciones únicas de Tienda, Producto y Fecha. Esto define la granularidad con la que queremos calcular las ventas completadas. Cada fila representa una tienda, un producto y una fecha específicos.

Mi suposición es que querría series temporales por tienda/producto, no en todas las tiendas/productos.

Si solo resumiera por fecha (por ejemplo) y no según el grupo anterior, posiblemente devolvería resultados incorrectos (posiblemente extrayendo las últimas ventas conocidas de una tienda o producto completamente no relacionado).

"fillValue",
VAR CurrentDate = [Date]
VAR CurrentStore = [Store_ID]
VAR CurrentProduct = [Product_Code]
RETURN

Arriba dice: "En esta fecha, para esta tienda/producto, ¿cuál es el valor de venta más reciente?" y trabaja en estrecha colaboración con abajo.

CALCULATE(
    MAX(FactTable[Sales]),
    FILTER(
        ALL('Dim_Calendar'),
        'Dim_Calendar'[Date] <= CurrentDate
    ),
    FactTable[Store_ID] = CurrentStore,
    FactTable[Product_Code] = CurrentProduct
)

Encima:

-Cambia el contexto para encontrar el valor de ventas más reciente hasta la fecha actual.

-Ignora cualquier filtro en la tabla del calendario (ALL('Dim_Calendar')) para obtener todas las fechas anteriores.

-Filtros FactTable para la tienda y el producto actual.

-Devuelve el valor máximo de ventas hasta ese punto, es decir, el último valor conocido

RETURN
    SUMX(fillTable, [fillValue])

Encima:

-Recorre en iteración todas las filas de fillTable.

-Suma todos los valores de ventas completados.

Esperemos que la explicación anterior aclare la lógica. ¿Puede decirnos por qué el código no funciona? ¿La lógica es incorrecta o hay un mensaje de error en el código?

A continuación se muestra un enlace de la carpeta con los archivos, no dude en revisar.

Carpeta con archivos de muestra

Antonio

Syndicate_Admin
Administrator
Administrator

Hola @VannurVali

pruebe este código DAX

Recuento de acciones de visualización de prueba (con corrección total) =

VAR SelectedDate = MAX('Dim_Calendar'[Date])

DONDE LastNonBlankSales =

CALCULAR(

[_test Recuento de acciones de visualización base],

CALCULATETABLE(

LASTNONBLANK('Dim_Calendar'[Fecha], CALCULATE([_test Recuento de acciones de visualización base])),

DATESBETWEEN(

'Dim_Calendar'[Fecha],

MINX(ALL('Dim_Calendar'), 'Dim_Calendar'[Fecha]),

SelectedDate

)

)

)

DEVOLUCIÓN

SI(

ISINSCOPE('Dim_Calendar'[Fecha]),

SI(

ISBLANK([_test Recuento de acciones de visualización base]),

LastNonBlankSales,

[_test Recuento de acciones de visualización base]

),

CALCULAR(

[_test mostrar el recuento de acciones],

REMOVEFILTERS('Dim_Calendar')

)

)

Gracias
Pankaj Namekar | LinkedIn (en inglés)

Si esta solución ayuda, por favor acéptala y da un aplauso (Me gusta), sería muy apreciado.

Hola @pankajnamekar25 , no funciona como se esperaba.

Helpful resources

Announcements
June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors