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:
Mil gracias de antemano!!!
Saludos,
ERubio.
Hola ERubio, Si lo que…
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…
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…
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,…
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
Me alegro :)
Me alegro :)