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
Syndicate_Admin
Administrator
Administrator

Calcular el recuento de filas para cada usuario/mes/categoría para el mes real y el último mes

Hey todo, tengo una base de datos que muestra las columnas "Usuario", "Actividad" y "Fecha". ¿Cómo puedo crear columnas como "Rank" y "Rank Last Month", como en este ejemplo, en Power BI? (Puede leer Clasificar como un recuento de filas, para cada usuario/mes/grupo de categorías por)

hesloan_0-1623264035169.png

Para cada Usuario (en este caso solo un usuario) y Actividad (en este caso ABCD y FGH) necesito contar el número de filas para ese usuario/categoría/mes, por lo que, para el usuario A, en enero de 2021 usó la actividad ABCD 4 veces, y el último mes (diciembre de 2020) usó 0 veces.

Para el 21 de febrero, el usuario A usó la actividad ABCD 2 veces, por lo que Rank =2, y en el último mes usó la misma actividad 4 veces, por lo que Rank Last Month = 4.

Estoy intentando usar la función CALCULATE con FILTER, pero soy nuevo en Power BI. ¿Alguien puede ayudar?

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @hesloan

Puede intentar cambiar la función para crear la columna calculada para lograr su objetivo.

Mi muestra es la misma que la tuya. Y construyo RANK, RANK Last Month y Flag como columnas calculadas.

1.png

En primer lugar, tenemos que crear una columna YearMonth. Lo necesitamos en nuestro filtro.

YEARMONTH = 
YEAR ( 'Sample'[DATE] ) * 100
    + MONTH ( 'Sample'[DATE] )
RANK = 
CALCULATE (
    COUNTROWS ( 'Sample' ),
    ALLEXCEPT ( 'Sample', 'Sample'[USER], 'Sample'[ACTIVITY], 'Sample'[YEARMONTH] )
)
RANK Last Month = 
VAR _MAXPREYearMonth =
    MAXX (
        FILTER ( 'Sample', 'Sample'[YEARMONTH] < EARLIER ( 'Sample'[YEARMONTH] ) ),
        'Sample'[YEARMONTH]
    )
VAR _Count =
    CALCULATE (
        COUNTROWS ( 'Sample' ),
        FILTER (
            ALLEXCEPT ( 'Sample', 'Sample'[USER], 'Sample'[ACTIVITY] ),
            'Sample'[YEARMONTH] = _MAXPREYearMonth
        )
    ) + 0
RETURN
    _Count
FLAG = 
SWITCH (
    TRUE (),
    AND ( 'Sample'[RANK] >= 5, 'Sample'[RANK Last Month] < 5 ), "NEW",
    AND ( 'Sample'[RANK] < 5, 'Sample'[RANK Last Month] > 5 ), "CHURN",
    AND ( 'Sample'[RANK] >= 5, 'Sample'[RANK Last Month] >= 5 ), "RECURRENCY",
    "EVENTUAL"
)

El resultado es el siguiente.

2.png

A continuación, cree objetos visuales según sus requisitos. Use No resumir en la pequeña tabla visual. Y use count funtion para crear el gráfico de columnas.

La pequeña tabla visual sobre el gráfico de columnas:

4.png

Gráfico de columnas:

5.png

El resultado es el siguiente.

3.png

Saludos

Rico Zhou

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

View solution in original post

10 REPLIES 10
Syndicate_Admin
Administrator
Administrator

No @hesloan

Puede intentar cambiar la función para crear la columna calculada para lograr su objetivo.

Mi muestra es la misma que la tuya. Y construyo RANK, RANK Last Month y Flag como columnas calculadas.

1.png

En primer lugar, tenemos que crear una columna YearMonth. Lo necesitamos en nuestro filtro.

YEARMONTH = 
YEAR ( 'Sample'[DATE] ) * 100
    + MONTH ( 'Sample'[DATE] )
RANK = 
CALCULATE (
    COUNTROWS ( 'Sample' ),
    ALLEXCEPT ( 'Sample', 'Sample'[USER], 'Sample'[ACTIVITY], 'Sample'[YEARMONTH] )
)
RANK Last Month = 
VAR _MAXPREYearMonth =
    MAXX (
        FILTER ( 'Sample', 'Sample'[YEARMONTH] < EARLIER ( 'Sample'[YEARMONTH] ) ),
        'Sample'[YEARMONTH]
    )
VAR _Count =
    CALCULATE (
        COUNTROWS ( 'Sample' ),
        FILTER (
            ALLEXCEPT ( 'Sample', 'Sample'[USER], 'Sample'[ACTIVITY] ),
            'Sample'[YEARMONTH] = _MAXPREYearMonth
        )
    ) + 0
RETURN
    _Count
FLAG = 
SWITCH (
    TRUE (),
    AND ( 'Sample'[RANK] >= 5, 'Sample'[RANK Last Month] < 5 ), "NEW",
    AND ( 'Sample'[RANK] < 5, 'Sample'[RANK Last Month] > 5 ), "CHURN",
    AND ( 'Sample'[RANK] >= 5, 'Sample'[RANK Last Month] >= 5 ), "RECURRENCY",
    "EVENTUAL"
)

El resultado es el siguiente.

2.png

A continuación, cree objetos visuales según sus requisitos. Use No resumir en la pequeña tabla visual. Y use count funtion para crear el gráfico de columnas.

La pequeña tabla visual sobre el gráfico de columnas:

4.png

Gráfico de columnas:

5.png

El resultado es el siguiente.

3.png

Saludos

Rico Zhou

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

Syndicate_Admin
Administrator
Administrator

@hesloan en el archivo pbix adjunto mira la tabla Rank y Calendar y hay pocas combinaciones diferentes de medidas, en el visual, estoy usando rank measure v3 y rank prev.

Consulte mi última entrada de blog comparando el cliente seleccionado con otros clientes N principales | PeryTUS Me gustaría ❤ Felicitaciones si mi solución ayudó. 👉 Si puede pasar tiempo publicando la pregunta, también puede hacer esfuerzos para dar Felicitaciones a quien ayudó a resolver su problema. ¡Es una muestra de agradecimiento!

Visítenos en https://perytus.com, su ventanilla única para proyectos, formación y consultoría relacionados con Power BI.

hesloan_1-1623328228934.png

Así, no entiendo por qué crear 4 medidas como "Count of Churn", "Count of New", "Count of Eventual" no funciona.

Necesito obtener un gráfico de barras como este:

hesloan_2-1623328306093.png

Hey @parry2k muchas gracias por ayudar. Funciona, pero ahora tengo un problema para clasificar a los usuarios "Nuevo", "Abandono", "Eventual", "Remoneda".

He creado esta medida porque me da error si intento crear esto tiene una columna:

Flag Recurrency = 
IF ( ISBLANK([Rank Prev]) = False && ISBLANK([Rank Current 3]) = False,
IF( [Rank Current 3] >=5 && [Rank Prev]<5, "NEW", 

IF( [Rank Current 3]>=5 && ISBLANK([Rank Prev]) = TRUE, "NEW",

IF( [Rank Current 3]<5 && [Rank Prev] >= 5, "CHURN",

IF( [Rank Current 3]>=5 && [Rank Prev] >=5, "RECURRENCY", "EVENTUAL" ) )
)) )

Y funciona perfectamente cuando estoy usando algo como una tabla, pero necesito ver en un gráfico de barras el número de usuarios nuevos / churn / recurrency / eventuales.

Después de eso, he creado 5 medidas llamadas "Recuento de usuarios", "Recuento de usuarios de renovación", "Recuento de usuarios eventuales", "Recuento de usuarios de remoneda", "Recuento de nuevos usuarios" como esta:

Count of Users = DISTINCTCOUNT(Query1[TX_IDFC_USU])
Count Churn Users = IF( [Flag Recurrency] = "CHURN", [Count of Users] )
Count New Users = IF( [Flag Recurrency] = "NEW", [Count of Users] )

Pero, si uso estas medidas (Recuento de Churn/New/Eventual/Recurrency) en un gráfico no funciona:

hesloan_0-1623327524435.png

Syndicate_Admin
Administrator
Administrator

@hesloan Si quieres ver cada fecha, pero aún así enrollar hasta el nivel de mes, agrega complejidad, pero sabes qué, siempre es divertido trabajar en cosas interesantes.

Syndicate_Admin
Administrator
Administrator

@hesloan aunque este cálculo es bastante sencillo, aquí hay una pregunta rápida. ¿Desea ver cada fecha en el objeto visual aunque devolverá el mismo valor para el rango y el rango anterior para cada fecha del mismo mes o prefiere mostrar solo una fila por cada mes para cada usuario y actividad?

@parry2k estos valores de Rank son solo una forma de categorizar la categorización de los usuarios. Al igual que, el usuario A, para la categoría ABCD, simplemente desapareció en marzo/21.

Prefiero ver cada fecha en el objeto visual, incluso con el mismo valor

Syndicate_Admin
Administrator
Administrator

¿Puede publicar los datos por favor (no una imagen) y lo que está pasando con las filas 8 y 9?

Oye, lo siento, las filas 8 y 9 están mal. Debería ser así:
Fila 8 -> Rango = 1 y Rango último mes = 0 (el usuario A no usó la actividad ABCD en marzo)
Fila 9 -> Rango = 1 y Rango último mes = 1

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.