Saltar al contenido
Categor铆a: An谩lisis de Datos
2020-03-17

💲 Aprendiendo a Convertir Divisas con Power BI

Cuando trabajamos con multinacionales una de las partes clave de nuestro modelo es la Conversi贸n a diferentes Divisas, ya que, se realizan pagos desde diferentes pa铆ses con diferentes monedas y los usuarios que visualicen los informes deben de poder verlos en la divisa que ellos elijan.

En esta entrada os voy a exponer un ejemplo real que tuvimos que implementar en la soluci贸n de BI de un cliente.

Para empezar os voy a mostrar como quedar铆a el modelo terminado y despu茅s describir茅 una a una cada tabla.

Sales

En nuestro modelo la tabla Sales seria la tabla de hechos. Si exploramos esta tabla podemos observar el identificador de la transacci贸n (IDRowMT), la fecha (dTransDay), el importe (SalesAmount) y el identificador y el nombre de la Divisa de la transacci贸n.

Currency y Dim Date

Estas son dos dimensiones normales pero gracias a ellas vamos a poder relacionar la tabla de conversi贸n de divisas (CurrencyConversion) con las tablas de hechos (Sales). Si necesit谩is mas informaci贸n sobre c贸mo crear una dimensi贸n de tiempo pod茅is encontrarla aqu铆

Currency Conversion

En esta tabla podemos encontrar el Ratio de Cambio diario de monedas como DOP, EUR, USD y COP a USD,  ya que, este ratio var铆a cada d铆a.

Siempre tenemos que elegir una moneda como principal y de ah铆 hacer la conversi贸n a las dem谩s. En este ejemplo utilizamos USD como moneda principal.

Como pod茅is observar en la siguiente imagen, en la primera l铆nea nos indica que para el d铆a 01/01/2019,  1 USD equivale a 50,54502 DOP.

Reporting Currency

Como pod茅is observar a continuaci贸n, esta dimensi贸n es id茅ntica a Currency, pero es la que utilizaremos 煤nicamente cuando queramos visualizar el cambio de moneda, ya que, si utiliz谩ramos la dimensi贸n Currency, esta nos filtrar铆a por las ventas que se hayan hecho con el tipo de moneda.

Una vez tengamos el modelo planteado y entendiendo para que se utiliza cada dimensi贸n, podemos proceder a crear las columnas calculadas y medidas para hacer la conversi贸n a diferentes divisas.

Empezaremos creando la columna calculada Sales Amount $. Esta columna es la que se va a encargar de hacer la conversi贸n de la moneda en la que se haya hecho la transacci贸n a USD. Como pod茅is ver en la primera fila, 3,75 EUR serian 4,13 USD.

Si observ谩is, el c谩lculo es muy sencillo: consiste en dividir el importe de la venta por la tasa de conversi贸n cuando la tasa de conversi贸n sea igual a la fecha de la venta y a la moneda de la venta.

Si quisi茅ramos hacer la conversi贸n de divisas diaria a otra moneda, deber铆amos crear la siguiente columna calculada Sales Amount 鈧, en la cual multiplicamos el importe  Sales Amount $ por la tasa de conversi贸n a EUR como podemos observar en la siguiente imagen.

En nuestro caso, el cliente que nos pidi贸 esta tarea, quer铆a una serie de medidas en las que apareciera su importe por la media del ratio del cambio de divisa dentro de un periodo de tiempo seleccionando y con todas las divisas. Para ello creamos la siguiente medida:

1Rate * Sales Amount $ = AVERAGE ( CurrencyConversion[Rate] )* SUM(Sales[Sales Amount $])

Al entregarle la medida al cliente, nos indic贸 que el total no tenia ning煤n sentido, ya que, el c谩lculo que hacia, era la suma del importe por la media de todas las divisas que ten铆amos en la tabla de Currency Conversion.

Por esta raz贸n, nos vimos en la necesidad de crear una medida que cuando calculara su total, en vez de realizar un SUM, AVG, MAX o MIN hiciera el sumatorio del importe sin multiplicar por el ratio del cambio de divisa. En la imagen anterior, se puede observar el funcionamiento de la medida y en la siguiente, os dejo el c贸digo de la medida:

Pod茅is descargar el .pbix con todas las columnas calculadas, medidas, etc desde el siguiente link.

Si quieres que ayudemos a tu negocio o empresa contacta con nosotros en info@aleson-itc.com o ll谩manos al +34 962 681 242