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.
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.
AssignmentStartDate | AssignmentEndDate | CandidatoNo | GroupStartDate | GroupEndDate |
06-04-2010 | 06-10-2010 | 123 | 06-04-2020 | 27-02-2011 |
07-10-2010 | 12-11-2010 | 123 | 06-04-2020 | 27-02-2011 |
13-11-2010 | 27-02-2011 | 123 | 06-04-2020 | 27-02-2011 |
25-07-2011 | 31-12-2011 | 123 | 25-07-2011 | 15-04-2012 |
03-01-2012 | 15-04-2012 | 123 | 25-07-2011 | 15-04-2012 |
Solicite que por favor le ayude aquí.
¡Gracias!
Solved! Go to Solution.
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] )
)
)
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.
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)
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!
AssignmentStartDate | AssignmentEndDate | CandidatoNo | Índice | Menos thn o igual a 4 | Count 0 Valor | GroupStartDate | GroupEndDate |
Lunes, 13 de marzo de 2000 | Viernes, 16 de junio de 2000 | 111 | 326 | 1 | Lunes, 13 de marzo de 2000 | Viernes, 16 de junio de 2000 | |
Lunes 30 de octubre de 2000 | Domingo, 27 de enero de 2002 | 222 | 327 | 0 | 1 | Lunes 30 de octubre de 2000 | Domingo, 10 de febrero de 2002 |
lunes, 28 de enero de 2002 | Domingo, 10 de febrero de 2002 | 222 | 328 | 1 | 1 | Lunes 30 de octubre de 2000 | Domingo, 10 de febrero de 2002 |
Lunes, 22 de abril de 2002 | Martes, 31 de diciembre de 2002 | 222 | 329 | 0 | 2 | Lunes, 22 de abril de 2002 | Martes, 30 de septiembre de 2003 |
Miércoles, 1 de enero de 2003 | lunes, 31 de marzo de 2003 | 222 | 330 | 1 | 2 | Lunes, 22 de abril de 2002 | Martes, 30 de septiembre de 2003 |
Martes, 1 de abril de 2003 | Martes, 30 de septiembre de 2003 | 222 | 331 | 1 | 2 | Lunes, 22 de abril de 2002 | Martes, 30 de septiembre de 2003 |
Lunes, 14 de julio de 2003 | Viernes, 26 de septiembre de 2003 | 222 | 332 | 1 | 2 | Lunes, 22 de abril de 2002 | Martes, 30 de septiembre de 2003 |
Miércoles, 1 de octubre de 2003 | Sábado, 31 de enero de 2004 | 222 | 333 | 0 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Miércoles, 1 de octubre de 2003 | Sábado, 31 de enero de 2004 | 222 | 334 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Domingo, 1 de febrero de 2004 | Miércoles 30 de junio de 2004 | 222 | 335 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Domingo, 1 de febrero de 2004 | Domingo, 11 de julio de 2004 | 222 | 336 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Jueves, 1 de julio de 2004 | Domingo, 27 de febrero de 2005 | 222 | 337 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Lunes, 12 de julio de 2004 | Viernes, 1 de julio de 2005 | 222 | 338 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Sábado, 2 de julio de 2005 | Domingo, 2 de julio de 2006 | 222 | 339 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Lunes, 3 de julio de 2006 | Lunes, 2 de julio de 2007 | 222 | 340 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Martes, 3 de julio de 2007 | lunes, 30 de junio de 2008 | 222 | 341 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Martes, 1 de julio de 2008 | Domingo, 6 de julio de 2008 | 222 | 342 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
lunes, 7 de julio de 2008 | Martes, 30 de junio de 2009 | 222 | 343 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Miércoles, 1 de julio de 2009 | Jueves, 31 de diciembre de 2009 | 222 | 344 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Viernes, 1 de enero de 2010 | Miércoles, 30 de junio de 2010 | 222 | 345 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Jueves, 1 de julio de 2010 | Viernes, 31 de diciembre de 2010 | 222 | 346 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Sábado, 1 de enero de 2011 | Sábado, 31 de diciembre de 2011 | 222 | 347 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Domingo, 1 de enero de 2012 | Domingo, 30 de diciembre de 2012 | 222 | 348 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
lunes, 31 de diciembre de 2012 | Viernes, 8 de febrero de 2013 | 222 | 349 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Sábado, 9 de febrero de 2013 | Viernes, 24 de mayo de 2013 | 222 | 350 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
lunes, 27 de mayo de 2013 | martes, 31 de diciembre de 2013 | 222 | 351 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Miércoles, 1 de enero de 2014 | Viernes, 27 de junio de 2014 | 222 | 352 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
martes, 1 de julio de 2014 | martes, 30 de septiembre de 2014 | 222 | 353 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Miércoles, 1 de octubre de 2014 | Viernes, 31 de octubre de 2014 | 222 | 354 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Sábado, 1 de noviembre de 2014 | Viernes, 14 de noviembre de 2014 | 222 | 355 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
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)
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!
AssignmentStartDate | AssignmentEndDate | CandidatoNo | Índice | Menos thn o igual a 4 | Count 0 Valor | GroupStartDate | GroupEndDate |
Lunes, 13 de marzo de 2000 | Viernes, 16 de junio de 2000 | 111 | 326 | 1 | Lunes, 13 de marzo de 2000 | Viernes, 16 de junio de 2000 | |
Lunes 30 de octubre de 2000 | Domingo, 27 de enero de 2002 | 222 | 327 | 0 | 1 | Lunes 30 de octubre de 2000 | Domingo, 10 de febrero de 2002 |
lunes, 28 de enero de 2002 | Domingo, 10 de febrero de 2002 | 222 | 328 | 1 | 1 | Lunes 30 de octubre de 2000 | Domingo, 10 de febrero de 2002 |
Lunes, 22 de abril de 2002 | Martes, 31 de diciembre de 2002 | 222 | 329 | 0 | 2 | Lunes, 22 de abril de 2002 | Martes, 30 de septiembre de 2003 |
Miércoles, 1 de enero de 2003 | lunes, 31 de marzo de 2003 | 222 | 330 | 1 | 2 | Lunes, 22 de abril de 2002 | Martes, 30 de septiembre de 2003 |
Martes, 1 de abril de 2003 | Martes, 30 de septiembre de 2003 | 222 | 331 | 1 | 2 | Lunes, 22 de abril de 2002 | Martes, 30 de septiembre de 2003 |
Lunes, 14 de julio de 2003 | Viernes, 26 de septiembre de 2003 | 222 | 332 | 1 | 2 | Lunes, 22 de abril de 2002 | Martes, 30 de septiembre de 2003 |
Miércoles, 1 de octubre de 2003 | Sábado, 31 de enero de 2004 | 222 | 333 | 0 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Miércoles, 1 de octubre de 2003 | Sábado, 31 de enero de 2004 | 222 | 334 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Domingo, 1 de febrero de 2004 | Miércoles 30 de junio de 2004 | 222 | 335 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Domingo, 1 de febrero de 2004 | Domingo, 11 de julio de 2004 | 222 | 336 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Jueves, 1 de julio de 2004 | Domingo, 27 de febrero de 2005 | 222 | 337 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Lunes, 12 de julio de 2004 | Viernes, 1 de julio de 2005 | 222 | 338 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Sábado, 2 de julio de 2005 | Domingo, 2 de julio de 2006 | 222 | 339 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Lunes, 3 de julio de 2006 | Lunes, 2 de julio de 2007 | 222 | 340 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Martes, 3 de julio de 2007 | lunes, 30 de junio de 2008 | 222 | 341 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Martes, 1 de julio de 2008 | Domingo, 6 de julio de 2008 | 222 | 342 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
lunes, 7 de julio de 2008 | Martes, 30 de junio de 2009 | 222 | 343 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Miércoles, 1 de julio de 2009 | Jueves, 31 de diciembre de 2009 | 222 | 344 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Viernes, 1 de enero de 2010 | Miércoles, 30 de junio de 2010 | 222 | 345 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Jueves, 1 de julio de 2010 | Viernes, 31 de diciembre de 2010 | 222 | 346 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Sábado, 1 de enero de 2011 | Sábado, 31 de diciembre de 2011 | 222 | 347 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Domingo, 1 de enero de 2012 | Domingo, 30 de diciembre de 2012 | 222 | 348 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
lunes, 31 de diciembre de 2012 | Viernes, 8 de febrero de 2013 | 222 | 349 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Sábado, 9 de febrero de 2013 | Viernes, 24 de mayo de 2013 | 222 | 350 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
lunes, 27 de mayo de 2013 | martes, 31 de diciembre de 2013 | 222 | 351 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Miércoles, 1 de enero de 2014 | Viernes, 27 de junio de 2014 | 222 | 352 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
martes, 1 de julio de 2014 | martes, 30 de septiembre de 2014 | 222 | 353 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Miércoles, 1 de octubre de 2014 | Viernes, 31 de octubre de 2014 | 222 | 354 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
Sábado, 1 de noviembre de 2014 | Viernes, 14 de noviembre de 2014 | 222 | 355 | 1 | 3 | Miércoles, 1 de octubre de 2003 | Viernes, 14 de noviembre de 2014 |
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)
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] )
)
)
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.
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 (!)
¡Disculpas!
Eso fue mi mal que me olvidé de mencionar que habrá varios usuarios.
He alterado la columna de recuento 0 como:
¿El DAX devolvió el resultado correcto? ¿Ningún error?
¿Qué columna necesita una mejora del rendimiento?
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)
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 :
@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
@Developer_2202, consulte si esto puede ayudar a
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
1 | |
1 |