Reply
Syndicate_Admin
Administrator
Administrator
Syndicated - Inbound

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

Source Community: Power BI | Source Author Name: kamsingh11

¡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

Source Community: Power BI | Source Author Name: kamsingh11
Syndicated - Inbound

¿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

Source Community: Power BI | Source Author Name: sturlaws
Syndicated - Inbound

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.

Source Community: Power BI | Source Author Name: kamsingh11
Syndicated - Inbound

@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!

Source Community: Power BI | Source Author Name: v-zhangti
Syndicated - Inbound

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.

Source Community: Power BI | Source Author Name: kamsingh11
Syndicated - Inbound

¡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!

Source Community: Power BI | Source Author Name: v-zhangti
Syndicated - Inbound

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.

Source Community: Power BI | Source Author Name: kamsingh11
Syndicated - Inbound

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!

Source Community: Power BI | Source Author Name: v-zhangti
Syndicated - Inbound

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.

Source Community: Power BI | Source Author Name: kamsingh11
Syndicated - Inbound

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

avatar user

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

FebPBI_Carousel

Power BI Monthly Update - February 2025

Check out the February 2025 Power BI update to learn about new features.

Feb2025 NL Carousel

Fabric Community Update - February 2025

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

Top Solution Authors (Last Month)
Top Kudoed Authors (Last Month)