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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
MrKrukauskas
Helper I
Helper I

Conversión de moneda con medida en lugar de columnas calculadas

Hey PBI Community, tienes una pregunta sobre las conversiones de divisas.

El modelo de datos actual utiliza columnas calculadas para convertir moneda. El problema con eso, es que aumenta el modelo 6 veces ya que hay 6 monedas (imagen abajo). En este ejemplo, el valor "Target" de "Svenks krona" se convierte a otras 6 monedas mediante el uso de "Tipo de cambio". Esto se hace fácilmente mediante el uso de una medida de SUMX (tabla, objetivo * tipo de cambio) y, a continuación, el filtrado por "Convertir a" segmentación.

MrKrukauskas_0-1602221896402.png

Me gustaría evitar el aumento x6 del modelo de datos y simplemente convertir el valor "Objetivo" mediante la tabla "Intercambio de divisas".

Sólo una moneda entrante sin valores "Convertir a" que expanden la tabla x6.

MrKrukauskas_1-1602222296523.png

Tabla "Conversión de moneda"

MrKrukauskas_2-1602222322793.png

Los problemas:

  • La única manera de establecer una relación (* a 1) entre estas tablas, si expando la primera tabla agregando los valores "Currency To", y eso expandirá la tabla x6.
  • Los valores de "Temporada" se agrupan en "Año fiscal" y algunos "Año fiscal", pueden tener varias "Temporadas", es decir, múltiples tasas de conversión para monedas:
    MrKrukauskas_3-1602222828353.png
  • He usado RELACIONADO, pero eso necesita una relación

Estoy atascado en pensar en cómo crear una medida, que multiplica el valor "Target" por "Rate" para la "temporada" especificada y donde no debería usar un filtro para seleccionar una "Temporada", de modo que no aparezca el measage de errores - "Se proporcionó una tabla de múltiples valores donde se esperaba un solo valor" - no aparecería.


Esencialmente, me gustaría que la medida calculara como el siguiente ejemplo:

1.PNG

¡Agradezco cualquier ayuda a la gente!

- Eric

1 ACCEPTED SOLUTION
v-eqin-msft
Community Support
Community Support

Hola @MrKrukauskas ,

Según mi opinión, desea calcular la tasa de destino * basado en CurrencyTo seleccionado en Slicer , ¿verdad?
Puede usar la siguiente fórmula:

matchedRate =
VAR _sele =
    SELECTEDVALUE ( 'Currency conversion2'[CurrencyTo] )
RETURN
    CALCULATE (
        MAX ( 'Currency conversion2'[Rate] ),
        FILTER (
            'Currency conversion2',
            'Currency conversion2'[CurrencyTo] = _sele
                && 'Currency conversion2'[Season] = MAX ( 'Table A2'[Season] )
        )
    )
Measure value =
SUMX ( 'Table A2', [matchedRate] * MAX ( 'Table A2'[Target] ) )

10.14.currency.gif

Aquí está mi archivo pbix.

¿He respondido a tu pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no es así, comparta su archivo pbix y describa la salida esperada.

Saludos
Eyelyn Qin

View solution in original post

5 REPLIES 5
v-eqin-msft
Community Support
Community Support

Hola @MrKrukauskas ,

Según mi opinión, desea calcular la tasa de destino * basado en CurrencyTo seleccionado en Slicer , ¿verdad?
Puede usar la siguiente fórmula:

matchedRate =
VAR _sele =
    SELECTEDVALUE ( 'Currency conversion2'[CurrencyTo] )
RETURN
    CALCULATE (
        MAX ( 'Currency conversion2'[Rate] ),
        FILTER (
            'Currency conversion2',
            'Currency conversion2'[CurrencyTo] = _sele
                && 'Currency conversion2'[Season] = MAX ( 'Table A2'[Season] )
        )
    )
Measure value =
SUMX ( 'Table A2', [matchedRate] * MAX ( 'Table A2'[Target] ) )

10.14.currency.gif

Aquí está mi archivo pbix.

¿He respondido a tu pregunta? Por favor, marque mi respuesta como solución. Muchas gracias.
Si no es así, comparta su archivo pbix y describa la salida esperada.

Saludos
Eyelyn Qin

@v-eqin-msft Thank You for your solution. It worked with minor adjustments. 
Appreciate the help! 

 

matchedRate = 
      var _sele = SELECTEDVALUE('91 Currency Rates'[Currency To]) 
      return CALCULATE( 
          MAX('91 Currency Rates'[Rate]), 
          FILTER('91 Currency Rates','91 Currency Rates'[Currency To] = _sele
          ) 
      )

 

 

 

Measure value = SUMX('Table A2',[matchedRate]*('Table A2'[Target])) 

 

VijayP
Community Champion
Community Champion

@MrKrukauskas

¿Ha probado la función SWITCH?




Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
MY Blog || My YouTube Channel || Connect with me on Linkedin || My Latest Data Story - Ageing Analysis

Proud to be a Super User!


@VijayP ¿Cómo o en qué lugar podría usarlo?

-¡Gracias!

@MrKrukauskas

SWITCH(TRUE,
Condición 1, Resultado 1, Condción 2, Resultado 2, Resultado 3)

de esa manera puede llevar sus tasas de Exchnage a la columna de datos (Columna calculada)




Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
MY Blog || My YouTube Channel || Connect with me on Linkedin || My Latest Data Story - Ageing Analysis

Proud to be a Super User!


Helpful resources

Announcements
March Fabric Community Update

Fabric Community Update - March 2024

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

Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.

Top Solution Authors