Forum Discussion

Jos13's avatar
Jos13
Helper III
6 years ago
Solved

Datediff

Hola equipo,

Tengo los siguientes datos

table.png

Sólo quería contar esos registros con el estado "IN" y la diferencia de tiempo entre las fechas > 30 minutos para el mismo número de teléfono móvil. En este ejemplo, la salida esperada es 2. Uno para 771234 y 1 de 6671.

Estaba intentando algo como esto:

Medidas ?
CALCULAR (
COUNTROWS ( 'Tabla'),
'Tabla'[Estado] á "IN",
DATEDIFF ( 'Tabla'[Fecha], ANTES ( 'Tabla'[Fecha] ), MINUTO ) > 30
)

Pero eso está mal.

Por favor, ayúdame a resolver esto.

Gracias

11 Replies

  • tex628's avatar
    tex628
    Community Champion

    ¿Te perdiste una columna en tu foto? Sólo hay una fecha presente

    /j

    • Jos13's avatar
      Jos13
      Helper III

      Hola @tex628 ,

      Solo hay una columna de fecha en la tabla. Indica la fecha y hora en que llegó un problema. Sólo quería contar los problemas sólo una vez que venían del mismo número de teléfono móvil en 30 minutos. Las cuestiones con el estado "IN" se tienen en cuenta para el cálculo.

      Gracias

      Si

      • tex628's avatar
        tex628
        Community Champion

        Bien

        Así que si hay 5 IN llama para el mismo número, ¿están los 1 en el lugar correcto?:

        10:00 - 1

        10:15
        12:15 - 1
        12:30
        13:15 - 1

  • @Jos13 , Crear una columna como

    time diff (maxx(filter(table, [mobile] ?earlier([mobile]) && [status] ?"Out" && [status] <>earlier([status]) && & & & earlier([Date])),[Date]),[Date]], minute)

    Esto cronor tubteará en minutos, es necesario comprobar para > 30

  • fhill's avatar
    fhill
    Resident Rockstar

    Hago algo en pequeños pasos, así que este es sólo mi estilo, y tal vez alguien puede agregar a esto para corregir el error de datos de entrada / salida potencial?

    Tenemos que definir un 'OutTime' entonces usted puede DateDifff e ir desde allí...

    OutTime á IF('Table'[Status] á "IN",
    CALCULATE(MIN('Table'[DateTime]), FILTER('Table', 'Table'[Mobile'] á EARLIER('Table'[Mobile-]) && 'Table'[Status] á "OUT" && 'Table'[DateTime] > EARLIER('Table'[DateTime])))

    Una vez que haya extraído OutTimes en una nueva columna, puede DateDiff las dos columnas (espacios en blanco en el OutTime en blanco el DateDiff)

    DateDiff - DATEDIFF('Table'[DateTime], 'Table'[OutTime], MINUTE)
    Finalmente, sólo la declaración IF el recuento (que podría combinarse fácilmente con el último paso...
    ¿Más de 30? • IF('Table'[DateDiff] > 30, 1)

    image.png

  • Icey's avatar
    Icey
    Community Support

    Hola @Jos13 ,


    En este ejemplo, la salida esperada es 2. Uno para 771234 y 1 de 6671.

    No entiendo muy bien tu lógica de cálculo. ¿Cómo se obtiene el resultado de 2? ¿Qué fila cumple con sus requisitos? ¿Puedes explicarlo con más detalle para mí?

    Saludos

    Icey