Tormod_GK
Hola.
Tengo una tabla donde necesito restar dos valores que son de filas diferentes. Quiero la diferencia entre el valor de la fecha actual en la fila y la fila que tiene el mes anterior. Este es un ejemplo donde tengo las columnas Fecha y Valor en mi tabla, pero necesito crear la columna ‘Diferencia’.
También probé esta fórmula DAX, pero el valor solo aparece en una fecha, por lo que no funciona.
suma(DW_Data_Salg[Inntekt])-CALCULAR(SUMA(DW_Data_Salg[Inntekt]);DATEADD(DW_Data_Salg[DATO].[Date];-1 MES))
¿Hay alguien que sepa cómo hacer esto?
Fecha | Valor | Diferencia |
15.02.2016 | 50 000 | 50 000 |
15.03.2016 | 70 000 | 20 000 |
15.04.2016 | 70 000 | 0 |
15.05.2016 | 80 000 | 10 000 |
15.06.2016 | 20 000 | -60 000 |
Atentamente,
Tormod (Noruega)
v-sihou-msft
En respuesta a Tormod_GK
@Tormod_GK
En este escenario, dado que necesita obtener los datos del mes anterior en función de la fecha de división actual, es mejor crear una medida en lugar de una columna calculada. De lo contrario, debe buscar la fila anterior según la columna de índice como sugirió @ankitpatira. Solo crea una medida como:
difference= sum(DW_Data_Salg[Inntekt])-CALCULATE(SUM(DW_Data_Salg[Inntekt]),PARALLELPERIOD(DW_Data_Salg[DATO].[Date],-1,MONTH))
O
difference= sum(DW_Data_Salg[Inntekt])-CALCULATE(SUM(DW_Data_Salg[Inntekt]),PREVIOUSMONTH(DW_Data_Salg[DATO].[Date]))
Saludos,
jasbir_singh83
Hola, vea la imagen a continuación que creé a través de Quick Measure & Time Intelligence:
Por lo tanto, mi conjunto de datos es del 30 de septiembre de 2020 al 28 de febrero de 2021. Calculé el %diff MoM, ¿Cómo puedo ocultar la fila de marzo ya que no tenemos datos de marzo a partir de ahora y cómo eliminar la columna Total del gráfico de cascada creado por ¿Esta tabla?
Además, ¿hay alguna manera de reflejar la columna Total como un % de cambio de diferencia entre los datos del 30 de septiembre de 2020 y el 28 de febrero de 2021? ¿Ha habido una disminución o un aumento general en febrero de 2021 desde el punto de partida en septiembre de 2020? ¿Cómo tener esta fórmula como una medida separada en sí misma que continúa actualizándose cuando se agregan marzo y los meses futuros con el punto base el 30 de septiembre de 2020?
ankitpatira
@Tormod_GK Primero vaya al editor de consultas en el escritorio de power bi y en Agregar columna, agregue la columna de índice desde cero. Luego, en la pestaña de modelado, cree una nueva columna usando el código a continuación.
Difference = TABLENAME[Value] - IF( TABLENAME[Value] = 0, TABLENAME[Value], LOOKUPVALUE( TABLENAME[Value], TABLENAME[Index], TABLENAME[Index]-1) )
SantiagoBS
En respuesta a ankitpatira
Hola @ankitpatira
Su código DAX finalmente me llevó a la solución que necesitaba, muchas gracias, sin embargo, ¿puedo preguntar por qué el condicional antes de buscar el valor?
mnigam
En respuesta a ankitpatira
Hola,
Tengo una tabla con los nombres de las columnas Producto, Meses y Cantidad. Quiero calcular la diferencia entre la cantidad del mes wr t. columna de productos básicos.
¿Alguien puede ayudarme a escribir una consulta DAX?
mercancía | meses | cantidad |
11 | 01/04/2017 | 500 |
11 | 01/05/2017 | 700 |
11 | 01/06/2017 | 1000 |
11 | 7/1/2017 | 1500 |
12 | 01/04/2017 | 600 |
12 | 01/05/2017 | 900 |
12 | 01/06/2017 | 1400 |
12 | 7/1/2017 | 2000 |
13 | 01/04/2017 | 100 |
13 | 01/05/2017 | 500 |
13 | 01/06/2017 | 600 |
13 | 7/1/2017 | 750 |
14 | 01/04/2017 | 1000 |
14 | 01/05/2017 | 2000 |
14 | 01/06/2017 | 3000 |
14 | 7/1/2017 | 4000 |
El resultado esperado es el siguiente:
mercancía | meses | cantidad |
11 | 01/04/2017 | 500 |
11 | 01/05/2017 | 200 |
11 | 01/06/2017 | 300 |
11 | 7/1/2017 | 500 |
12 | 01/04/2017 | 600 |
12 | 01/05/2017 | 300 |
12 | 01/06/2017 | 500 |
12 | 7/1/2017 | 600 |
13 | 01/04/2017 | 100 |
13 | 01/05/2017 | 400 |
13 | 01/06/2017 | 100 |
13 | 7/1/2017 | 150 |
14 | 01/04/2017 | 1000 |
14 | 01/05/2017 | 1000 |
14 | 01/06/2017 | 1000 |
14 | 7/1/2017 | 1000 |
Gracias por adelantado
Saludos,
manish nigam
Tormod_GK
En respuesta a ankitpatira
Hola y gracias por tu solución, pero hay un problema. Mi tabla consta de 2 filas de molinos y 40 columnas y la referencia es departamento. Así que la búsqueda es por departamento y por el mes anterior.
Índice | Fecha | Departamento | Valor | Diferencia |
100 | 15.02.2016 | 100 | 50 000 | 50 000 |
2345 | 15.03.2016 | 100 | 70 000 | 20 000 |
7585 | 15.04.2016 | 100 | 70 000 | 0 |
654325 | 15.05.2016 | 100 | 80 000 | 10 000 |
345321 | 15.06.2016 | 100 | 20 000 | -60 000 |
SantiagoBS
En respuesta a Tormod_GK
Hola @Tormod_GK
Encontré casi el mismo problema que usted, mi solución fue usar un índice calculado basado en los valores de búsqueda que necesitaba y usar la función de concatenación; primero necesitaría generar el índice como una columna calculada, de la siguiente manera:
ConcatIndex = TABLENAME[Index] & TABLENAME[Date] & TABLENAME[Department]
Luego, use ConcatIndex para recuperar el valor de cada departamento e índice y la función PREVIOUSMONTH para el mes anterior:
Difference =
TABLENAME[Value] - IF(
TABLENAME[Value] = 0,
TABLENAME[Value],
LOOKUPVALUE(
TABLENAME[Value],
TABLENAME[ConcatIndex],
(TABLENAME[Index] & (PREVIOUSMONTH(TABLENAME[Date] & TABLENAME[Department])))
)
No estoy muy seguro de cuál es el propósito del condicional en el último código, depende de ti usarlo o no.
Espero que esto te ayude a ti o a alguien más, aunque tengo 4 años de retraso, jeje.
v-sihou-msft
En respuesta a Tormod_GK
@Tormod_GK
En este escenario, dado que necesita obtener los datos del mes anterior en función de la fecha de división actual, es mejor crear una medida en lugar de una columna calculada. De lo contrario, debe buscar la fila anterior según la columna de índice como sugirió @ankitpatira. Solo crea una medida como:
difference= sum(DW_Data_Salg[Inntekt])-CALCULATE(SUM(DW_Data_Salg[Inntekt]),PARALLELPERIOD(DW_Data_Salg[DATO].[Date],-1,MONTH))
O
difference= sum(DW_Data_Salg[Inntekt])-CALCULATE(SUM(DW_Data_Salg[Inntekt]),PREVIOUSMONTH(DW_Data_Salg[DATO].[Date]))
Saludos,
Ripstaur
En respuesta a v-sihou-msft
Tengo datos de GitHub sobre los casos y muertes de COVID. Tiene conteos diarios para cada condado en los EE. UU., para todos los días desde el 22 de enero. Me gustaría poder calcular la diferencia entre días («nuevos casos» o «nuevas muertes»). He podido hacer eso en Tableau, pero no he descubierto cómo hacerlo en una columna calculada en M o Dax en Power BI. En otras palabras, para un condado en particular en un estado en particular (o para un código FIPS en particular), necesito poder restar el conteo de casos confirmados para el 22 de enero del mismo conteo para el 23 de enero. Además, si el resultado termina hasta menos de cero, necesito poder hacer que devuelva 0. ¿Alguna idea? Podría crear un índice concatenado para el condado, el estado y un número de índice, si eso ayuda.
Ripstaur
En respuesta a v-sihou-msft
¿Qué es «DATO» en esta expresión?
Tormod_GK
En respuesta a Ripstaur
DATO = FECHA 🙂
fjcampos
En respuesta a v-sihou-msft
Tengo un problema similar, intente esta solución pero me muestra lo siguiente:
El uso de esta fórmula siempre da como resultado cero para mí MOV_NETO_RRC
Quisiera filtrar de enero a abril y solo mostrarme los valores encerrados en azul.
Mi medida aplicada es la siguiente:
rpul
En respuesta a v-sihou-msft
@v-sihou-msft
He estado tratando de realizar un cálculo similar, pero cada vez que uso una función DAX, como AÑO ANTERIOR, como filtro en CALCULAR, no se devuelve nada.
Mi expresión actual es:
Diferencia = CALCULAR(SUMA(‘Resumen anual'[Sales by Status per Year]), AÑO ANTERIOR(‘Resumen anual'[Date].[Date]))
Pero esto devuelve solo espacios en blanco. ¿Alguna idea de por qué esto puede ser o ideas para solucionar problemas? Si dejo caer el filtro, funciona. Si pruebo otros filtros que no son funciones DAX como ‘Resumen anual'[Date].[Date]=2017 funciona.
jpatil
En respuesta a rpul
También obtuve resultados en blanco después de implementar AÑO ANTERIOR funciona igual que tu. Sin embargo, el problema se resolvió cuando
1) Agregué la tabla de fechas con todas las fechas ininterrumpidas dentro del período especificado.
2) Lo marcó como tabla de fechas con la columna de fecha como clave.
3) Relación establecida entre la tabla de fechas y la tabla de datos.
4) Usar la columna de la tabla de fechas en Función AÑO ANTERIOR en lugar de la columna de fecha de la tabla de datos.
Funcionó como se esperaba después de seguir los pasos anteriores.