Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
redhughes
Helper II
Helper II

Porcentaje de artículos asignados a los principales miembros del personal de X

Hola

Estamos tratando de averiguar la mejor manera de mostrar cuántos miembros del personal diferentes fueron asignados a un cliente en particular durante un período de tiempo, y qué porcentaje de esas asignaciones fueron realizadas por los principales miembros del personal X (en términos de conteo).

En la práctica nos gustaría poder decir "Joan Smith tenía 20 citas, y el 75% de ellos fueron asignados a 3 miembros del personal", y en última instancia "el 90% de nuestros clientes tenían al menos el 75% de sus nombramientos asignados a 3 miembros del personal".

Esto nos ayudará a asegurarnos de que los clientes están viendo las mismas caras, y construir buenas relaciones mientras los miembros del personal obtienen "conocimiento especializado".

¿Puedo obtener algunos consejos sobre cómo crear una medida que la calcule para los 3 o 4 miembros del personal principales (es decir, los valores 3 y 4 que se están fijando), y si es posible hacer de este valor una variable que puede seleccionar de una lista o entrar en el informe. Gracias de nuevo por todas sus entradas!!

Los datos se parecen un poco a esto:

PersonalClienteFechaHora
Staff1Joan Smith01/09/202010:00
Staff2Joan Smith01/09/202019:00
Staff1Joan Smith02/09/202010:00
Staff3Joan Smith02/09/202019:00
Staff1Joan Smith03/09/202010:00
Staff4Joan Smith03/09/202019:00
Staff1Joan Smith04/09/202010:00
Staff5Joan Smith04/09/202019:00
Staff1Joan Smith05/09/202010:00
Staff6Joan Smith05/09/202019:00
Staff1Joan Smith06/09/202010:00
Staff2Joan Smith06/09/202019:00
Staff1Joan Smith07/09/202010:00
Staff2Joan Smith07/09/202019:00
Staff1Joan Smith08/09/202010:00
Staff3Joan Smith08/09/202019:00
Staff1Joan Smith09/09/202010:00
Staff4Joan Smith09/09/202019:00
Staff1Joan Smith10/09/202010:00
Staff5Joan Smith10/09/202019:00
Staff1John Smith01/09/202008:00
Staff1John Smith01/09/202017:00
Staff3John Smith02/09/202008:00
Staff1John Smith02/09/202017:00
Staff4John Smith03/09/202008:00
Staff1John Smith03/09/202017:00
Staff5John Smith04/09/202008:00
Staff1John Smith04/09/202017:00
Staff6John Smith05/09/202008:00
Staff2John Smith05/09/202017:00
Staff7John Smith06/09/202008:00
Staff2John Smith06/09/202017:00
Staff8John Smith07/09/202008:00
Staff2John Smith07/09/202017:00
Staff9John Smith08/09/202008:00
Staff1John Smith08/09/202017:00
Staff10John Smith09/09/202008:00
Staff1John Smith09/09/202017:00
Staff11John Smith10/09/202008:00
Staff2John Smith10/09/202017:00
1 ACCEPTED SOLUTION

@redhughes, 🙂 seguro

En lugar de usar TOPN, podemos usar RANKX en su lugar, y ajustar el rango basado en [Recuento de citas] para incluir un desempate basado en el nombre del pentagrama.

Appointment Count Top N Staff = 
VAR N = [Top Staff Value]
VAR StaffCount = [Staff Count]
RETURN
    IF (
        N <= StaffCount,
        // For each Staff member
        // calculate @RankAdjustment which is the rank of the Staff name 
        // divided by StaffCount + 1.
        // This is used to break ties when ranking Appointment Count.
        VAR Staff =
            ADDCOLUMNS (
                VALUES ( Appointments[Staff] ),
                "@RankAdjustment",
                    DIVIDE (
                        RANKX ( VALUES ( Appointments[Staff] ), Appointments[Staff] ),
                        StaffCount + 1
                    )
            )
        VAR TopStaff =
            FILTER (
                Staff,
                RANKX ( Staff, RANKX ( Staff, [Appointment Count],, ASC ) + [@RankAdjustment] ) <= N
            )
        RETURN
            CALCULATE ( [Appointment Count], TopStaff )
    )

PBIX conectado con la medida ajustada.

OwenAuger_0-1600496306002.png

saludos

Owen


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
Twitter
LinkedIn

View solution in original post

7 REPLIES 7
Ashish_Mathur
Super User
Super User

Hola

En los datos que ha compartido, muestre el resultado esperado muy claramente.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
OwenAuger
Super User
Super User

Hola

Así es como lo abordaría como punto de partida (PBIX adjunto):

  • Cree un parámetro What If para controlar el parámetro "number of staff". Lo creé en una tabla llamada Top Staff con el rango de cero a número total de personal en la tabla Citas.
  • Crear medidas de la siguiente manera

Top Staff = GENERATESERIES(0, DISTINCTCOUNT ( Appointments[Staff] ), 1)​   

Staff Count = 
DISTINCTCOUNT ( Appointments[Staff] )

Appointment Count = 
COUNTROWS ( Appointments )

Appointment Count Top N Staff = 
VAR N =
    [Top Staff Value]
VAR StaffCount =
    [Staff Count]
RETURN
    IF (
        N <= StaffCount,
        VAR TopStaff = 
            TOPN (
                N,
                VALUES ( Appointments[Staff] ),
                [Appointment Count]
            )
        RETURN       
        CALCULATE ( 
            [Appointment Count],
            TopStaff
        )
    )

Appointment % Top N Staff = 
DIVIDE (
    [Appointment Count Top N Staff],
    [Appointment Count]
)​   

  • A continuación, puede establecer el parámetro Top Staff en un valor determinado y mostrar [Nombramiento % Superior N Personal]. O trazar [Nombramiento % Top N Staff] contra Top Staff.
  • Tenga en cuenta que en el caso de empates para el enésimo miembro del pentagrama más común, todos los valores vinculados se cuentan como rango N. Puede cambiar este comportamiento ajustando los argumentos a TOPN.
  • Para producir productos como"el 90% de nuestros clientes tenían al menos el 75% de sus nombramientos asignados a 3 miembros del personal" requeriría una medida adicional basada en lo anterior.

    saludos

    Owen


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
Twitter
LinkedIn

@OwenAuger Eso es genial, gracias. ¿Cómo tendría que ajustar los argumentos TOPN para cambiar el comportamiento de los valores vinculados? En este caso, preferiríamos que las puntuaciones % de Joan Smith fueran:

Top N%
150%
265%
375%
485%
595%
6100%

en lugar del 95% desde 3 Top N hacia arriba.

Hola @redhughes ,

OwenAuger ha proporcionado una buena solución, y también puede referirse a la siguiente medida:

appointments by topn staff =
VAR N =
    MAX ( 'topn'[Value] )
RETURN
    SUMX (
        TOPN (
            N,
            SUMMARIZE (
                'Table',
                'Table'[Staff],
                "appointments by staff", COUNTROWS ( 'Table' ),
                "break ties", SUMX ( 'Table', VALUE ( 'Table'[Date] ) )
            ),
            [appointments by staff] + [break ties]
        ),
        [appointments by staff]
    )

Capture2.PNG

Para obtener más información, consulte el archivo pbix: https://qiuyunus-my.sharepoint.com/:u:/g/personal/pbipro_qiuyunus_onmicrosoft_com/EQQoTZUt7KlHoj7Cl3...

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

Saludos

Dedmon Dai

@redhughes, 🙂 seguro

En lugar de usar TOPN, podemos usar RANKX en su lugar, y ajustar el rango basado en [Recuento de citas] para incluir un desempate basado en el nombre del pentagrama.

Appointment Count Top N Staff = 
VAR N = [Top Staff Value]
VAR StaffCount = [Staff Count]
RETURN
    IF (
        N <= StaffCount,
        // For each Staff member
        // calculate @RankAdjustment which is the rank of the Staff name 
        // divided by StaffCount + 1.
        // This is used to break ties when ranking Appointment Count.
        VAR Staff =
            ADDCOLUMNS (
                VALUES ( Appointments[Staff] ),
                "@RankAdjustment",
                    DIVIDE (
                        RANKX ( VALUES ( Appointments[Staff] ), Appointments[Staff] ),
                        StaffCount + 1
                    )
            )
        VAR TopStaff =
            FILTER (
                Staff,
                RANKX ( Staff, RANKX ( Staff, [Appointment Count],, ASC ) + [@RankAdjustment] ) <= N
            )
        RETURN
            CALCULATE ( [Appointment Count], TopStaff )
    )

PBIX conectado con la medida ajustada.

OwenAuger_0-1600496306002.png

saludos

Owen


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
Twitter
LinkedIn

@OwenAuger - gracias de nuevo por la respuesta rápida! sólo una pregunta rápida, ¿cuál es la importancia de la declaración IF (es decir, N <- StaffCount)? digamos que un cliente tiene 7 citas y todos están con sólo 2 de nuestros miembros del personal, entonces tendría sentido que su "medida de continuidad" debe ser 100% en top Staff 3 pero debido a esa declaración IF, su medida está en blanco.

@redhughes buen punto - que era principalmente para el gráfico, ya que pensé que se veía mejor cuando el porcentaje acumulado terminó en el número total de personal.

Sin embargo, en general puedo ver que no desea dejar de en blanco, por lo que puede eliminar el IF si lo desea.

Usted podría tener dos versiones de la medida con y sin el IF si es necesario.

saludos

Owen


Owen Auger
Did I answer your question? Mark my post as a solution!
Blog
Twitter
LinkedIn

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors