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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Syndicate_Admin
Administrator
Administrator

Suma de devolución de datos numéricos para cada contraparte y sus varias monedas con filtros de fecha

Hola a todos,

Necesito tu ayuda con respecto a Power BI porque soy bastante nuevo en ello. Estoy luchando para calcular y mostrar lo que quiero.

He importado mi tabla de una base de datos que tiene este aspecto:

Screenshot 2021-04-10 at 22.04.30.png

Lo que quiero es calcular la suma del Nominal para cada Contraparte y cada Moneda, PERO debe respetar la condición: fecha de inicio <= fecha en la tabla de fechas & fecha de finalización > fecha en la tabla de fechas que creé en Power PivotPower Pivot.

Screenshot 2021-04-10 at 22.04.40.png

Al final, quiero mostrar el resultado al igual que la siguiente imagen, una tabla dinámica (por ejemplo, si hace clic en EUR, mostrará todos los datos EUR)

Screenshot 2021-04-10 at 22.04.35.png

Además, después de calcular la suma del nominal, necesito calcular la diferencia entre las dos fechas y la variación del % de la misma.

De mi lado, pude obtener la suma que quiero, pero el problema es que creé columnas calculadas para cada contraparte y moneda como 'AZE EUR', 'AZE USD', en la tabla Fecha.

Al hacer esto, no puedo crear un gráfico circular más adelante que defina el % de EUR o USD propiedad de contrapartes AZE y HUB. Así que no hay gráfico dinámico.

Espero haber sido lo suficientemente claro. Si no hágamelo saber 🙂

Gracias de antemano por toda su ayuda.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hola, @Merry3010

Debe crear otra tabla:

Bridge Table = 
GENERATE (
    CALENDAR ( DATE ( 2021, 01, 01 ), DATE ( 2021, 12, 31 ) ),
    SELECTCOLUMNS (
        'Trade Table',
        "Counterparty", 'Trade Table'[Counterparty],"Currency",'Trade Table'[Currency],"Counterparty_Currency",'Trade Table'[Counterparty_Currency]
    )
)

medir:

Sum of Nominal = 
VAR _currentdate =
    SELECTEDVALUE ( 'Bridge Table'[Date] )
RETURN
    SUMX (
        FILTER (
            'Trade Table',
            _currentdate >= 'Trade Table'[Start date]
                && _currentdate < 'Trade Table'[End date]
        ),
        'Trade Table'[Nominal]
    ) + 0

resultado:

77.png

Por favor, compruebe mi archivo pbix adjunto para obtener más detalles.

Si no cumple con sus requisitos, por favor hágamelo saber.

Saludos
Equipo de apoyo a la comunidad _ Eason
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

11 REPLIES 11
Syndicate_Admin
Administrator
Administrator

Hola, @Merry3010

Debe crear otra tabla:

Bridge Table = 
GENERATE (
    CALENDAR ( DATE ( 2021, 01, 01 ), DATE ( 2021, 12, 31 ) ),
    SELECTCOLUMNS (
        'Trade Table',
        "Counterparty", 'Trade Table'[Counterparty],"Currency",'Trade Table'[Currency],"Counterparty_Currency",'Trade Table'[Counterparty_Currency]
    )
)

medir:

Sum of Nominal = 
VAR _currentdate =
    SELECTEDVALUE ( 'Bridge Table'[Date] )
RETURN
    SUMX (
        FILTER (
            'Trade Table',
            _currentdate >= 'Trade Table'[Start date]
                && _currentdate < 'Trade Table'[End date]
        ),
        'Trade Table'[Nominal]
    ) + 0

resultado:

77.png

Por favor, compruebe mi archivo pbix adjunto para obtener más detalles.

Si no cumple con sus requisitos, por favor hágamelo saber.

Saludos
Equipo de apoyo a la comunidad _ Eason
Si este post ayuda, entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Allí @v-easonf-msft ,

Tengo un problema para crear una relación de "muchos a muchos" entre tablas. Sólo puedo hacer "muchos a uno". Así que creé una tabla que toma valores únicos (AZE-EUR, AZE-USD, HUB-EUR, HUB-USD) que conecta la "Tabla de operaciones" y la "tabla puente" y creé las medidas "suma nominal" pero no obtenía la suma correcta. Así que lo intenté como una columna calculada en la "tabla de bridge". Todavía no obtenía la cantidad correcta.

En el trabajo, no tenemos la posibilidad de descargar la última versión de powerbi (no sé, si está relacionado con la versión power bi)

Allí, @Merry3010

La "Tabla puente" se crea para reemplazar la "Tabla comercial" original para crear una relación de "varios a muchos".

¿Ha comprobado si los campos de su objeto visual de matriz son todos de la "tabla de puente" en lugar de la "tabla de comercio"?

15.png

Para evitar que falte información importante, comparta su archivo pbix de ejemplo actual para realizar pruebas.

Saludos
Equipo de apoyo a la comunidad _ Eason

Hola, hice algunas modificaciones con su solución, y ahora funciona.

Gracias por su ayuda

Hola, Gracias por su rápida respuesta.

No se me permite mostrar una muestra de mis datos, pero crearé uno nuevo con el mismo tipo de datos para las pruebas.

Lo que estoy luchando es crear la cardinalidad entre la tabla de bridge y la mesa de comercio porque, en la tabla de bridge no tengo valores únicos en la columna counterparty_currency. (Esta es la razón por la que no puedo crear una relación entre 'muchos a muchos')

176234604_336363804749329_1759953190572623262_n.jpg

Allí @v-easonf-msft ,

Lo siento por la respuesta tardía! Muchas gracias por su ayuda.

Voy a probar mis datos y hacerle saber si funciona o no. 🙂

Syndicate_Admin
Administrator
Administrator

// Assuming the model is correct
// which means the date table is
// DISCONNECTED from the fact table.
// Additionally, assuming that start
// and end date are always present,
// meaning there are no blanks.

[Your Measure] =
// This will work with any
// period of time selected from
// the date table, not only for
// one day. Please understand
// the logic of the measure to
// know what it does.
var MinDateSelected = MIN( 'Date Table'[Date] )
var MaxDateSelected = MAX( 'Date Table'[Date] )
// By the way, Currency and Counterparty should
// be a separate dimension in a proper model.
// They should not be sourced from the fact table.
// All columns in a fact table should be hidden
// since slicing can only be done via dimensions.
// If you deviate from this proper design,
// you may have problems (and sooner or later you
// certainly will).
var IsOneCurrencyVisible = HASONEFILTER( 'Trade Table'[Currency] )
var Result =
    if( IsOneCurrencyVisible,
        SUMX(
            'Trade Table',
            var vNominal = 'Trade Table'[Nominal]
            var vStartDate = 'Trade Table'[Start Date]
            var vEndDate = 'Trade Table'[End Date]
            return
                vNominal
                * (
                    vStartDate <= MinDateSelected
                    &&
                    MaxDateSelected < vEndDate
                )
        )
    )
return
    Result

Hola Daxer,

Gracias por su respuesta. Sin embargo, la medida no da ninguna salida. Sólo tengo 0 en todas partes.

También he seguido su consejo sobre el corte de mi contraparte &datos de divisas de la tabla de hechos en una dimensión separada, basado en su id de comercio.

NB: La tabla de fechas no está conectada a ninguna tabla & En mi tabla real, todos los nominales son diferentes. En la tabla que mostré arriba escribí '100' en todas partes como nominal para hacerlo simple

@Merry3010

Si ha cambiado el modelo, tiene que cambiar la medida en consecuencia, por supuesto.

Hola Daxer,

Lo he probado en mi modelo inicial y no funcionó, así que probé mi nuevo modelo con contraparte y moneda separadas mientras cambiaba el measurer en consecuencia. Y no funcionó.

Allí, @Merry3010

¿Resolviste tu problema?

Si no es así, comparta su archivo pbix de ejemplo para realizar pruebas. Esto nos ayudará mejor a entender el problema de las rimas.

Saludos
Equipo de apoyo a la comunidad _ Eason

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors