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
Anonymous
Not applicable

Necesita ayuda en DAX

Hola Dax Expertos,

Tengo assignmentstartdate , assignementenddate y candidate no en mis datos.

Necesito crear 2 columnas calculadas. Si la siguiente asignación de candiate está comenzando en menos de 4 días, entonces debe estar en un grupo o de lo contrario se debe iniciar un nuevo grupo.

Las columnas necesarias se marcan en negrita.

AssignmentStartDateAssignmentEndDateCandidatoNoGroupStartDateGroupEndDate
06-04-201006-10-201012306-04-202027-02-2011
07-10-201012-11-201012306-04-202027-02-2011
13-11-201027-02-201112306-04-202027-02-2011
25-07-201131-12-201112325-07-201115-04-2012
03-01-201215-04-201212325-07-201115-04-2012

Solicite que por favor le ayude aquí.

¡Gracias!

4 ACCEPTED SOLUTIONS
Icey
Community Support
Community Support

Hola @Developer_2202 ,

En primer lugar, agregue una columna Index en Power Query Editor.

Y luego, intente crear columnas calculadas de la siguiente manera:

Is less than or eq 4 = 
VAR PreviousIndex = [Index] - 1
VAR ThisStartDate = [AssignmentStartDate]
VAR PreviuosEndDate =
    CALCULATE (
        MAX ( 'Table'[AssignmentEndDate] ),
        FILTER ( 'Table', 'Table'[Index] = PreviousIndex )
    )
VAR DateDiff_ =
    DATEDIFF ( PreviuosEndDate, ThisStartDate, DAY ) + 0
RETURN
    IF ( DateDiff_ <= 4, 1, 0 )
Count 0 Value = 
CALCULATE (
    COUNT ( 'Table'[Is less than or eq 4] ),
    FILTER (
        'Table',
        'Table'[Is less than or eq 4] = 0
            && 'Table'[Index] <= EARLIER ( 'Table'[Index] )
    )
)
GroupStartDate Column =
CALCULATE (
    MIN ( 'Table'[AssignmentStartDate] ),
    FILTER (
        ALL ( 'Table' ),
        'Table'[Index] <= EARLIER ( 'Table'[Index] )
            && 'Table'[Count 0 Value] = EARLIER ( 'Table'[Count 0 Value] )
    )
)
GroupEndDate Column =
CALCULATE (
    MAX ( 'Table'[AssignmentEndDate] ),
    FILTER (
        ALL ( 'Table' ),
        'Table'[Index] >= EARLIER ( 'Table'[Index] )
            && 'Table'[Count 0 Value] = EARLIER ( 'Table'[Count 0 Value] )
    )
)

column.PNG

Para obtener más detalles, consulte el archivo .pbix adjunto.

Saludos

Icey

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

He llegado a esto para eliminar la transición de contexto

ColumnTest = 
    VAR _CandidateNo = TableA[CandidateNo]
    VAR _index = TableA[Index]
RETURN

COUNTROWS( 
     FILTER (TableA,
             TableA[CandidateNo] = _CandidateNo &&
             TableA[Is less than or eq 4] = 0 && 
             TableA[Index] <= _index)
    )

No lo he probado para el rendimiento, así que mira cómo te llevas.

Más consejos de rendimiento:

1. cree las columnas en Power Query en su lugar.

2. Utilice medidas en lugar de columnas calculadas

3. Desactive 'Fecha/hora automática' en Opciones

4. Asegúrese de que los campos de fecha son Tipo de fecha (no fecha/hora - si no lo necesita)

5. Reduzca las columnas de la tabla Fact (No hay muchos en los datos de muestra proporcionados, pero tal vez los datos reales tienen más)

View solution in original post

Anonymous
Not applicable

Hola a todos,

¡Gracias por toda tu ayuda!

He creado GroupStartDate y GroupEndDate de una manera muy fácil usando allexcept y funcionando como se esperaba.

A continuación encontrará todas las columnas calculadas:

Is less than or eq 4 = 
VAR PreviousIndex = [Index] - 1
VAR ThisStartDate = [AssignmentStartDate]
VAR PreviuosEndDate =
    CALCULATE (
        MAX ( 'Table'[AssignmentEndDate] ),
        FILTER ( 'Table', 'Table'[Index] = PreviousIndex )
    )
VAR DateDiff_ =
    DATEDIFF ( PreviuosEndDate, ThisStartDate, DAY ) + 0
RETURN
    IF ( DateDiff_ <= 4, 1, 0 )

Count 0 Value = 
    VAR _CandidateNo ='Table'[CandidateNo]
    VAR _index = 'Table'[Index]
RETURN

COUNTROWS( 
     FILTER ('Table',
             'Table'[CandidateNo] = _CandidateNo &&
             'Table'[Is less than or eq 4] = 0 && 
             'Table'[Index]<= _index)
    )

GroupStartDate Column = 
CALCULATE (
    MIN ( 'Table'[AssignmentStartDate] ),
    ALLEXCEPT('Table','Table'[CandidateNo],'Table'[Count 0 Value])
)

GroupEndDate Column = 
CALCULATE (
    MAX ( 'Table'[AssignmentEndDate] ),
    ALLEXCEPT('Table','Table'[CandidateNo],'Table'[Count 0 Value])
)

El único problema que estoy enfrentando es que la primera columna "Es menor que o eq 4" no hay ninguna condición para el candidato. Pude considerar el contexto de candidato en todas las demás columnas, pero no pude hacerlo en esta columna. Como resultado, si la primera asignación para un candidato específico comienza después de un intervalo de 4 días, el valor vendrá como 0 para la primera asignación para el candidato. Pero lo ideal sería 1 como su primera asignación para ese candidato.

A continuación encontrará los datos de la muestra.

Por favor, vea la 2a fila. El valor de "menos thn o igual a 4" viene como 0 ya que no puedo pasar el contexto candidato y su simplemente considerando Index.

Ese valor debería ser 1.

Gracias de antemano!

AssignmentStartDateAssignmentEndDateCandidatoNoÍndiceMenos thn o igual a 4Count 0 ValorGroupStartDateGroupEndDate
Lunes, 13 de marzo de 2000Viernes, 16 de junio de 20001113261 Lunes, 13 de marzo de 2000Viernes, 16 de junio de 2000
Lunes 30 de octubre de 2000Domingo, 27 de enero de 200222232701Lunes 30 de octubre de 2000Domingo, 10 de febrero de 2002
lunes, 28 de enero de 2002Domingo, 10 de febrero de 200222232811Lunes 30 de octubre de 2000Domingo, 10 de febrero de 2002
Lunes, 22 de abril de 2002Martes, 31 de diciembre de 200222232902Lunes, 22 de abril de 2002Martes, 30 de septiembre de 2003
Miércoles, 1 de enero de 2003lunes, 31 de marzo de 200322233012Lunes, 22 de abril de 2002Martes, 30 de septiembre de 2003
Martes, 1 de abril de 2003Martes, 30 de septiembre de 200322233112Lunes, 22 de abril de 2002Martes, 30 de septiembre de 2003
Lunes, 14 de julio de 2003Viernes, 26 de septiembre de 200322233212Lunes, 22 de abril de 2002Martes, 30 de septiembre de 2003
Miércoles, 1 de octubre de 2003Sábado, 31 de enero de 200422233303Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Miércoles, 1 de octubre de 2003Sábado, 31 de enero de 200422233413Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Domingo, 1 de febrero de 2004Miércoles 30 de junio de 200422233513Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Domingo, 1 de febrero de 2004Domingo, 11 de julio de 200422233613Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Jueves, 1 de julio de 2004Domingo, 27 de febrero de 200522233713Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Lunes, 12 de julio de 2004Viernes, 1 de julio de 200522233813Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Sábado, 2 de julio de 2005Domingo, 2 de julio de 200622233913Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Lunes, 3 de julio de 2006Lunes, 2 de julio de 200722234013Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Martes, 3 de julio de 2007lunes, 30 de junio de 200822234113Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Martes, 1 de julio de 2008Domingo, 6 de julio de 200822234213Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
lunes, 7 de julio de 2008Martes, 30 de junio de 200922234313Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Miércoles, 1 de julio de 2009Jueves, 31 de diciembre de 200922234413Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Viernes, 1 de enero de 2010Miércoles, 30 de junio de 201022234513Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Jueves, 1 de julio de 2010Viernes, 31 de diciembre de 201022234613Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Sábado, 1 de enero de 2011Sábado, 31 de diciembre de 201122234713Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Domingo, 1 de enero de 2012Domingo, 30 de diciembre de 201222234813Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
lunes, 31 de diciembre de 2012Viernes, 8 de febrero de 201322234913Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Sábado, 9 de febrero de 2013Viernes, 24 de mayo de 201322235013Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
lunes, 27 de mayo de 2013martes, 31 de diciembre de 201322235113Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Miércoles, 1 de enero de 2014Viernes, 27 de junio de 201422235213Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
martes, 1 de julio de 2014martes, 30 de septiembre de 201422235313Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Miércoles, 1 de octubre de 2014Viernes, 31 de octubre de 201422235413Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Sábado, 1 de noviembre de 2014Viernes, 14 de noviembre de 201422235513Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014

View solution in original post

Anonymous
Not applicable

He ajustado "Es menor que o eq 4" como se muestra a continuación y su funcionamiento como se esperaba.

¡Muchas gracias por toda su ayuda!

Is less than or eq 4 = 
VAR PreviousIndex = [Index] - 1
VAR ThisStartDate = [AssignmentStartDate]
VAR PreviuosEndDate =
CALCULATE (
MAX ( 'Table'[AssignmentEndDate] ),
FILTER ( 'Table', 'Table'[Index] = PreviousIndex )
)
VAR DateDiff_ =
DATEDIFF ( PreviuosEndDate, ThisStartDate, DAY ) + 0
VAR FirstIndex =
CALCULATE(MIN('Table'[Index]),ALLEXCEPT('Table','Table'[CandidateNo]))
VAR Flag=IF(NoOFDays<=56,1,0)
Return
IF('Table'[Index]=FirstIndex,1,Flag)

View solution in original post

12 REPLIES 12
Anonymous
Not applicable

Hola a todos,

¡Gracias por toda tu ayuda!

He creado GroupStartDate y GroupEndDate de una manera muy fácil usando allexcept y funcionando como se esperaba.

A continuación encontrará todas las columnas calculadas:

Is less than or eq 4 = 
VAR PreviousIndex = [Index] - 1
VAR ThisStartDate = [AssignmentStartDate]
VAR PreviuosEndDate =
    CALCULATE (
        MAX ( 'Table'[AssignmentEndDate] ),
        FILTER ( 'Table', 'Table'[Index] = PreviousIndex )
    )
VAR DateDiff_ =
    DATEDIFF ( PreviuosEndDate, ThisStartDate, DAY ) + 0
RETURN
    IF ( DateDiff_ <= 4, 1, 0 )

Count 0 Value = 
    VAR _CandidateNo ='Table'[CandidateNo]
    VAR _index = 'Table'[Index]
RETURN

COUNTROWS( 
     FILTER ('Table',
             'Table'[CandidateNo] = _CandidateNo &&
             'Table'[Is less than or eq 4] = 0 && 
             'Table'[Index]<= _index)
    )

GroupStartDate Column = 
CALCULATE (
    MIN ( 'Table'[AssignmentStartDate] ),
    ALLEXCEPT('Table','Table'[CandidateNo],'Table'[Count 0 Value])
)

GroupEndDate Column = 
CALCULATE (
    MAX ( 'Table'[AssignmentEndDate] ),
    ALLEXCEPT('Table','Table'[CandidateNo],'Table'[Count 0 Value])
)

El único problema que estoy enfrentando es que la primera columna "Es menor que o eq 4" no hay ninguna condición para el candidato. Pude considerar el contexto de candidato en todas las demás columnas, pero no pude hacerlo en esta columna. Como resultado, si la primera asignación para un candidato específico comienza después de un intervalo de 4 días, el valor vendrá como 0 para la primera asignación para el candidato. Pero lo ideal sería 1 como su primera asignación para ese candidato.

A continuación encontrará los datos de la muestra.

Por favor, vea la 2a fila. El valor de "menos thn o igual a 4" viene como 0 ya que no puedo pasar el contexto candidato y su simplemente considerando Index.

Ese valor debería ser 1.

Gracias de antemano!

AssignmentStartDateAssignmentEndDateCandidatoNoÍndiceMenos thn o igual a 4Count 0 ValorGroupStartDateGroupEndDate
Lunes, 13 de marzo de 2000Viernes, 16 de junio de 20001113261 Lunes, 13 de marzo de 2000Viernes, 16 de junio de 2000
Lunes 30 de octubre de 2000Domingo, 27 de enero de 200222232701Lunes 30 de octubre de 2000Domingo, 10 de febrero de 2002
lunes, 28 de enero de 2002Domingo, 10 de febrero de 200222232811Lunes 30 de octubre de 2000Domingo, 10 de febrero de 2002
Lunes, 22 de abril de 2002Martes, 31 de diciembre de 200222232902Lunes, 22 de abril de 2002Martes, 30 de septiembre de 2003
Miércoles, 1 de enero de 2003lunes, 31 de marzo de 200322233012Lunes, 22 de abril de 2002Martes, 30 de septiembre de 2003
Martes, 1 de abril de 2003Martes, 30 de septiembre de 200322233112Lunes, 22 de abril de 2002Martes, 30 de septiembre de 2003
Lunes, 14 de julio de 2003Viernes, 26 de septiembre de 200322233212Lunes, 22 de abril de 2002Martes, 30 de septiembre de 2003
Miércoles, 1 de octubre de 2003Sábado, 31 de enero de 200422233303Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Miércoles, 1 de octubre de 2003Sábado, 31 de enero de 200422233413Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Domingo, 1 de febrero de 2004Miércoles 30 de junio de 200422233513Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Domingo, 1 de febrero de 2004Domingo, 11 de julio de 200422233613Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Jueves, 1 de julio de 2004Domingo, 27 de febrero de 200522233713Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Lunes, 12 de julio de 2004Viernes, 1 de julio de 200522233813Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Sábado, 2 de julio de 2005Domingo, 2 de julio de 200622233913Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Lunes, 3 de julio de 2006Lunes, 2 de julio de 200722234013Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Martes, 3 de julio de 2007lunes, 30 de junio de 200822234113Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Martes, 1 de julio de 2008Domingo, 6 de julio de 200822234213Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
lunes, 7 de julio de 2008Martes, 30 de junio de 200922234313Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Miércoles, 1 de julio de 2009Jueves, 31 de diciembre de 200922234413Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Viernes, 1 de enero de 2010Miércoles, 30 de junio de 201022234513Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Jueves, 1 de julio de 2010Viernes, 31 de diciembre de 201022234613Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Sábado, 1 de enero de 2011Sábado, 31 de diciembre de 201122234713Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Domingo, 1 de enero de 2012Domingo, 30 de diciembre de 201222234813Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
lunes, 31 de diciembre de 2012Viernes, 8 de febrero de 201322234913Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Sábado, 9 de febrero de 2013Viernes, 24 de mayo de 201322235013Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
lunes, 27 de mayo de 2013martes, 31 de diciembre de 201322235113Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Miércoles, 1 de enero de 2014Viernes, 27 de junio de 201422235213Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
martes, 1 de julio de 2014martes, 30 de septiembre de 201422235313Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Miércoles, 1 de octubre de 2014Viernes, 31 de octubre de 201422235413Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Sábado, 1 de noviembre de 2014Viernes, 14 de noviembre de 201422235513Miércoles, 1 de octubre de 2003Viernes, 14 de noviembre de 2014
Anonymous
Not applicable

He ajustado "Es menor que o eq 4" como se muestra a continuación y su funcionamiento como se esperaba.

¡Muchas gracias por toda su ayuda!

Is less than or eq 4 = 
VAR PreviousIndex = [Index] - 1
VAR ThisStartDate = [AssignmentStartDate]
VAR PreviuosEndDate =
CALCULATE (
MAX ( 'Table'[AssignmentEndDate] ),
FILTER ( 'Table', 'Table'[Index] = PreviousIndex )
)
VAR DateDiff_ =
DATEDIFF ( PreviuosEndDate, ThisStartDate, DAY ) + 0
VAR FirstIndex =
CALCULATE(MIN('Table'[Index]),ALLEXCEPT('Table','Table'[CandidateNo]))
VAR Flag=IF(NoOFDays<=56,1,0)
Return
IF('Table'[Index]=FirstIndex,1,Flag)
Icey
Community Support
Community Support

Hola @Developer_2202 ,

En primer lugar, agregue una columna Index en Power Query Editor.

Y luego, intente crear columnas calculadas de la siguiente manera:

Is less than or eq 4 = 
VAR PreviousIndex = [Index] - 1
VAR ThisStartDate = [AssignmentStartDate]
VAR PreviuosEndDate =
    CALCULATE (
        MAX ( 'Table'[AssignmentEndDate] ),
        FILTER ( 'Table', 'Table'[Index] = PreviousIndex )
    )
VAR DateDiff_ =
    DATEDIFF ( PreviuosEndDate, ThisStartDate, DAY ) + 0
RETURN
    IF ( DateDiff_ <= 4, 1, 0 )
Count 0 Value = 
CALCULATE (
    COUNT ( 'Table'[Is less than or eq 4] ),
    FILTER (
        'Table',
        'Table'[Is less than or eq 4] = 0
            && 'Table'[Index] <= EARLIER ( 'Table'[Index] )
    )
)
GroupStartDate Column =
CALCULATE (
    MIN ( 'Table'[AssignmentStartDate] ),
    FILTER (
        ALL ( 'Table' ),
        'Table'[Index] <= EARLIER ( 'Table'[Index] )
            && 'Table'[Count 0 Value] = EARLIER ( 'Table'[Count 0 Value] )
    )
)
GroupEndDate Column =
CALCULATE (
    MAX ( 'Table'[AssignmentEndDate] ),
    FILTER (
        ALL ( 'Table' ),
        'Table'[Index] >= EARLIER ( 'Table'[Index] )
            && 'Table'[Count 0 Value] = EARLIER ( 'Table'[Count 0 Value] )
    )
)

column.PNG

Para obtener más detalles, consulte el archivo .pbix adjunto.

Saludos

Icey

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Anonymous
Not applicable

Gracias por la respuesta!

Estoy obteniendo el resultado esperado mediante el uso de la solución anterior en caso de que restrinja los datos para digamos 2 candidatos (alrededor de 10 filas).

Tengo alrededor de 70 mil filas en mis datos y obtendré un error de memoria al calcular la columna "count 0".

¿Hay alguna manera de ajustarlo?

Esperando tu respuesta.

Gracias de antemano!

El código proporcionado no usa CandidateNo (bastante correcto ya que los datos proporcionados tienen el mismo candidateNo).

Los datos reales tendrán diferentes Candidatos. ¿Las nuevas columnas de grupo dependen del candidato?

En otras palabras, si el requisito real es"Si la siguiente asignación del mismo candidato está comenzando en menos de 4 días, entonces debe estar en un grupo o de lo contrario se debe iniciar un nuevo grupo".

entonces el código se puede modificar para usar el CandidateNo. Esto acelerará las cosas y usará menos memoria. Sugiero probar con menos de 70 mil filas.

Si las columnas de grupo no dependen de CandidateNo, por favor ignóreme (!)

Anonymous
Not applicable

¡Disculpas!

Eso fue mi mal que me olvidé de mencionar que habrá varios usuarios.

He alterado la columna de recuento 0 como:

Recuento 0 Valor ?
CALCULAR (
COUNT ( 'Tabla'[Es menor o eq 4] ),
FILTRO (
'Mesa',
'Tabla'[Es menor que o eq 4] á 0
&& 'Tabla'[índice] <- EARLIER ( 'Tabla'[índice] )
&& 'Tabla'[CandidateNo] - EARLIER ( 'Table'[CandidateNo])
)
)
Solicitar que por favor háganos saber si podemos modificar dax que dará un resultado más rápido.
¡Gracias!

¿El DAX devolvió el resultado correcto? ¿Ningún error?

¿Qué columna necesita una mejora del rendimiento?

Anonymous
Not applicable

Hola

Cuando se prueba para 3 candidatos (alrededor de 15 filas) con alterado "conteo 0" columna mencionada por mí en el post anterior está dando el resultado deseado.

Pero cuando estoy probando datos completos (70K filas) estoy recibiendo error en el cálculo de la columna "Count 0" sí mismo y por lo tanto incapaz de alcanzar el resultado.

Me está dando error como problema de memoria.

Como usted mencionó si va a haber agrupación para cada candidato, entonces podemos ajustar el Dax para dar un resultado más rápido.

Sí, habrá agrupación para cada candidato.

Solicitarle que por favor ayude a ajustar DAX.

Espero tener sentido.

Gracias de antemano!

He llegado a esto para eliminar la transición de contexto

ColumnTest = 
    VAR _CandidateNo = TableA[CandidateNo]
    VAR _index = TableA[Index]
RETURN

COUNTROWS( 
     FILTER (TableA,
             TableA[CandidateNo] = _CandidateNo &&
             TableA[Is less than or eq 4] = 0 && 
             TableA[Index] <= _index)
    )

No lo he probado para el rendimiento, así que mira cómo te llevas.

Más consejos de rendimiento:

1. cree las columnas en Power Query en su lugar.

2. Utilice medidas en lugar de columnas calculadas

3. Desactive 'Fecha/hora automática' en Opciones

4. Asegúrese de que los campos de fecha son Tipo de fecha (no fecha/hora - si no lo necesita)

5. Reduzca las columnas de la tabla Fact (No hay muchos en los datos de muestra proporcionados, pero tal vez los datos reales tienen más)

Anonymous
Not applicable

Hi @HotChilli

 

Thank you very much for help! Much appreciated 🙂

 

The DAX provided by you actually worked and giving me same result for Count 0 as previous.

 

But now next column which needs to be calculated is giving me performance error. I tried to tweak it as suggested by you for count 0 column but unfortunately no luck. Please find below changes done by me.

 

Old :

GroupStartDate Column =
CALCULATE (
MIN ( 'Table'[AssignmentStartDate] ),
FILTER (
ALL ( 'Table' ),
'Table'[Index] <= EARLIER ( 'Table'[Index] )
&& 'Table'[Count 0 Value] = EARLIER ( 'Table'[Count 0 Value] )
)
)
 
New:
Column =
VAR _Index= 'Table'[Index]
VAR _count0= 'Table'[Count 0 Value]
Return
CALCULATE(MIN('Table'[AssignmentStartDate]),
Filter('Table',
'Table'[Count 0 Value]=_count0 &&
'Table'[Index]<=_Index)
)
 
On the test data the new one is giving be same result as old but in my actual data I am facing memory issue.
I have removed not required extra columns from table and also converted datetime to date.
 
Thanks in Advance!
 

 

 

@Developer_2202 , Vea si este archivo puede ayudar.

https://www.dropbox.com/s/8rzsbh7mzbc59wm/Continuous_Streak_discont_dates.pbix?dl=0

Me perdí pocas actualizaciones en el medio, así que todavía en línea con la solución inicial

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.