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
mpicca13
Resolver IV
Resolver IV

Recuento de veces consecutivas que una columna conserva el mismo valor

Necesito realizar un seguimiento de las veces que una columna tiene un valor establecido para [Nombre del producto] y [Fecha].

La columna de la que se debe realizar un seguimiento es la columna [BuyBoxStatus].

Una vez que el valor de [BuyBoxStatus] cambia, el recuento se reiniciaría de nuevo a 1.

El resultado previsto es la última columna [Días en estado actual]

Ejemplo:

ProductnameBuyBoxStatusFechaDías en estado actual
A212/7/20201
B112/7/20201
A212/8/20202
B112/8/20202
A212/9/20203
B112/9/20203
A512/10/20201
B312/10/20201
A512/11/20202

¿Cómo puedo lograr esto ya sea en una medida o en una columna calculada?

1 ACCEPTED SOLUTION
mahoneypat
Employee
Employee

No me sorprende que sea lento. Hay mucho cálculo en curso, y no sabía cuántas filas tiene en sus datos. Aquí está la versión de medida de la misma. Funciona en un objeto visual de tabla con la columna de nombre del producto y con o sin la columna Fecha de esa tabla. Por supuesto, será mucho más rápido con sólo el nombre del producto (mostrará los días que ha estado en el estado actual).

Días Estado actual ?
Fue vCurrentStatus =
LASTNONBLANKVALUE (
'Status'[-Date-],
máximo ( 'Status'[-BuyBoxStatus-] )
)
Fue vLatestDate =
máximo ( 'Estado'[-Fecha-] )
Fue vMinDateSameStatus =
Calcular (
Min ( 'Estado'[-Fecha-] ),
Filtro (
todo ( 'Estado'[-Fecha-] ),
'Estado'[-Fecha-] <- vLatestDate
),
'Status'[-BuyBoxStatus-] vCurrentStatus
)
Fue vPrevDate =
Calcular (
máximo ( 'Estado'[-Fecha-] ),
Filtro (
todo ( 'Estado'[-Fecha-] ),
'Status'[-Date-] < vLatestDate
),
'Status'[-BuyBoxStatus-] <> vCurrentStatus
)
Fue Vresult =
Si (
vPrevDate > vMinDateSameStatus,
Datediff (
vPrevDate,
vLatestDate,
Día
),
Datediff (
vMinDateSameStatus,
vLatestDate,
Día
) + 1
)
devolución
Vresult

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


View solution in original post

4 REPLIES 4
mahoneypat
Employee
Employee

No me sorprende que sea lento. Hay mucho cálculo en curso, y no sabía cuántas filas tiene en sus datos. Aquí está la versión de medida de la misma. Funciona en un objeto visual de tabla con la columna de nombre del producto y con o sin la columna Fecha de esa tabla. Por supuesto, será mucho más rápido con sólo el nombre del producto (mostrará los días que ha estado en el estado actual).

Días Estado actual ?
Fue vCurrentStatus =
LASTNONBLANKVALUE (
'Status'[-Date-],
máximo ( 'Status'[-BuyBoxStatus-] )
)
Fue vLatestDate =
máximo ( 'Estado'[-Fecha-] )
Fue vMinDateSameStatus =
Calcular (
Min ( 'Estado'[-Fecha-] ),
Filtro (
todo ( 'Estado'[-Fecha-] ),
'Estado'[-Fecha-] <- vLatestDate
),
'Status'[-BuyBoxStatus-] vCurrentStatus
)
Fue vPrevDate =
Calcular (
máximo ( 'Estado'[-Fecha-] ),
Filtro (
todo ( 'Estado'[-Fecha-] ),
'Status'[-Date-] < vLatestDate
),
'Status'[-BuyBoxStatus-] <> vCurrentStatus
)
Fue Vresult =
Si (
vPrevDate > vMinDateSameStatus,
Datediff (
vPrevDate,
vLatestDate,
Día
),
Datediff (
vMinDateSameStatus,
vLatestDate,
Día
) + 1
)
devolución
Vresult

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


mahoneypat
Employee
Employee

Esta expresión de columna debe funcionar incluso si un producto repite un estado. Reemplace los nombres de tabla/columna por los reales.

Días Este estado ?
VAR thisdate á 'Status'[-Date-]
VAR thisstatus á 'Status'[-BuyBoxStatus-]
Mente de VAR-amesamoto ?
CALCULAR (
MIN ( 'Estado'[-Fecha-] ),
ALLEXCEPT (
'Estado',
'Status'[-ProductName-]
),
'Status'[-BuyBoxStatus-] - thisstatus,
'Estado'[-Fecha-] <- thisdate
)
VAR maxdatediffstatus ?
CALCULAR (
MAX ( 'Estado'[-Fecha-] ),
ALLEXCEPT (
'Estado',
'Status'[-ProductName-]
),
'Status'[-BuyBoxStatus-] <> thisstatus,
'Status'[-Date-] < thisdate
)
Fecha final del VAR (VAR finaldate)
SI (
maxdatediffstatus > mindatesamestatus,
maxdatediffstatus,
mindatesamestatus
)
devolución
DATEDIFF (
fecha final,
thisdate,
Día
) + 1

saludos

palmadita





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


Hola @mahoneypat, gracias por la solución!!

Desgraciadamente está tomando bastante tiempo para procesar.
¿Crees que si lo intentaba, podría replicar esta fórmula en una medida usando tablas virtuales?

Hola Pat, muchas gracias por la solución.

Otra advertencia que olvidé añadir es que hay otra columna llamada sitio web,

esto tendrá desgraciadamente situaciones en las que habrá filas del mismo producto en la misma fecha con estados iguales o diferentes. En este caso, simplemente añadiría otro var para el sitio web y un parámetro adicional dentro de la instrucción calculate donde el sitio web es este sitio web correcto?

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