cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
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
Super User IV
Super User IV

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
Super User IV
Super User IV

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

Super User IV
Super User IV

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
secondImage

Experience what’s next for Power BI

Join us for an in-depth look at the new Power BI features and capabilities at the free Microsoft Business Applications Launch Event.

secondImage

Power BI Women

Join our monthly meetings and learning sessions.

secondImage

Congratulations!

We are excited to announce the Power BI Super Users!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.

Top Kudoed Authors