Forum Discussion

batmanadk's avatar
batmanadk
Icon for Helper I rankHelper I
5 years ago
Solved

Primer valor

He editado la publicación para tratar de que sea más clara. ¡Gracias!

Por lo tanto, Este es el informe de un restaurante y lo que estamos tratando de averiguar es qué camarero vendió la mayor parte del producto X. Así que los datos se generan cuando un usuario introduce su código e introduce un producto, que se considera un pedido, que entra en un TICKET.

Lo que sucede en el restaurante es que cada usuario es dueño de la mesa que primero espera y uno más, pero el cajero o supervisor puede entrar en esa tabla. El problema es que cada pedido tiene un usuario asociado, pero los tickets solo tienen el último usuario de vale registrado.

Hay algunos productos que sólo pueden ser introducidos por el cajero o supervisor, pero no por el personal de espera. Así que cuando hacemos un visual con los usuarios más vendidos de uno de esos productos, queremos ver a los usuarios de boletos clasificando, o al propietario de la entrada (es decir, al personal en espera o a la persona que introdujo un pedido por primera vez en un boleto) pero como cada pedido registra a un usuario diferente siempre obtenemos que el usuario más vendido es un supervisor o cajero.

Así es como se ve la tabla de pedidos.

TicketIdOrderidUsuarioProductoIngresos
11ACoca-Cola10
12AHamburguesa10
13ZEspecial10
24BHamburguesa10
25ZEspecial10
36CHamburguesa10
47DHamburguesa10
48ZEspecial10
59EHamburguesa10
510ESoda10
511ZEspecial10
612FHamburguesa10
713GHamburguesa10
714ZEspecial10

Esto es lo que estamos tratando de lograr algo como la columna "TicketUserOwner"

TicketIdOrderidUsuarioProductoIngresosTicketUserOwner
11ACoca-Cola10A
12AHamburguesa10A
13ZEspecial10A
24BHamburguesa10B
25ZEspecial10B
36CHamburguesa10C
47DHamburguesa10D
48ZEspecial10D
59EHamburguesa10E
510ESoda10E
511ZEspecial10E
612FHamburguesa10F
713GHamburguesa10G
714ZEspecial10G

Así que lo que está sucediendo es lo que estoy recibiendo en la mesa superior derecha, vs lo que necesitamos en la mesa inferior derecha.

Imagen Prueba Auto.jpg

He probado un poco de Dax usando antes y la búsqueda

Propietario de Entradas (TicketOwner)
VAR _PrevRow - LOOKUPVALUE(Orders[User],Orders[OrderId],Orders[OrderId]-1)
VAR _Idprevio - LOOKUPVALUE(Orders[TicketId] , Orders[OrderId], Orders[OrderId]-1)
devolución
SI(
Orders[OrderId] á _Idprevio ,Orders[User],Orders[User])
El archivo Pbi adjunto se encuentra en el siguiente enlace:
  • Hola, @batmanadk

    De acuerdo con su descripción y datos de muestra, creo que desea obtener una columna [Propietario del usuario de entrada] que es el primer grupo de usuarios por identificador de entrada, puede probar esta columna calculada:

    TicketUserOwner1 =
    
    var _minorderid=
    
    CALCULATE(MIN('Orders'[OrderId]),FILTER('Orders',[TicketId]=EARLIER(Orders[TicketId])))
    
    return
    
    CALCULATE(MIN('Orders'[User]),FILTER('Orders',[OrderId]=_minorderid))

    A continuación, coloque la columna en el gráfico de tabla para reemplazar el original [TicketUserOwner], ordene por [Ingresos] desc, puede obtener lo que desea, como esta:

    v-robertq-msft_0-1607668864400.png

    Puede descargar mi archivo pbix de prueba aquí

    Saludos

    Equipo de apoyo a la comunidad _Robert Qin

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

4 Replies

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

    Hola, @batmanadk

    Según su descripción, puedo entender más o menos su expresión, pero estoy confundido acerca de lo que es el "personal más vendido (que no es el supervisor)", no puedo obtener información clara a través de la tabla de muestra que publicó. Tampoco puedo encontrar su archivo de escritorio PBI de ejemplo. ¿Desea echar un vistazo y publicar el archivo de ejemplo y explicar su requisito en detalle (usando algunas imágenes para mostrar la salida esperada)?

    ¡Muchas gracias!

    Cómo obtener respuestas a su pregunta rápidamente

    Saludos

    Equipo de apoyo a la comunidad _Robert Qin

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

    • batmanadk's avatar
      batmanadk
      Icon for Helper I rankHelper I

      Estoy recibiendo un mensaje de error al intentar responder con todos los detalles, he editado la publicación original, espero que sea más clara. Thnaks mucho

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

    Hola, @batmanadk

    De acuerdo con su descripción y datos de muestra, creo que desea obtener una columna [Propietario del usuario de entrada] que es el primer grupo de usuarios por identificador de entrada, puede probar esta columna calculada:

    TicketUserOwner1 =
    
    var _minorderid=
    
    CALCULATE(MIN('Orders'[OrderId]),FILTER('Orders',[TicketId]=EARLIER(Orders[TicketId])))
    
    return
    
    CALCULATE(MIN('Orders'[User]),FILTER('Orders',[OrderId]=_minorderid))

    A continuación, coloque la columna en el gráfico de tabla para reemplazar el original [TicketUserOwner], ordene por [Ingresos] desc, puede obtener lo que desea, como esta:

    v-robertq-msft_0-1607668864400.png

    Puede descargar mi archivo pbix de prueba aquí

    Saludos

    Equipo de apoyo a la comunidad _Robert Qin

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