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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Anonymous
Not applicable

Cálculo de porcentajes mediante varias columnas

Hola


Tengo algunos datos similares a los siguientes:

Fechaid de usuarioid de registrotipo de registroincluye el apego?
01/01/20A100XY
01/01/20B101YN
02/01/20A101XY
02/01/20B103XY
02/01/20C104YN
03/01/20A105ZN
03/01/20B106XN
03/01/20C107YN

Sólo quiero calcular el porcentaje de usuarios que siempre, nunca o a veces incluye un archivo adjunto con sus registros.

La parte que me da un dolor de cabeza es la esperanza de calcular esto dinámicamente con o sin un tipo de registro específico seleccionado y también para un intervalo de fechas filtrado. Eg. la categorización (a veces, siempre, nunca) se debe volver a calcular si se filtra por un tipo de registro específico para un intervalo de fechas específico.

Había comenzado por, en powerquery, agrupación por ID de usuario y tipo de registro y luego pivotar en 'registro incluye archivo adjunto'. Aunque esto me permite escribir un conjunto simple distinto de identificadores de usuario medir que sólo es preciso cuando se selecciona un tipo de registro y no permitirá el filtrado por fecha.

Creo que quiero escribir una(s) medida(s) que:

  • Para un ID de usuario devuelve todos los registros y el valor 'Y' o 'N' correspondiente para un archivo adjunto
  • Clasifica a cada usuario en función de esos valores (es decir, a veces, siempre, nunca)
  • Recalcula la categoría en función de tipos de registro específicos
  • Recalcula la categoría en función del intervalo de fechas específico
  • Cuenta los identificadores de usuario distintos en cada categoría para calcular el porcentaje de usuarios para los datos filtrados

¿Puede alguien sugerir un enfoque para abordar este problema, por favor? Cualquier guía muy apreciada.

4 REPLIES 4
jdbuchanan71
Super User
Super User

@doug19

Creo que pude conseguir algo cercano a lo que estás buscando. La categorización de los usuarios y el recuento de usuarios por categorización seguirán las selecciones de segmentación de datos.

Categorization = 
VAR _Y = 
    CALCULATE(
        SUMX(
            DISTINCT('Table'[user id]),1)
            ,'Table'[includes attachment?] = "Y"
    )
VAR _N = 
    CALCULATE(
        SUMX(
            DISTINCT('Table'[user id]),1)
            ,'Table'[includes attachment?] = "N"
    )
RETURN
SWITCH(
    TRUE(),
    _Y = 1 && _N = 0, "Always",
    _Y = 1 && _N = 1, "Sometimes",
    _Y = 0 && _N = 1, "Never"
)
User Count = 
CALCULATE(
    DISTINCTCOUNT('Table'[user id]),
    FILTER(
        VALUES('Table'[user id]),
        COUNTROWS(
            FILTER(
                Categories, [Attach Yes] = Categories[Y] && [Attach No] = Categories[N])
        ) > 0
    )
)

Agredí una tabla de categorías para usarla al agrupar los recuentos de usuarios.

He adjuntado mi archivo de muestra para que lo mires.

2020-07-28_20-00-53.png

Anonymous
Not applicable

@jdbuchanan71 esto es perfecto, muchas gracias!

Justo lo que necesitaba y aprendí mucho de la forma en que has diseñado los diversos componentes. Te lo agradezco mucho.

amitchandak
Super User
Super User

@doug19 , Puede crear una nueva columna en la tabla como

categoría ?
var _A - countx(filter(table,table[user id] ? earlier([user id])),[user Id])
var _Y - countx(filter(table,table[user id] ? earlier([user id]) && Table[includes attachment] ?"Y"),[user Id])
var _N - countx(filter(table,table[user id] ? earlier([user id]) && Table[includes attachment] ?"N"),[user Id])
devolución
interruptor ( True(),
[_A] - [_Y] , "Siempre",
[_A] , [_N] , "Nunca",
"En algún momento")

También puede tener medidas como estas

siempre ?
countx(filter(summarize(table,table[user id], "_1", countrows(Table), "_2",calculate(countrows(Table),Table[includes attachment] ?"Y"),[_1]-[_2]),[Id de usuario])


Nunca
countx(filter(summarize(table,table[user id], "_1", countrows(Table), "_2",calculate(countrows(Table),Table[includes attachment] ?"N"),[_1]-[_2]),[Id de usuario])

en algún momento
countx(filter(summarize(table,table[user id], "_1", countrows(Table), "_2",calculate(countrows(Table),Table[includes attachment] ?"Y")),not(isblank([_2])) && [_1]>[_2]),[ID de usuario])

Anonymous
Not applicable

@amitchandak

Muchas gracias por esto, muy apreciado. Definitivamente necesitas tener mi cabeza usando antes y también usando interruptor. Hemos detectado un problema desconocido.

Gracias de nuevo

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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