Dax para comparar dos filas de dos columnas

Un usuario Pregunto ✅

ExcelPBI

Hola Comunidad,

Necesito ayuda con DAX para comparar dos filas de dos columnas. para un cliente si la categoría es la misma y hay más de un date_closed_on, si date_closed_on en la primera fila de date_opened_on en la segunda fila, a continuación, devolver el date_closed_on de la segunda fila.

En el ejemplo siguiente, para el cliente 123, la categoría A, si date_closed_on en la primera fila (15/08/2020) -date_opened_on en la segunda fila (15/08/2020) y, a continuación, devuelva el date_closed_on (20 / 08/2020) de la segunda fila.

Por lo tanto, para los clientes 324 y 678 la condición es falsa y devuelve fechas cerradas individuales para cada fila.

Capture_ndates.PNG

Gracias de antemano!

Greg_Deckler

@ExcelPBI: para que esto funcione, los datos tendrían que tener el siguiente aspecto, puede usar Rellenar en Power Query.

Identificación del niño Categoría date_opened_on date_closed_on
123 a 8/2/2020 15/8/2020
123 a 15/8/2020 20/8/2020
324 B 8/2/2020 15/8/2020
324 B 16/8/2020 20/8/2020

También puede necesitar una columna Index, pero por ahora podría hacer esto:

Columna = VAR __Table = FILTER ('Tabla',[Child ID]= ANTES ([Child ID]) && [Category]= ANTES ([Category]) && [date_opened_on] = ANTES ([date_closed_on])) VOLVER SI (ESBLANCO (__ Tabla), EN BLANCO (), MAXX (__ Tabla,[date_closed_on))

amitchandak

@ExcelPBI , esto mismo que el problema de la racha continua. No utilice +1, -1 de la brecha

https://community.powerbi.com/t5/Quick-Measures-Gallery/Power-BI-Continuous-Streak-One-Day-Differenc…

mohammedadnant

@ExcelPBI ,

Pls comprobar los pasos a continuación todo en Power Query Editor,

Un. Utilice rellenar hacia abajo para rellenar los valores en blanco en el ID de cliente

B. Agregar 2 en la columna de índice comienza a partir de 0 y comienza a partir de 1

C. Combine esta tabla con el mismo mapa de tablas Índice 1 en la parte superior al índice 0 debajo de la tabla

d. columna condicional para definir la lógica

Detalles:

Paso: a & b

Dejar
Fuente: Tabla…..,
«Tipo de cambio» – Table.TransformColumnTypes(Source,’ID de niño», Int64.Type’, »Category’,’category’, escriba text’, »date_opened_on’,’, escriba date’, »’date_closed_on»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»»’
«Añadido índice» – Table.AddIndexColumn(-«Changed Type», «Index», 0, 1, Int64.Type),
«Added Index1» á Table.AddIndexColumn(-«Added Index», «Index.1», 1, 1, Int64.Type)
En
«Añadido índice1»
Paso: c & d

Dejar
Source , Table.NestedJoin(MaxCloseDate, ‘Index.1’, MaxCloseDate, »Index», ‘MaxCloseDate’, JoinKind.LeftOuter),
«Expanded MaxCloseDate» á Table.ExpandTableColumn(Source, «MaxCloseDate», «CHILD ID», «Category», «date_opened_on», «date_closed_on», «MaxCloseDate.Child ID», «MaxCloseDate.Category», «MaxCloseDate.date_opened_on», «MaxCloseDate.date_closed_on»)
«Añadida columna condicional» – Table.AddColumn(-«Expanded MaxCloseDate», «Final Close Date», cada una si [date_closed_on] – [MaxCloseDate.date_opened_on] y luego [MaxCloseDate.date_closed_on] más [date_closed_on]),
«Eliminado otras columnas» – Table.SelectColumns («Añadida columna condicional», «ID de niño», «Categoría», «date_opened_on», «Fecha de cierre final»)
En
«Eliminado otras columnas»

————————————————– ————————————————– ———————————–

Si esto resuelve su problema, pls marcas como completa y pulse el botón «Me gusta»

Gracias y saludos,

Mohammed Adnan

www.youtube.com/taik18

Amitchandak

@ExcelPBI, esto mismo que el problema de la racha continua. No utilice +1, -1 de la brecha

https: //community.powerbi.com/t5/Quick-Measures-Gallery/Power-BI-Continuous-Streak-One-Day-Differenc …

Greg_Deckler

@ExcelPBI: para que esto funcione, los datos tendrían que tener el siguiente aspecto, puede usar Rellenar en Power Query.

Identificación del niño Categoría date_opened_on date_closed_on
123 a 8/2/2020 15/8/2020
123 a 15/8/2020 20/8/2020
324 B 8/2/2020 15/8/2020
324 B 16/8/2020 20/8/2020

También puede necesitar una columna Index, pero por ahora podría hacer esto:

Column = 
  VAR __Table = FILTER('Table',[Child ID]=EARLIER([Child ID]) && [Category]=EARLIER([Category]) && [date_opened_on] = EARLIER([date_closed_on]))
RETURN
  IF(ISBLANK(__Table),BLANK(),MAXX(__Table,[date_closed_on))

Deja un comentario

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