Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

La nueva medida y la nueva columna con la misma fórmula están dando resultados diferentes

Hago clic en la columna campos y agrego una nueva medida y una nueva columna. La fórmula utilizada en ambos es la misma que a continuación.

ML2Date = CALCULATE ( MAX ( tbl1[F Date] ), ALLEXCEPT ( tbl1, tbl1[uid] ), filter(tbl1, tbl1[F Date] <>MAX ( tbl1[F Date] )))

La medida da salida que es 1 de agosto de 2020 que quiero, columna agregada me da salida 1 dic 2020. ¿Qué necesito corregir para que incluso en la columna agregada pueda obtener el mismo resultado que la medida que es 2ª fecha más grande desde abajo.

Datos de muestra

F Fecha
01 de enero de 2021
01 de julio de 2020
01 de agosto de 2020
01 de abril de 2020
01 de junio de 2020
01 de mayo de 2020
01 de marzo de 2020
01 de marzo de 2020
1 ACCEPTED SOLUTION

@ag1147 Si te entiendo correctamente, todo esto se puede hacer dentro de una sola medida:

Medida de edad =
VAR _maxDate = MAX('Table'[Date])
VAR _minDate = MIN('Tabla'[Fecha])
VAR _prevDate = MAXX(FILTER('Table', 'Table'[Date] <> _maxDate), 'Table'[Date])
devolución
DATEDIFF(_minDate,_prevDate, DÍA)
Consulte el archivo pbix adjunto bajo firma.

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

No @ag1147

Si desea columnas, pruebe estos códigos:

ML1Date = 
VAR maxFDate =
    CALCULATE (
        MAX ( 'Table (3)'[F Date] ),
        ALLEXCEPT ( 'Table (3)', 'Table (3)'[uid] )
    )
RETURN
    CALCULATE (
        MAX ( 'Table (3)'[F Date] ),
        ALLEXCEPT ( 'Table (3)', 'Table (3)'[uid] ),
        'Table (3)'[F Date] < maxFDate
    )

031003.jpg

Sin embargo, sugiero utilizar medidas para calcular todos los resultados. A continuación se presentan todas las medidas.

M_MinDate = CALCULATE(MIN('Table (3)'[F Date]),ALLEXCEPT('Table (3)','Table (3)'[uid]))

M_MLDate = 
VAR maxDate = CALCULATE(MAX('Table (3)'[F Date]),ALLEXCEPT('Table (3)','Table (3)'[uid]))
RETURN
CALCULATE(MAX('Table (3)'[F Date]),ALLEXCEPT('Table (3)','Table (3)'[uid]),'Table (3)'[F Date]<maxDate)

M_Age = DATEDIFF([M_MinDate],[M_MLDate],DAY)

031004.jpg

Por favor, avísame si esto ayuda.
Equipo de Apoyo a la Comunidad _ Jing
Si este post ayuda,por favor acéptelo como la solución para ayudar a otros miembros a encontrarlo.

Syndicate_Admin
Administrator
Administrator

Para uid 5a, el 1 de agosto es la segunda última ocurrencia y por lo tanto la edad debe ser de 5 meses. Este es el resultado esperado.

Syndicate_Admin
Administrator
Administrator

@ag1147 Los datos de ejemplo no incluyen 01 dic, por lo que no es posible que la columna devuelva este resultado.

Las medidas y columnas funcionan en un contexto de evaluación diferente en DAX, por lo que pueden devolver resultados diferentes debido a eso. ¿Por qué tiene que ser una columna calculada? Si la medida da el resultado que está buscando, se puede utilizar en la mayoría de los objetos visuales. Si lo necesita como columna (es decir, para segmentaciones de datos o eje), por favor explique en inglés lo que desea que muestre la columna, ya que en este caso asumo que desea que tenga valores diferentes basados en algunos criterios? Agregue más columnas a la tabla de datos de ejemplo para mostrar lo que está intentando lograr.

¡Gracias!

Quiero calcular la 2ª última ocurrencia
Por debajo de ML2Date hay una medida. Todos los demás son columnas. ML2Date(Medida) da la respuesta esperada, pero luego la fórmula de edad no funciona con la medida.
si utilizo la misma fórmula para una columna ML1Date no rellena el mismo valor que la medida aunque la fórmula es la misma medida.
Quiero averiguar la ocurrencia antes de lo más reciente y calcular la edad. Mientras calculo la edad cuando uso la columna
Obteré algo de respuesta, pero no obteciones ninguna respuesta cuando mida al usuario.
Sin embargo
MinDate = CALCULATE ( MIN ( tbl1[F Date]), ALLEXCEPT ( tbl1, tbl1[uid] ) )
ML1Date = CALCULATE ( MAX ( tbl1[F Date] ), ALLEXCEPT ( tbl1, tbl1[uid] ), filter(tbl1, tbl1[F Date] <>MAX ( tbl1[F Date] )))
ML2Date = CALCULATE ( MAX ( tbl1[F Date] ), ALLEXCEPT ( tbl1, tbl1[uid] ), filter(tbl1, tbl1[F Date] <>MAX ( tbl1[F Date] )))
edad = DATEDIFF(tbl1[MinDate].[ Fecha],tbl1[ML1Date]. [Fecha],DÍA)
edad1 = DATEDIFF(tbl1[MinDate],tbl1[ML2Date],DAY)

edad1 no está devolviendo ningún valor.

uid F Fecha ML1Date MinDate edad1
5a 01 enero 2021 01/12/2020 00:00:00 01/03/2020 00:00:00 275
5a 01 julio 2020 01/12/2020 00:00:00 01/03/2020 00:00:00 275
5a 01 agosto 2020 01/12/2020 00:00:00 01/03/2020 00:00:00 275
5a 01 abril 2020 01/12/2020 00:00:00 01/03/2020 00:00:00 275
5a 01 junio 2020 01/12/2020 00:00:00 01/03/2020 00:00:00 275
5a 01 mayo 2020 01/12/2020 00:00:00 01/03/2020 00:00:00 275
5a 01 marzo 2020 01/12/2020 00:00:00 01/03/2020 00:00:00 275
5a 01 marzo 2020 01/12/2020 00:00:00 01/03/2020 00:00:00 275
5b 01 Diciembre 2020 01/12/2020 00:00:00 01/12/2020 00:00:00
5b 01 Enero 2021 01/12/2020 00:00:00 01/12/2020 00:00:00

sample visualisationvisualización de muestras

@ag1147 Si te entiendo correctamente, todo esto se puede hacer dentro de una sola medida:

Medida de edad =
VAR _maxDate = MAX('Table'[Date])
VAR _minDate = MIN('Tabla'[Fecha])
VAR _prevDate = MAXX(FILTER('Table', 'Table'[Date] <> _maxDate), 'Table'[Date])
devolución
DATEDIFF(_minDate,_prevDate, DÍA)
Consulte el archivo pbix adjunto bajo firma.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.