Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
5 years ago
Solved

Contar con condiciones

Hola

Necesidad de contar las entradas de columna 'carerid' con algunas condiciones aplicadas en función de la columna 'startdate'.

Condiciones

  • Cada carerid se cuenta al menos una vez.
  • Sólo cuente carerid más de una vez si hay más de 1 día entre el próximo 'startdate' para ese 'carerid'.

Qotsa_0-1615381282011.png

He probado esta medida, pero no devuelve ningún resultado y entiendo por qué, ya que está comparando los mismos valores.

Prueba = CALCULATE(COUNT('powerbi114 holidays'[carerId]),DATEDIFF('powerbi114 holidays'[startDate],'powerbi114 holidays'[startDate],DAY) > 1)

  • Syndicate_Admin's avatar
    Syndicate_Admin
    5 years ago

    @Qotsa

    actualizado el DAX,

    por favor, compruebe si es correcto ahora

    Column = 
    VAR _minindex=minx(FILTER('powerbi114 holidays','powerbi114 holidays'[carerid]=EARLIER('powerbi114 holidays'[carerId])),'powerbi114 holidays'[Index])
    return  if('powerbi114 holidays'[Index]=_minindex,1,if('powerbi114 holidays'[startdate]-MAXX(FILTER('powerbi114 holidays','powerbi114 holidays'[Index]=EARLIER('powerbi114 holidays'[Index])-1),'powerbi114 holidays'[startdate])>1,1,0))

7 Replies

  • @Qotsa, trate de

    Prueba = CALCULATE(COUNTX(filter(values('powerbi114 holidays'[carerId]),DATEDIFF(min('powerbi114 holidays'[startDate]),max('powerbi114 holidays'[startDate]),DAY) > 1),[carerId]))

    O

    Prueba = CALCULATE(COUNTX(filter(values('powerbi114 holidays'[carerId]),DATEDIFF(min('powerbi114 holidays'[startDate]),max('powerbi114 holidays'[startDate]),DAY) > 1),[carerId]), allexcept('powerbi114 holidays'[carerId]))

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Administrator

      @ryan_mayu

      Sí, la fecha es dd/mm/aaaa.

      carerid = 1 porque no hay mayor de 1 día entre cada entrada.


      Si las fechas fueran

      05/03/21

      06/03/21

      08/03/21

      05 y 06 se cuenta como 1

      08 se cuenta como 1 como mayor que 1 día entre 06 y 08.

      el resultado deseado es = 2

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Administrator

        @Qotsa

        aquí hay una palabra alternativa para usted.

        1. cree una columna de índice en PQ

        2. utilice DAX para crear una columna

        Column = 
        VAR _minindex=minx(FILTER('Table','Table'[careid]=EARLIER('Table'[careid])),'Table'[Index])
        return if('Table'[Index]=_minindex,1,if(MAXX(FILTER('Table','Table'[Index]=EARLIER('Table'[Index])+1),'Table'[startdate])-'Table'[startdate]>1,1,0))
        

        1.PNG