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
Tapojoy
New Member

¿Cómo crear una medida para calcular el porcentaje de cambio basado en la segmentación del intervalo de fechas?

Hola a todos ! @PowerBIDev
Tengo una gráfica de línea de serie temporal que muestra los valores de los últimos 90 días y tengo una segmentación de rango de fechas, en función de la cual se muestra el gráfico.

Necesito crear una nueva medida que sea capaz de calcular el cambio porcentual basado en el intervalo de fechas seleccionado a través de la segmentación de datos.

La gráfica de línea de serie temporal es como se muestra a continuación:

Tapojoy_1-1604730785022.png


Por ejemplo, si el intervalo de fechas de la segmentación se selecciona como: 19/08/2020 - 17/10/2020,
la medida de cambio porcentual debe calcularse como :-
[ ( Valor en 17/10/2020 - Valor en 19/08/2020 ) / Valor en 19/08/2020 ] X 100 %.

He intentado un código DAX, pero obteniendo el siguiente error:

Tapojoy_0-1604730713171.png

Por favor, sugiera cualquier solución o redirija a cualquier otro enlace, si ya ha sido respondido.

Gracias de antemano ! 😄

1 ACCEPTED SOLUTION
OwenAuger
Super User
Super User

Hola @Tapojoy

La razón del error es que los argumentos Filter proporcionados a CALCULATE deben ser tablas o expresiones booleanas adecuadas que hacen referencia a una sola columna.

Dado que las funciones MIN y MAX son funciones escalares, no devuelven tablas, por lo que startdate y enddate no son argumentos de filtro válidos.

Puede solucionar este problema mediante FIRSTDATE y LASTDATE, que devuelven tablas que contienen una sola fila/columna correspondiente a la fecha mínima/máxima. Creo que el orden de los argumentos en DIVIDE también necesita ser cambiado, y hubo un CALCULATE innecesario:

perc_change =
VAR startdate =
    FIRSTDATE ( daily_count[date] )
VAR enddate =
    LASTDATE ( daily_count[date] )
RETURN
    DIVIDE (
        CALCULATE ( [CumCount], enddate ),
        CALCULATE ( [CumCount], startdate )
    ) - 1

Además, le aconsejo crear una tabla de dimensiones Date independiente para usar para todos los filtrados de fecha (varios artículos sobre esto en línea).

saludos

Owen


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
Twitter
LinkedIn

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Para esto, ¿cómo funcionaría si quisiera que la Fecha de inicio fuera el valor SELECCIONADO y la fecha de finalización fuera el mes anterior basado en la Fecha de inicio?

es decir: Fecha de inicio = 23 de junio, por lo que Fecha de finalización = 23 de mayo

Tapojoy
New Member

¡Muchas gracias! Ahora funciona.

OwenAuger
Super User
Super User

Hola @Tapojoy

La razón del error es que los argumentos Filter proporcionados a CALCULATE deben ser tablas o expresiones booleanas adecuadas que hacen referencia a una sola columna.

Dado que las funciones MIN y MAX son funciones escalares, no devuelven tablas, por lo que startdate y enddate no son argumentos de filtro válidos.

Puede solucionar este problema mediante FIRSTDATE y LASTDATE, que devuelven tablas que contienen una sola fila/columna correspondiente a la fecha mínima/máxima. Creo que el orden de los argumentos en DIVIDE también necesita ser cambiado, y hubo un CALCULATE innecesario:

perc_change =
VAR startdate =
    FIRSTDATE ( daily_count[date] )
VAR enddate =
    LASTDATE ( daily_count[date] )
RETURN
    DIVIDE (
        CALCULATE ( [CumCount], enddate ),
        CALCULATE ( [CumCount], startdate )
    ) - 1

Además, le aconsejo crear una tabla de dimensiones Date independiente para usar para todos los filtrados de fecha (varios artículos sobre esto en línea).

saludos

Owen


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
Twitter
LinkedIn

Saludos
Tengo un problema ligeramente diferente.

Tengo una tarjeta que muestra el cambio porcentual basado en la selección de fecha y
2 segmentaciones de datos (entre y fecha relativa) en la misma página con la tarjeta y
Tengo dos algoritmos diferentes para el cambio de % para las fechas seleccionadas por Between Date Slicer y Relative Date Slicer por separado.

¿Hay alguna manera de detectar qué tipo de segmentación de datos de fecha está seleccionada, de modo que de esta manera pueda cambiar al algoritmo correcto en función de la selección de segmentación de datos de fecha?
Si no es así, entonces,
¿Cómo calcular el % de cambio en función de las fechas de cualquier tipo de cortadora de fechas?

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.