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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

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])

Join us as experts from around the world come together to shape the future of data and AI!
At the Microsoft Analytics Community Conference, global leaders and influential voices are stepping up to share their knowledge and help you master the latest in Microsoft Fabric, Copilot, and Purview.
️ November 12th-14th, 2024
 Online Event
Register Here
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
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors