Forum Discussion

JimJim's avatar
JimJim
Icon for Responsive Resident rankResponsive Resident
5 years ago
Solved

Problema con TODOS

Hola, chicos

Tengo la siguiente medida:

Total > 2 days = 
VAR MinDate = MIN(DateMaster[Date])
RETURN
    COUNTROWS(FILTER('Service Appointment',
    'Service Appointment'[IsWIP]=1 && 
    'Service Appointment'[WIP Days] > 2 &&
    'Service Appointment'[Actual Start Time] > MinDate))

En la parte superior de la página hay una segmentación de fecha única donde un usuario selecciona un mes.

Si el valor de la segmentación de datos es Sep 2020, quiero que la medida calcule todas las filas donde la fecha de inicio real > 1 sep 2020.

Intenté añadir TODO a mi medida, así:

Total > 2 days = 
VAR MinDate = MIN(DateMaster[Date])
RETURN
    COUNTROWS(FILTER(ALL('Service Appointment'),
    'Service Appointment'[IsWIP]=1 && 
    'Service Appointment'[WIP Days] > 2 &&
    'Service Appointment'[Actual Start Time] > MinDate))

Y aunque esto devuelve el número correcto de filas, cuando lo agredo a una matriz y me muestra el número total en cada fila, así:

Screenshot 2020-11-05 154902.png

Nota: No puedo cambiar la segmentación de datos para mostrar solo los datos después de la fecha seleccionada, ya que otros objetos visuales usan la misma segmentación de datos.

  • Hola @JimJim ,

    Podemos crear una tabla de fechas que no tenga ninguna relación para satisfacer sus requisitos.

    1. Cree una tabla de fechas para que sea una segmentación de datos. Debe agregar la columna de nombre de mes y la columna de número de mes,

    Date = CALENDAR("2020/8/1","2020/12/31")

    issue1.jpg

    2. Entonces podemos crear una medida como esta,

    Measure = 
    var _select = SELECTEDVALUE('Date'[Month])
    var _mindate = CALCULATE(MIN('Date'[Date]),FILTER('Date','Date'[Month]=_select))
    return
    COUNTROWS(
        FILTER(ALLSELECTED('Service Appointment'),'Service Appointment'[Start Date]>_mindate))
    

    issue2.jpg

    issue3.jpg

    Si no cumple con sus requisitos, ¿podría mostrar el resultado esperado exacto basado en la tabla que ha compartido?

    Saludos

    Equipo de apoyo a la comunidad _ zhenbw

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

    BTW, pbix como adjunto.

6 Replies

  • @JimJim , tenga un filtro de fecha independiente y utilice solo la primera fórmula.

    Suponiendo la hora de inicio real unida con Date master

    Total > 2 days = 
    VAR MinDate = MIN(DateMaster[Date])
    RETURN
        COUNTROWS(FILTER(('Service Appointment'),
        'Service Appointment'[IsWIP]=1 && 
        'Service Appointment'[WIP Days] > 2 ,
        filter(all(DateMaster),DateMaster[Date]> MinDate))
    • JimJim's avatar
      JimJim
      Icon for Responsive Resident rankResponsive Resident

      Hola @amitchandak, gracias. Pero al recibir el mensaje de error 'Demasiados argumentos pasados a la función de filtro'

    • JimJim's avatar
      JimJim
      Icon for Responsive Resident rankResponsive Resident

      @amitchandak

      Edité tu DAX a esto

      Total > 2 days = 
      VAR MinDate = MIN(DateMaster[Date])
      RETURN
      COUNTROWS(FILTER('Service Appointment',
      'Service Appointment'[IsWIP]=1 && 
      'Service Appointment'[WIP Days] > 2 &&
      FILTER(ALL(DateMaster), DateMaster[Date] > MinDate )))

      Pero al obtener el error 'La expresión hace referencia a varias columnas. No se pueden convertir varias columnas en un valor escalar'

      Realmente aprecio tu ayuda con esto.

  • v-zhenbw-msft's avatar
    v-zhenbw-msft
    Icon for Community Support rankCommunity Support

    Hola @JimJim ,

    Podemos crear una tabla de fechas que no tenga ninguna relación para satisfacer sus requisitos.

    1. Cree una tabla de fechas para que sea una segmentación de datos. Debe agregar la columna de nombre de mes y la columna de número de mes,

    Date = CALENDAR("2020/8/1","2020/12/31")

    issue1.jpg

    2. Entonces podemos crear una medida como esta,

    Measure = 
    var _select = SELECTEDVALUE('Date'[Month])
    var _mindate = CALCULATE(MIN('Date'[Date]),FILTER('Date','Date'[Month]=_select))
    return
    COUNTROWS(
        FILTER(ALLSELECTED('Service Appointment'),'Service Appointment'[Start Date]>_mindate))
    

    issue2.jpg

    issue3.jpg

    Si no cumple con sus requisitos, ¿podría mostrar el resultado esperado exacto basado en la tabla que ha compartido?

    Saludos

    Equipo de apoyo a la comunidad _ zhenbw

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

    BTW, pbix como adjunto.

      • JimJim's avatar
        JimJim
        Icon for Responsive Resident rankResponsive Resident

        Mi antigua medida ahora está funcionando también, resulta que todo lo que tenía que hacer era eliminar las relaciones de mi tabla DateMaster.