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
Matt65
Frequent Visitor

días consecutivos en los que el valor es 0

Estoy tratando de calcular cuántos días consecutivos, por ubicación, donde la cantidad es igual a 0.

A continuación se muestran datos de ejemplo, tengo una columna de fecha, una columna de ubicación de texto, una columna de cantidad (que puede incluir cantidades negativas, que cuando se encuentran deben tratarse como 0), y he agregado una columna Días de 0 que es la salida esperada para estos datos de ejemplo.

PowerBI-ConsecutiveZerosSampleTable.PNG

He encontrado https://community.powerbi.com/t5/DAX-Commands-and-Tips/calculate-running-total-of-consecutive-value/... que es similar a lo que estoy queriendo, excepto su querer que los 0 para romper el conteo consecutivo y estoy queriendo contar sólo 0 consecutivos por ubicación.

Usando la expresión del tema anterior, obtengo 0 en los días en los que amount-0, pero no puedo modificar la expresión para que funcione como estoy deseando.

Days of Zero = 
var _date = 'Table'[Date]
var _allResource = ALLEXCEPT('Table', 'Table'[Location])
var _firstZero = CALCULATE(MAX('Table'[Date]), _allResource, 'Table'[Date] <= _date, 'Table'[Amount]>0)
var _start = IF(ISBLANK(_firstZero), CALCULATE(MIN('Table'[Date]), _allResource), _firstZero)

RETURN
CALCULATE(SUM('Table'[Amount]), FILTER(ALL('Table'[Date]), 'Table'[Date] >= _start && 'Table'[Date] <= _date))

Adjunto es un archivo de ejemplo.

Muestra de ceros consecutivos por Location.pbix

1 ACCEPTED SOLUTION

Por favor, pruebe este enfoque.

Ceros consecutivos =
VAR thisdate = Datos[Fecha]
VAR lastnonzero =
CALCULAR (
MAX ( Datos[Fecha] ),
FILTER ( ALLEXCEPT ( Data, Data[Location] ), Data[Date] <= thisdate ),
Datos[Cantidad] <> 0
)
devolución
SI (
Datos[Cantidad] = 0,
IF ( ISBLANK ( lastnonzero ), 1, DATEDIFF ( lastnonzero, thisdate, DAY ) ), 0
)

Si esto funciona para usted, por favor márquelo como solución. Las felicitaciones también se aprecian. Por favor, hágamelo saber si no.

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

Hey @Matt65 ,

Me pregunto por qué el 6 de mayo se cuenta 3 para la ubicación 1 (o A), ya que no hay ningún valor disponible en los datos de muestra para el 5 de mayo.

¿Significa esto que los datos que faltan tienen que considerarse como un evento de valor cero en la secuencia de días consecutivos con valor cero?


¿Asumo que el 1er día de valor cero será después del 1er punto de datos disponible para una secuencia (facetado por ubicación)?
Esta pregunta puede sonar extraña, pero lo que trato de entender es esto: Suponiendo que hay una ubicación D con un solo registro en el conjunto de datos, la fecha es igual a 2020-05-04 y la cantidad es igual a 0, es este el principio del conteo lo que significa que una medida devolverá 1 o 4 porque el 1 de mayo es la fecha MINIMUM para otras ubicaciones.

Mi última pregunta 🙂
Suponiendo que hay una ubicación D con un único registro en el conjunto de datos, fecha es igual a 2020-05-04 y la cantidad es igual a 0, es este también el final de la secuencia o hace que la secuencia se detenga el 7 de mayo porque el 7 de mayo es la fecha MAXIMUM para las otras ubicaciones.

saludos

Tom



Did I answer your question? Mark my post as a solution, this will help others!

Proud to be a Super User!
I accept Kudos 😉
Hamburg, Germany

Hola Tom, buen encuentro en mi pobre muestra de datos. Las fechas deberían haber sido consecutivas.

Para responder a sus preguntas, si una nueva ubicación se agregó parte a través del período de datos y tenía un 0 entonces eso sería la primera ocurrencia y por lo tanto tendría un 1, los datos serían consecutivos, pero si hubiera un descanso, entonces debe ser tratado como 0. He corregido mi ejemplo PBIX y la imagen de muestra:

PowerBI-ConsecutiveZerosSampleTable.PNG

Por favor, pruebe este enfoque.

Ceros consecutivos =
VAR thisdate = Datos[Fecha]
VAR lastnonzero =
CALCULAR (
MAX ( Datos[Fecha] ),
FILTER ( ALLEXCEPT ( Data, Data[Location] ), Data[Date] <= thisdate ),
Datos[Cantidad] <> 0
)
devolución
SI (
Datos[Cantidad] = 0,
IF ( ISBLANK ( lastnonzero ), 1, DATEDIFF ( lastnonzero, thisdate, DAY ) ), 0
)

Si esto funciona para usted, por favor márquelo como solución. Las felicitaciones también se aprecian. Por favor, hágamelo saber si no.

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 Pat,

Muchas gracias, que de hecho ha funcionado. Muchas gracias por su tiempo en ayudarme con este problema.

mate

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.