Microsoft Fabric Community Conference 2025, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount.
Register nowThe Power BI DataViz World Championships are on! With four chances to enter, you could win a spot in the LIVE Grand Finale in Las Vegas. Show off your skills.
¡Hola!
Tengo una tabla de tarifas que muestra las tarifas específicas de 1er año, 2do año y 3er año.
En este ejemplo, estamos viendo las tasas de los últimos 3 años y estamos buscando usar una medida para las ventas con tasas. Cuando seleccionamos un producto y cualquier año / mes de la rebanadora, ese año en particular se consideraría como 1er año / mes y la tarifa correspondiente debe aplicarse a las ventas para ese año / mes. Por ejemplo, el año seleccionado es 2022, luego la tasa para el 1er año debe considerarse para 2022 (Ventas con tasas = Ventas * 0.90), para 2021, las tasas del segundo año deben considerarse para 2021 (Ventas * .80) y para 2020, se deben considerar las tasas del 3er año (Ventas * .70)
Enlace al archivo: https://drive.google.com/file/d/1LhxX98ZTTrWcAq7LhVn_YT0tGguanqpp/view?usp=sharing
En la tabla de ejemplo, estoy buscando agregar Ventas con tasas junto a Ventas.
No estoy seguro de cómo realizar esto. Cualquier ayuda con DAX sería apreciada.
¡Gracias!
¿Cómo volvemos a 5 años o 7 años en este ejemplo? ¿Qué cambios necesitaríamos?
¡Gracias de nuevo por su ayuda!
Hola
Primero agregue una columna de índice en su tabla de tasas, donde 1er año = 0, 2do año = 1 y 3er año = 2
A continuación, cree esta medida:
sales with rates =
VAR _currentYear =
YEAR ( TODAY () )
VAR _selectectYear =
YEAR ( CALCULATE ( SELECTEDVALUE ( Table137[Date] ) ) )
VAR _rate =
LOOKUPVALUE ( Rates[Rates], Rates[index], _currentYear - _selectectYear )
RETURN
SUM ( Table137[Sales] ) * _rate
Bien
Sturla
Si esta publicación ayuda, considere Aceptarla como la solución. Las felicitaciones también son agradables.
Muchas gracias. Funciona en su mayor parte. Esta muestra de datos es muy pequeña y funciona para esto. Para mis datos originales, que son enormes, parece funcionar para el mes y el año seleccionados, pero muestra los valores de Balnk, cuando selecciono un año y todos los meses.
Acabo de crear una tabla de fecha para estos datos de ejemplo con la esperanza de que mi tabla de fecha fuera un problema. Pero con la nueva tabla de fecha también, funciona aquí para datos de muestra y muestra espacios en blanco para datos reales. ¿Algún problema que se te ocurra?
¡Gracias!
Hi, @kamsingh11
Pruebe los siguientes métodos.
sales with rates =
VAR _currentYear =
YEAR ( TODAY () )
VAR _selectectYear =
SELECTEDVALUE ( Dates[Year] )
VAR _rate =
LOOKUPVALUE ( Rates[Rates], Rates[Index], _currentYear - _selectectYear )
RETURN
IF (
SELECTEDVALUE ( Dates[Month] ) <> BLANK (),
SUM ( Table137[Sales] ) * _rate,
CALCULATE ( SUM ( Table137[Sales] ), ALLSELECTED ( Table137[Country] ) ) * _rate
)
¿Es este el resultado que esperas?
Saludos
Equipo de soporte de la comunidad _Charlotte
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
¡Muchas gracias @v-zhangti !
Sí, da la respuesta correcta para el año también ahora. No me di cuenta de esto antes, pero también estaba buscando ver los valores de los 3 años anteriores para el año / mes seleccionado. Entonces, para 2022, los valores de 2022, 2021 y 2020 mientras se usan las tasas correspondientes.
Hacia el final, me gustaría añadir los valores de estos 3 años. En este caso, no tengo valores para 2020 y en tal caso me gustaría tener datos iguales a los datos de los primeros años. Por lo tanto, los valores de 2020 serán los mismos que los de 2021, ya que no tenemos valores para 2020. ¿Sería posible sumarlos?
¡Gracias de nuevo por ayudar!
Hi, @kamsingh11
Puede probar los siguientes métodos.
previous 3 years =
VAR _currentYear =
YEAR ( TODAY () )
VAR _selectectYear =
SELECTEDVALUE ( Dates[Year] )
VAR _rate =
LOOKUPVALUE ( Rates[Rates], Rates[Index], _currentYear - _selectectYear )
VAR _prerate=LOOKUPVALUE ( Rates[Rates], Rates[Index], _currentYear - _selectectYear+1 )
RETURN
IF (
SELECTEDVALUE ( Dates[Year] ) <> BLANK (),
SUM ( Table137[Sales] ) * _rate+CALCULATE(SUM(Table137[Sales]),FILTER(ALL(Dates),[Year]=_selectectYear-1))*_prerate*2,
CALCULATE ( SUM ( Table137[Sales] ), ALLSELECTED ( Table137[Country] ) )
)
Saludos
Equipo de soporte de la comunidad _Charlotte
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Gracias de nuevo @v-zhangti !
Esto parece estar muy cerca del valor correcto para 2022, que debería ser 4148. El valor de 711 para 2022 es correcto, si no usamos los últimos 3 años. Pero necesitamos usar todos los últimos 3 años con tarifas. Por lo tanto, espero la siguiente producción cuando seleccionemos 2022 como Año:
Cuando elegimos 2022 en este ejemplo, se deben aplicar las tasas de los 3 años anteriores y luego se deben agregar los 3 años. Debido a que no tenemos valor para 2020 en este caso, mantenemos el valor del primer año disponible en los datos y, por lo tanto, usamos el mismo valor de 2021 para 2020 que en la tabla anterior. Lo mismo se aplica si se elige un mes específico para cualquier año específico.
¡Gracias de nuevo por su ayuda!
Hi, @kamsingh11
Pruebe la siguiente fórmula.
previous 3 years =
VAR _currentYear =
YEAR ( TODAY () )
VAR _selectectYear =
SELECTEDVALUE ( Dates[Year] )
VAR _rate =
LOOKUPVALUE ( Rates[Rates], Rates[Index], _currentYear - _selectectYear )
VAR _prerate=LOOKUPVALUE ( Rates[Rates], Rates[Index], _currentYear - _selectectYear+1 )
VAR _preprerate=LOOKUPVALUE ( Rates[Rates], Rates[Index], _currentYear - _selectectYear+2 )
RETURN
IF (
SELECTEDVALUE ( Dates[Year] ) <> BLANK (),
SUM ( Table137[Sales] ) * _rate+CALCULATE(SUM(Table137[Sales]),FILTER(ALL(Dates),[Year]=_selectectYear-1))*_prerate
+CALCULATE(SUM(Table137[Sales]),FILTER(ALL(Dates),[Year]=_selectectYear-1))*_preprerate,
CALCULATE ( SUM ( Table137[Sales] ), ALLSELECTED ( Table137[Country] ) )
)
Saludos
Equipo de soporte de la comunidad _Charlotte
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.