Índice relativo al año mínimo seleccionado

Un usuario Pregunto ✅

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?

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:
Tabla.PNG

Aquí está el regreso:

medir = calcular (suma (datos[Value]);FILTRO(Datos;Datos[Year]=min(Datos[Year]));todoslosseleccionados(Datos))
Retorno.PNG

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.

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?

捕获.PNG

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.

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 🙂

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *