Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
hola a todos,
Se me ha encargado desarrollar una página de informe de cuentas por pagar y tengo varios informes de diferentes países. Cada país tiene facturas que se pueden pagar en moneda local, pero en moneda extranjera también como se puede ver en el extracto a continuación.
El área donde necesito ayuda seria es si alguien puede ayudarme a entender
Me han proporcionado una tabla de divisas y creo que debe ser utilizado como una especie de convertidor, pero no estoy muy seguro de cómo usarlo. La tabla de divisas también se adjunta a continuación.
Si alguien puede ayudarme a iniciar este problema de conversión de moneda realmente lo apreciaría. o al menos guiarme sobre dónde o qué debería estar buscando para resolver el problema. cualquier otra información o detalles necesarios por favor hágamelo saber.
Número de factura | Importe de la factura | Código de divisas |
Factura 1 | 254.57 | Aud |
Factura 2 | 608.08 | Aud |
Factura 3 | 6114.84 | Aud |
Factura 4 | 898.03 | Aud |
Factura 5 | 160 | Aud |
Factura 6 | 3953.4 | Aud |
Factura 7 | 4135.42 | Aud |
Factura 8 | 11477.8 | Aud |
Factura 9 | 942.5 | Aud |
Factura 10 | 3605.47 | Eur |
Factura 11 | 18685.84 | Eur |
Factura 12 | 6988.8 | Eur |
Factura 13 | 7474.34 | Eur |
Factura 14 | 32732.2 | Eur |
Factura 15 | 18919.69 | Gbp |
Factura 16 | 964.51 | Gbp |
Factura 17 | 6872.54 | Gbp |
Factura 18 | 126.86 | Myr |
Factura 19 | 27790.35 | Myr |
Factura 20 | 342033.86 | Sgd |
Factura 21 | 3228.91 | Sgd |
Factura 22 | 3228.91 | Sgd |
Factura 23 | 21526.08 | Sgd |
CURRENCY_ID | Valor |
Aed | 0.23364486 |
Afn | 0.011764706 |
todo | 0.007692308 |
Amd | 0.001785714 |
Ang | 0.4784689 |
Aoa | 0.003448276 |
Ars | 0.023809524 |
Aud | 0.632911392 |
Awg | 0.4784689 |
Azn | 0.505050505 |
Bam | 0.511247444 |
Bbd | 0.429184549 |
Bdt | 0.010204082 |
Bgn | 0.511247444 |
Bhd | 2.272727273 |
Bif | 0.000487805 |
Dmo | 0.854700855 |
Bnd | 0.628930818 |
Bob | 0.12345679 |
Brl | 0.222222222 |
Bsd | 0.854700855 |
Btn | 0.0125 |
Bwp | 0.083333333 |
BYN | 0.431034483 |
Bzd | 0.429184549 |
Cad | 0.649350649 |
Fcd | 0.000531915 |
Chf | 0.864304235 |
Clp | 0.001315789 |
Cny | 0.12987013 |
Policía | 0.000290698 |
Crc | 0.001515152 |
Cuc | 0.854700855 |
Cve | 0.009090909 |
Czk | 0.038461538 |
Djf | 0.004830918 |
Dkk | 0.133333333 |
Dop | 0.017241379 |
Dzd | 0.007142857 |
Egp | 0.04784689 |
Ern | 0.057142857 |
Etb | 0.030864198 |
Eur | 1 |
Fjd | 0.409836066 |
Gbp | 1.136363636 |
Gel | 0.34965035 |
Ghs | 0.178571429 |
Gmd | 0.017857143 |
Gnf | 9.5057E-05 |
Gtq | 0.114942529 |
todo | 0.004291845 |
Hkd | 0.10989011 |
Hnl | 0.035842294 |
Hrk | 0.135135135 |
Htg | 0.012987013 |
Huf | 0.003030303 |
Idr | 5.98802E-05 |
Ellos | 0.234741784 |
Inr | 0.0125 |
Iqd | 0.000718907 |
Irr | 1.08696E-05 |
Isk | 0.008130081 |
Jmd | 0.006622517 |
Yodo | 1.207729469 |
Jpy | 0.0078125 |
Quién | 0.008474576 |
KGS | 0.0125 |
Khr | 0.000210526 |
Kmf | 0.002040816 |
Kpw | 0.006666667 |
Krw | 0.000769231 |
Kwd | 2.83286119 |
Kyd | 1.020408163 |
Kzt | 0.002512563 |
Lak | 0.000102354 |
Lbp | 0.000569152 |
Lkr | 0.005405405 |
Lrd | 0.005649718 |
Lsl | 0.0625 |
Sonido | 0.625 |
Enojado | 0.090909091 |
Mdl | 0.05 |
Mga | 0.000253807 |
Mkd | 0.016129032 |
Mmk | 0.000632911 |
Mnt | 0.000348189 |
Fregona | 0.106382979 |
Mru | 0.025 |
Pared | 0.024630542 |
Mvr | 0.055555556 |
MWK | 0.001182033 |
Mxn | 0.043478261 |
Myr | 0.212765957 |
Mzn | 0.014492754 |
Sobre | 0.0625 |
Ngn | 0.002380952 |
Nio | 0.027027027 |
Suficiente | 0.105263158 |
Npr | 0.0078125 |
Nzd | 0.581395349 |
Omr | 2.227171492 |
Pab | 0.854700855 |
Pluma | 0.261780105 |
Pgk | 0.261096606 |
Php | 0.016129032 |
Pkr | 0.007042254 |
Pln | 0.228832952 |
Pyg | 0.000150602 |
Qar | 0.235849057 |
Ron | 0.214592275 |
Rsd | 0.008474576 |
Frotar | 0.01369863 |
Rwf | 0.000980392 |
Sar | 0.228832952 |
Sbd | 0.10989011 |
Scr | 0.063291139 |
Sdg | 0.047619048 |
Sec | 0.096153846 |
Sgd | 0.628930818 |
Sll | 0.000104603 |
Sos | 0.001492537 |
Srd | 0.114942529 |
Ssp | 0.006134969 |
Stn | 0.04 |
Syp | 0.001666667 |
Szl | 0.0625 |
Thb | 0.025641026 |
Tjs | 0.090909091 |
Tmt | 0.25 |
Tnd | 0.328947368 |
Arriba | 0.383141762 |
Tratar | 0.161290323 |
Ttd | 0.126582278 |
Twd | 0.028169014 |
Tzs | 0.000377358 |
Uah | 0.032258065 |
Ugx | 0.000221239 |
Usd | 0.854700855 |
Vete a dormir | 0.027027027 |
Comenzó | 0.000108932 |
VEF | 8.92857E-06 |
VES | 0.01369863 |
Vnd | 3.73134E-05 |
Vuv | 0.007751938 |
Wst | 0.333333333 |
Xaf | 0.00152439 |
Xcd | 0.316455696 |
Xdr | 1.213592233 |
Xof | 0.00152439 |
Xpf | 0.008403361 |
Yer | 0.003424658 |
Zar | 0.0625 |
ZMW | 0.086206897 |
Gracias de antemano.
Suave
Hola @Mous007
Su tabla de divisas es las tasas de conversión de cualquier moneda a EUR por lo que podemos unirla a la tabla de facturas en el ID de moneda y hacer un cálculo como para pasar de la moneda de la factura a EUR.
Invoice Amount EUR = SUMX(Invoices,Invoices[Invoice Amount] * RELATED(Currencies[VALUE]))
Ahora que tenemos el importe en EUROS podemos utilizar una copia de la tabla de divisas para permitir al usuario seleccionar otra tasa de conversión y llevar todas las facturas de EUR a la tasa seleccionada.
Invoice Amount Selected Currency =
VAR _ConversionRate = SELECTEDVALUE('Currencies Disconnected'[VALUE],1)
RETURN DIVIDE([Invoice Amount EUR],_ConversionRate)
En esta medida, si no se realiza ninguna selección o seleccionan varias monedas de "conversión secundaria", dejará el importe en EUR de lo contrario se convertirá a la moneda seleccionada. En mi captura de pantalla a continuación muestro el importe de la factura en la moneda original, EUR y AUD (tengo AUD seleccionado de la tabla desconectada). Puede ver que la primera y la tercera columnas coinciden con las facturas que estaban en AUD para empezar.
Mi archivo de muestra está adjunto para que lo veas.
hola @jdbuchanan71, muchas gracias por su apoyo.
Su solución funciona perfectamente para mi problema de negocio. Una pregunta más, así que a partir de ahora cada vez que estoy tratando de utilizar mis cuentas por pagar / importe de factura en cualquier tipo de cálculo, siempre debo referirme a la medida en la moneda seleccionada ? o crees que lo hago de alguna otra manera ?
Gracias de antemano
Marcaré su puesto como una solución, pero quiero esperar a @Greg_Deckler reposo, ya que quiero probar la solución que proporcionó dos.
Muchas gracias a los dos. diferentes enfoques, pero estoy aprendiendo de ambos.
Puede utilizar [Moneda seleccionada importe factura] y tener el valor predeterminado del informe en EUR. Eso probablemente sería más fácil para sus usuarios.
Hola @jdbuchanan71 , gracias por la aclaración.
Acabo de tener otra pregunta que me vino a la mente mientras trataba de construir mis principales medidas.
Así que basado en mi comprensión en su escenario utilizando esta técnica, si por ejemplo tenía diferentes kpi's o métricas que quiero utilizar en mi modelo como: Importe de la factura (que ya hemos calculado), Importe restante, Importe aprobado, Importe pagado, etc.... , significa que para cada uno de estos i tendrá que crear dos medidas separadas para cada ?
¿Hay algún método que pueda utilizar para optimizar mi cálculo? en lugar de tener varias medidas en mi tabla de medidas ?
Estaba pensando en crear una medida con múltiples varibles como el utilizado por Greg arriba donde básicamente puedo agrupar ambas medidas en una ?
Por favor, hágamelo saber si ese es el mejor enfoque o si tiene alguna otra sugerencia.
Muchas gracias de nuevo.
Hola @Mous007
Usted puede hacerlo todo en 1 paso, acabo de tener dos debido a su solicitud de tener siempre EUR disponible.
Invoice Amount Converted =
VAR _ConversionRate =
SELECTEDVALUE ( 'Currencies Disconnected'[VALUE], 1 )
RETURN
SUMX (
Invoices,
DIVIDE (
Invoices[Invoice Amount] * RELATED ( Currencies[VALUE] ),
_ConversionRate
)
)
Simplemente cambiaría la alimentación de la columna en la medida para cada uno de sus cálculos:
¡Está funcionando! ¡Muchas gracias!
Primero usé la tabla de monedas original y no funcionó porque las líneas se filtraron, pero con la copia desconectada de la tabla de monedas está bien!
Gracias @jdbuchanan71, todavía estoy obteniendo los mismos resultados correctos con EUR y por supuesto cada vez que cambio la moneda de la cortadora desconectada todo está funcionando como se esperaba.
Muchas gracias de nuevo.
Tengo casi este escenario exacto en mi libro, DAX Cookbook. Artesanía tipos de cambio de divisas, Capítulo 5, página 184. El mío podría ser un poco más complicado que el tuyo porque mi escenario tiene el cambio de tipo de cambio con el tiempo.
Va algo así como lo siguiente:
Reporting Amount =
VAR __ReportingCurrency = SELECTEDVALUE('R08_Currencies'[Currency])
VAR __SalesCurrency = MAX('R08_Sales'[Currency])
VAR __SalesDate = MAX('R08_Sales'[Date])
VAR __SalesAmount = SUM('R08_Sales'[Amount])
VAR __ExchangeRateDate =
MAXX(
FILTER(
'R08_Rates',
'R08_Rates'[Date] <= __SalesDate &&
'R08_Rates'[From] = __SalesCurrency &&
'R08_Rates'[To] = __ReportingCurrency
),
'R08_Rates'[Date]
)
VAR __ExchangeRate =
IF(__SalesCurrency = __ReportingCurrency,
1,
MAXX(
FILTER(
'R08_Rates',
'R08_Rates'[Date] = __ExchangeRateDate &&
'R08_Rates'[From] = __SalesCurrency &&
'R08_Rates'[To] = __ReportingCurrency
),
'R08_Rates'[Rate]
)
)
RETURN
__ExchangeRate * __SalesAmount
Hola Greg,
He utilizado el código de abajo que es suyo y he tenido éxito con él en ciertas situaciones, pero no he conseguido lo que necesito y estaba esperando un par de punteros.
Tengo una tabla de ventas que tiene una columna de importe y en esa columna tiene importes para USD, EUR y GBP. También tengo una columna CurrencyID que me dice cuál es la moneda. Necesito convertir esa columna en una sola moneda que será decidida por el Usuario a través de una Cortadora. He utilizado su medida a continuación para hacer eso y funciona brillantemente cuando selecciono Registros de ventas para una moneda única en una sola fecha. Creo que la razón por la que no está funcionando es que la medida selecciona la tasa por MAXX Fecha y moneda y eso no es exactamente lo que necesito, pero no puedo averiguar cómo la iteración debe funcionar correctamente. Cualquier ayuda recibida con mucho placer, disculpas si no debería haberme contactado contigo.
Gracias
Chris
Hola Greg,
Por lo que estás diciendo creo que tienes la solución que necesito. Capturamos los tipos de cambio para un número de países sobre una base diaria y mantenemos el en una tabla. También tenemos una tabla de ventas que tiene una columna Importe que puede estar en un número de monedas, sabemos qué moneda de la columna CurrencyID de la tabla de ventas.
Me gustaría tener una segmentación en un informe donde el usuario puede elegir la moneda de notificación.
¿Tiene una imagen de su modelo que va con el código Dax que puedo echar un vistazo por favor.
Gracias espero que puedas ayudar.
Chris
hI @Greg_Deckler , gracias por tomarse el tiempo para ir a través de mi puesto.
He intentado usar su medida, pero se quedó atascado en la siguiente línea:
'R08_Rates'[De] __SalesCurrency && 'R08_Rates'[A] - __ReportingCurrency
Podría estar equivocado, pero creo que se supone que tengo las tasas de conversión de moneda en mz principal fact invoices tabla ? Porque ahora tengo mi tabla de facturas y tabla de divisas en dos tablas distintas.
Tal vez usted puede ayudarme aún más con esto ?
gracias de antemano
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
1 | |
1 |