Anónimo
Hola a todos,
Estoy haciendo un gráfico donde el eje vertical es el índice y el eje horizontal es el año.
El valor de cada año es el cambio indexado desde el primer año del gráfico.
Por ejemplo, si los años seleccionados son 2000-2015, entonces 2014 = (suma de valores de 2014/suma de valores de 2000) *100.
Hasta ahora he estado probando diferentes versiones de la siguiente medida, pero no puedo hacer que funcione.
Parece mantener el filtro por min (año) y, por lo tanto, devuelve 100 para todos los años.
Measure= divide(sum('Data'[value]),calculate(sum('Data'[value]),
filter('Data','Data'[Year]=calculate(min('Data'[Year]),allselected('TV Data')))))*100
Se puede hacer esto?
v-yuta-msft
En respuesta a Anónimo
Hola danielgadhas ,
El resultado de una medida se basa en el contexto filtrado actual, por lo que me temo que usar una medida no puede cumplir con su requisito, debe usar la columna Calcular en su lugar.
Column = calculate(sum(Data[Value]), FILTER(all(Data), Data[Year]=min(Data[Year])))
Saludos,
jimmy tao
Anónimo
Hola de nuevo,
Es posible que haya reducido el problema, pero todavía no tengo una solución.
calculate(min('Data'[Year]),allselected('TV Data'))
Esto muestra el año correcto. Es decir, si 2000 es el año seleccionado más bajo, se muestra en todos los años.
Sin embargo, no funciona como filtro en esta expresión:
calculate(sum('Data'[value]),
filter('Data','Data'[Year]=calculate(min('Data'[Year]),allselected('TV Data')))
Quiero que devuelva la suma de los valores del año seleccionado más bajo, pero simplemente muestra las sumas de cada año.
El retorno es el mismo que sum(‘Data'[Value]), lo que explica por qué las expresiones completas devuelven 100.
¿Alguien sabe por qué no se aplica este filtro? Estoy seguro de que hay una respuesta lógica. 🙂
Zubair_Muhammad
En respuesta a Anónimo
@Anónimo
Intenta eliminar el cálculo interno
CALCULATE (
SUM ( 'Data'[value] ),
FILTER ( 'Data', 'Data'[Year] = MIN ( 'Data'[Year] ) ),
ALLSELECTED ( 'TV Data' )
)
Anónimo
En respuesta a Zubair_Muhammad
@Zubair_Muhammad
Gracias por responder.
Probé su solución, pero desafortunadamente aún devuelve la suma de cada año individual en lugar del primero.
He hecho una pequeña maqueta usando estos datos:
Aquí está el regreso:
medir = calcular (suma (datos[Value]);FILTRO(Datos;Datos[Year]=min(Datos[Year]));todoslosseleccionados(Datos))
En este caso, quiero que la medida muestre 110 para todas las filas, mientras que el valor muestra la suma del año específico.
El objetivo es dividir el valor por medida para mostrar la diferencia desde el año seleccionado más bajo.
v-yuta-msft
En respuesta a Anónimo
Hola danielgadhas,
He probado sus datos pero no puedo reproducir su problema como se muestra a continuación, ¿podría compartir su PBIX si es posible?
Saludos,
jimmy tao
Anónimo
En respuesta a v-yuta-msft
Hola @v-yuta-msft
Estás reproduciendo mi problema. En su tabla, me gustaría que la medida muestre el valor de 110 mientras se mantienen otros filtros aplicados.
He progresado un poco y tengo una expresión de trabajo con un año de referencia estático. Ahora solo tengo que hacerlo dinámico, que posiblemente sea la parte más difícil.
Index (2014):= divide( sum('Data'[value]), calculate(sum('Data'[value]), filter( ALLEXCEPT('Data','Data'[Slicer1],'Data'[Slicer2]), 'Data'[Year]=2014
)
)
) *100
Disculpas si no estoy siendo claro, pero en Index (2014) me gustaría reemplazar 2014 con el año seleccionado más bajo en la segmentación de años.
v-yuta-msft
En respuesta a Anónimo
Hola danielgadhas ,
El resultado de una medida se basa en el contexto filtrado actual, por lo que me temo que usar una medida no puede cumplir con su requisito, debe usar la columna Calcular en su lugar.
Column = calculate(sum(Data[Value]), FILTER(all(Data), Data[Year]=min(Data[Year])))
Saludos,
jimmy tao
Anónimo
En respuesta a v-yuta-msft
@v-yuta-msft
Ok, consideraré usar una columna calculada y, alternativamente, hacer más de una medida.
Gracias por tu ayuda 🙂