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 Equipo,
Espero que todos estén haciendo el bien!!
Tengo el requisito de que necesito mostrar los tipos de cambio para todas las monedas frente a las fechas en una tabla de calendario donde el día es viernes o un fin de mes.
Permítanme explicárselo con datos de muestra y resultados esperados.
Tabla 1 : Tasa
FromCurrency | EffectiveDate | ExchangeRate |
Aed | 3/15/2020 | 0.27225 |
Aed | 3/16/2020 | 0.27223 |
Aed | 3/17/2020 | 0.27225 |
Aed | 3/18/2020 | 0.27225 |
Aed | 3/19/2020 | 0.27223 |
ZTWD | 3/15/2020 | 0.03314 |
ZTWD | 3/16/2020 | 0.03315 |
ZTWD | 3/17/2020 | 0.03309 |
ZTWD | 3/18/2020 | 0.03315 |
ZTWD | 3/19/2020 | 0.03314 |
ZTWD | 3/20/2020 | 0.03314 |
Tabla 2 : Calendario
Fecha | WeekNumber | WeekFillup | FlagInfo |
3/15/2020 0:00 | 12 | 03/13/2020 | 0 |
3/16/2020 0:00 | 12 | 03/20/2020 | 0 |
3/17/2020 0:00 | 12 | 03/20/2020 | 0 |
3/18/2020 0:00 | 12 | 03/20/2020 | 0 |
3/19/2020 0:00 | 12 | 03/20/2020 | 0 |
3/20/2020 0:00 | 12 | 03/20/2020 | 1 |
3/21/2020 0:00 | 12 | 03/20/2020 | 0 |
Requisito:
Quiero tener una tabla con las siguientes columnas:
Fecha | EffectiveDate | FromCurrency | WeekNumber | WeekFillup | FlagInfo | Tasa |
Pero la tasa debe ser el valor de la tabla Rate donde WeekFillup es EffectiveDate.
Para esto fusioné las dos tablas seleccionando las columnas anteriores para unirse y obtuve el 50% del requisito.
Ahora supongamos que, debido a un día festivo en EAU no hubo ninguna entrada en la tabla de tasas para 03/20/2020 que es un viernes con el valor FlagInfo como 1 (FlagInfo valor es una columna que tiene un valor 1 cuando el día es un viernes o mes día de fin de año de lo contrario es 0).
Pero en la tabla de salida frente a la columna Date que tiene el valor 03/20/2020, queremos que la columna Tasa tenga un valor de fecha anterior (03/19/2020) de la tabla Tasa. Esto es algo donde estoy atascado. Entiendo que es posible que necesite usar la función CROSSJOIN pero no puedo aplicarla.
La salida esperada es la siguiente donde los valores en negrita son realmente la tasa para 03/19/2020 ya que faltaba el registro para el 20 de marzo para AED, pero funcionó como se esperaba para ZTWD, ya que no faltaba entrada para el 20 de marzo.
Fecha | EffectiveDate | FromCurrency | WeekNumber | WeekFillup | FlagInfo | Tasa |
3/15/2020 | 3/15/2020 | Aed | 12 | 3/13/2020 | 0 | 0.27225 |
3/16/2020 | 3/16/2020 | Aed | 12 | 3/20/2020 | 0 | 0.27223 |
3/17/2020 | 3/17/2020 | Aed | 12 | 3/20/2020 | 0 | 0.27223 |
3/18/2020 | 3/18/2020 | Aed | 12 | 3/20/2020 | 0 | 0.27223 |
3/19/2020 | 3/19/2020 | Aed | 12 | 3/20/2020 | 0 | 0.27223 |
3/20/2020 | 3/20/2020 | Aed | 12 | 3/20/2020 | 1 | 0.27223 |
3/15/2020 | 3/15/2020 | ZTWD | 12 | 3/13/2020 | 0 | 0.03314 |
3/16/2020 | 3/16/2020 | ZTWD | 12 | 3/20/2020 | 0 | 0.03314 |
3/17/2020 | 3/17/2020 | ZTWD | 12 | 3/20/2020 | 0 | 0.03314 |
3/18/2020 | 3/18/2020 | ZTWD | 12 | 3/20/2020 | 0 | 0.03314 |
3/19/2020 | 3/19/2020 | ZTWD | 12 | 3/20/2020 | 0 | 0.03314 |
3/20/2020 | 3/20/2020 | ZTWD | 12 | 3/20/2020 | 1 | 0.03314 |
Espero poder explicarlo correctamente. Si en caso de que se requiere más información, hágamelo saber.
Gracias
O
Hola @Ani26 ,
Podemos crear una tabla para satisfacer sus necesidades.
Table =
ADDCOLUMNS (
CROSSJOIN ( DISTINCT ( 'Rate'[FromCurrency] ), 'Calendar' ),
"EffectiveDate", [Date],
"Rate",
VAR result =
CALCULATE (
SUM ( 'Rate'[ExchangeRate] ),
'Rate'[FromCurrency] = EARLIER ( [FromCurrency] ),
'Rate'[EffectiveDate] = EARLIER ( [Date] )
)
RETURN
IF (
result = BLANK ()
&& [FlagInfo] = 1,
VAR lastD =
CALCULATE (
MAX ( 'Rate'[EffectiveDate] ),
'Rate'[FromCurrency] = EARLIER ( [FromCurrency] ),
'Rate'[EffectiveDate] < EARLIER ( [Date] )
)
RETURN
CALCULATE (
SUM ( 'Rate'[ExchangeRate] ),
'Rate'[FromCurrency] = EARLIER ( [FromCurrency] ),
'Rate'[EffectiveDate] = lastD
),
result
)
)
BTW, pbix como adjunto.
Saludos
Muchas gracias @v-lid-msft . Esto también funcionó según lo esperado. También probé un enfoque más e incluso eso me trajo la salida requerida. Pero creo que esto es más codicioso. Muchas gracias de nuevo.
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 | |
2 | |
2 | |
2 | |
1 |