Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
4 years ago
Solved

Ayuda de Max Count

Tengo datos que muestran la ubicación, el turno y el día de la semana, y el ID del cliente.

Lo que estoy tratando de lograr es encontrar el número máximo de clientes en cualquier día y cualquier turno para determinar el límite máximo de clientes en una ubicación.

Así que puedo decir que en cualquier turno y en cualquier día esta ubicación puede albergar x cantidad de clientes. En el ejemplo siguiente, el máximo sería 3 en la ubicación A. Si puedo hacer esto en una Medida, eso sería preferible. Cualquier ayuda es muy apreciada.

Mis datos se ven a continuación:

UbicaciónTurnoDía laborableID de clienteMáx. (Salida deseada)
A

1

Lunes13
A1Lunes23
A1Lunes33
A1Martes43
A2Lunes53
A2Martes63
A2Martes73
  • Esta versión debería ser más simple y eficiente:

    MaxCustomers = 
    MAXX (
        SUMMARIZE (
            CALCULATETABLE ( Data, ALLEXCEPT ( Data, Data[Location] ) ),
            Data[Location],
            Data[Shift],
            Data[Weekday],
            "@Count", COUNT ( Data[Customer ID] )
        ),
        [@Count]
    )

    Esto debería funcionar como una medida o una columna calculada.

3 Replies

  • Hola

    Por favor, compruebe la imagen de abajo y el archivo pbix adjunto.

    Picture1.png

    Salida máxima deseada: =

    VAR add_customerscount =
    ADDCOLUMNS (
    TODOS ( Datos ),
    "@customerscount",
    CALCULAR (
    VAR currentlocation =
    MAX ( Datos[Ubicación] )
    VAR currentshift =
    MAX ( Datos[Shift] )
    VAR currentweekday =
    MAX ( Datos [Día de la semana] )
    VAR newtable =
    FILTRO (
    TODOS ( Datos ),
    Datos[Ubicación] = ubicación actual
    && Data[Shift] = currentshift
    && Data[Weekday] = currentweekday
    )
    DEVOLUCIÓN
    COUNTROWS ( newtable )
    )
    )
    VAR findmax_customerscount =
    GROUPBY (
    add_customerscount,
    Datos[Ubicación],
    "@maxcustomerscount", MAXX ( CURRENTGROUP (), [@customerscount] )
    )
    DEVOLUCIÓN
    MAXX ( findmax_customerscount, [@maxcustomerscount] )
    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Esto parece que funciona, pero mi tabla tiene ~ 500k filas. No parece óptimo para esto. ¿Algún otro pensamiento o sugerencia?

  • Esta versión debería ser más simple y eficiente:

    MaxCustomers = 
    MAXX (
        SUMMARIZE (
            CALCULATETABLE ( Data, ALLEXCEPT ( Data, Data[Location] ) ),
            Data[Location],
            Data[Shift],
            Data[Weekday],
            "@Count", COUNT ( Data[Customer ID] )
        ),
        [@Count]
    )

    Esto debería funcionar como una medida o una columna calculada.