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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Combinar datos en una tabla con varias fechas

Hola

Estoy teniendo algunos problemas con la creación de una tabla basada en 2 fechas y 2 volúmenes, y me pregunto si alguien podría ayudar, por favor.

Las tablas (abajo) de forma aislada son las que quiero fusionar en una tabla y como puede ver, hay 2 fechas (tablas = Mort y Comp) y 2 volúmenes (tablas = Mort y Comp).

Brandon16_0-1634660687137.png

Basado en las 2 tablas anteriores, así es como quiero que mi tabla se genere, como puede ver, solo tengo una variable "año".

Brandon16_1-1634661665709.png

Si construyo la tabla y uso Mort_Year, los números Mort_Vol son correctos, pero el Comp_Vol no lo es (y viceversa si usé Comp_Date)

No estaba seguro de si necesito concatenar estas 2 fechas (no sabría cómo), o si hay algún lugar donde pueda poner estas 2 fechas dentro de la tabla para que muestre cómo lo necesito también.

Cualquier ayuda en esto sería muy apreciada.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@Brandon16 puedes hacer esto

daxDerivedTbl =
Table
    = ADDCOLUMNS (
        ADDCOLUMNS (
            DISTINCT (
                UNION (
                    SELECTCOLUMNS (
                        VALUES ( table1[Mort_year] ),
                        "Generic Year", table1[Mort_year]
                    ),
                    SELECTCOLUMNS (
                        VALUES ( table2[Comp_Year] ),
                        "Generic Year", table2[Comp_Year]
                    )
                )
            ),
            "Mort_vol",
                SUMX (
                    FILTER ( table1, table1[Mort_year] = EARLIER ( [Generic Year] ) ),
                    table1[Mort_vol]
                )
        ),
        "Comp_vol",
            SUMX (
                FILTER ( table2, table2[Comp_Year] = EARLIER ( [Generic Year] ) ),
                table2[Comp_Vol]
            )
    )

View solution in original post

8 REPLIES 8
Syndicate_Admin
Administrator
Administrator

@Brandon16 si sigues el pbix, verás que funciona según lo previsto. por favor, adáptalo a tu escenario. No tengo ese error en mi desrivedTbl y el dat ais basado en lo que proporcionaste.

Gracias @smpa01 que ha funcionado. Sin embargo, tengo algunas preguntas sobre esto, si quisiera agregar más filtros a esta lógica, tales como:
comp[Comp_Type] y añadir en otra tabla, Business_Area[Área]

¿Cómo haría esto, por favor? Feliz de comenzar un nuevo hilo si esa es la mejor práctica

@Brandon16 por favor cree un nuevo hilo, etiquéteme en la pregunta y, lo más importante, proporcione datos de muestra y la salida deseada en un formato de tabla allí y no como imagen.

Syndicate_Admin
Administrator
Administrator

Cree una tabla para el año (generalmente necesitamos tener una tabla de fecha, pero aquí asumo que tiene los datos a nivel de año), que debe contener los valores únicos de los años. Defina de 1 a muchas relaciones de la tabla de este año a las tablas de Mort & Comp.

Extraiga el año de la tabla Año, los campos Vol de la tabla correspondiente, debería funcionar.

Si lo desea, puede crear una segmentación de datos basada en este campo Año (de la tabla de años).

Gracias
Raj

He intentado hacer esto, así que ahora tengo una tabla llamada 'Year_Table' con la variable 'Año'.

Sin embargo, me he unido a esta tabla 1 a muchos desde (Year_table [Año] hasta MORT [Mort_Year], lo cual está bien. Sin embargo, luego intenté unirme (Year_table [Año] a COMP [Comp_Year] pero no me lo dejó debido al siguiente mensaje:

"Ya existe un conjunto activo de relaciones indirectas entre estas tablas. Para activar esta relación, establezca el filtro cruzado en "Único", elimine o desactive primero cualquier relación indirecta.

¿Alguna idea de cómo evitar esto, por favor?

¿Puede publicar una representación del modelo (tablas relevantes), por favor?

Syndicate_Admin
Administrator
Administrator

@Brandon16 puedes hacer esto

daxDerivedTbl =
Table
    = ADDCOLUMNS (
        ADDCOLUMNS (
            DISTINCT (
                UNION (
                    SELECTCOLUMNS (
                        VALUES ( table1[Mort_year] ),
                        "Generic Year", table1[Mort_year]
                    ),
                    SELECTCOLUMNS (
                        VALUES ( table2[Comp_Year] ),
                        "Generic Year", table2[Comp_Year]
                    )
                )
            ),
            "Mort_vol",
                SUMX (
                    FILTER ( table1, table1[Mort_year] = EARLIER ( [Generic Year] ) ),
                    table1[Mort_vol]
                )
        ),
        "Comp_vol",
            SUMX (
                FILTER ( table2, table2[Comp_Year] = EARLIER ( [Generic Year] ) ),
                table2[Comp_Vol]
            )
    )

gracias por su sugerencia, acabo de probar esto pero errores:

Se pasaron demasiados argumentos a la función FILTER. El número máximo de argumentos para la función es 2.

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

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