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

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.

Reply
Syndicate_Admin
Administrator
Administrator

Ayuda con DAX para aplicar tarifas específicas del año

¡Hola!

Tengo una tabla de tarifas que muestra las tarifas específicas de 1er año, 2do año y 3er año.

kamsingh11_0-1654276610365.png

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!

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

¿Cómo volvemos a 5 años o 7 años en este ejemplo? ¿Qué cambios necesitaríamos?

¡Gracias de nuevo por su ayuda!

Syndicate_Admin
Administrator
Administrator

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.

@sturlaws ,

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
    )

vzhangti_0-1654595063113.png

¿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] ) ) 
    )

vzhangti_0-1654669729516.png

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:

kamsingh11_1-1654716319060.png

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] ) ) 
    )

vzhangti_0-1654766797898.png

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.

¡Esto funciona muy bien! Muchas gracias por toda la ayuda @v-zhangti

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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

Top Solution Authors