gráfico de variación porcentual acumulada de un valor

 

Hola,

Estoy intentando graficar la variación porcentual de un valor en el tiempo (rentabilidad una inversión por ejemplo)

Tengo esta tabla de nombre "producto":

dia valor
01/01/2020 10
02/01/2020 12
03/01/2020 15
04/01/2020 11
05/01/2020 13

 

Quiero tener un filtro de fecha para fijar inicio y fin del análisis

Implementé estas medidas:

v = SUM(producto[valor])
vant = CALCULATE([v],DATEADD(producto[Día].[Date],-1,DAY))
r = DIVIDE([v]-[vant],[vant])
racum = CALCULATE([r],FILTER(ALLSELECTED(producto),producto[dia]<=MAX(producto[dia])))

donde:

v: valor

vant: valor anterior

r: rentabilidad

racum: rentabilidad acumulada

pero racum no entrega la rentabilidad esperada desde la fecha inicial hasta la final porque r no es una SUM

como puedo hacerlo???

si en la tabla tuviese calculada la rentabilidad en una columna con nombre "rentabilidad" funcionaría perfectamente haciendo:

rent = SUM(producto[rentabilidad])
rac = CALCULATE([rent],FILTER(ALLSELECTED(producto),producto[dia]<=MAX(producto[dia])))

pero tampoco sé como agregar en PowerBi una nueva columna que calcule la rentabilidad en la tabla.

me pueden ayudar con esto último también??? 

aunque mi principal interés es resolver la primera variante cuyos resultados con lo que tengo son:

informe

Mil gracias de antemano!!!

Saludos,

ERubio.

Hola ERubio,

Si lo que quieres es que vant contenga el valor del día anterior, bastaría con que lo definieses así:

vant = CALCULATE([v],DATEADD(producto[Día],-1,DAY))

La selección del .[Date] no sé si te funcionaría correctamente (aunque por tus capturas de pantalla parecería que sí).

Y para el cálculo de la rentabilidad acumulada ¿lo que quieres es calcular la diferencia de cada valor con respecto al primero, dividido por el primero?

Un saludo

Daniel

Estimado Daniel,

Muchas gracias por su respuesta, sobre la cual le comento lo siguiente:

La medida vant sin el .[Date] no me funcionó... con el .[Date] funciona perfectamente, de hecho el editor inteligente lo sugiere, por eso lo había puesto.

En ese primer problema lo que no me funciona es la medida racum que no hace lo que debería porque se basa en la medida r que no es una SUM.

Eso es lo que me gustaría entender como arreglar...

El correcto funcionamiento puede verse en el segundo problema que tengo, donde rac es lo que pretendía obtener con racum. En este caso parto de la tabla con la rentabilidad calculada en el xls, pero me gustaría saber como poder calcularla y añadirla como nueva columna en Power BI.

Finalmente, comentarle que la rentabilidad que uso es respecto al valor anterior para poder mostrar la acumulada en Power BI partiendo desde cualquier día inicial. Una vez definido el día sí podría calcularla como usted sugiere: según la diferencia de cada valor con respecto al primero, dividido por el primero. 

En este enlace podrá encontrar los ficheros con los problemas, por si gusta revisarlos.

Le reitero las gracias por su atención,

Saludos,

ERubio

 

Hola ERubio,

tu primer problema se podría solucionar extrayendo, para cada fila de tu tabla, el valor del primer día de la tabla filtrada y el valor del día actual, y devolver el cálculo apropiado. Por ejemplo:

 

racum =

VAR tabla = ALLSELECTED(producto)

VAR v_primerDia = CALCULATE(

FIRSTNONBLANKVALUE(producto[dia], SUM(producto[valor])),tabla)

VAR v_ultimodia = SUM(producto[valor])

VAR r_acum = (v_ultimodia - v_primerDia) / v_primerDia

RETURN

r_acum

 

Si te fijas, extraigo en "tabla" el resultado de filtrar tu tabla de productos según tu segmentador. En v_primerDia me quedo con el valor del primer día de dicha tabla. En v_ultimoDia no es más que el valor de la fila que corresponda. Y devuelvo el cálculo.

Saludos

Daniel

Hola Daniel, 

Mil gracias, con esto pude obtener lo que quería.

Solo fue necesario agregar un filtro a tabla para que solo se calculara en el rango deseado:

VAR tabla = FILTER(ALLSELECTED(producto),producto[dia]<=MAX(producto[dia]))

Gracias reiteradas.

Saludos,

ERubio

Enviado por ERubio el Mar, 15/09/2020 - 08:35