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
pabeader
Post Patron
Post Patron

Cómo contar el número de transiciones de 0 a 1 en una columna

Me gustaría saber una manera de contar el número de veces que el valor en una columna, pasa de 0 a 1.

Ni siquiera estoy seguro de por dónde empezar con éste. Estoy tratando de permanecer en DirectQuery para el análisis en tiempo real para que limite las cosas elegantes que podemos probar como agregar columnas de índice.

Cualquier idea se aplicaría mucho. Incluso una idea de por dónde empezar sería genial.

10 REPLIES 10
pabeader
Post Patron
Post Patron

Supongo que no soy tan listo después de todo. Incluso con grandes pistas todavía no puedo averiguar cómo hacer esto.

No te golpe es. Esta no es una medida fácil de escribir. Por favor, pruebe esta expresión. Devuelve 3 con los datos de muestra.

StatusCambios 0 a 1 ?
Fue Resumen =
ADDCOLUMNS (
Resumir (
'Estado',
'Status' [Marca de tiempo],
'Estado'[Estado]
),
"cPrevStatus",
Fue esta vez • 'Estado'[Marca de tiempo]
Fue prevtime =
Calcular (
máximo ( 'Status'[Marca de tiempo] ),
todo (
'Status' [Marca de tiempo],
'Estado'[Estado]
),
'Status'[Timestamp] < esta vez
)
devolución
Calcular (
Min ( 'Estado'[Estado] ),
todo (
'Status' [Marca de tiempo],
'Estado'[Estado]
),
'Status'[Marca de tiempo] prevtime
)
)
devolución
COUNTROWS (
Filtro (
Resumen,
Y (
'Status'[Estado] ? 1,
[cPrevStatus] ? 0
)
)
)

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


Cuando lo pongo en mi aplicación nunca termina de actualizar. La tabla de datos real es como 100.000 filas. No estoy seguro de cómo va a afectar las cosas. A continuación, voy a probar con una versión más pequeña del conjunto de datos.

Pensé que iba a ser lento (mucho cálculo en marcha), así que planeé enviar una mejor versión. Tu último post confirmó que era necesario. Aquí hay una versión más eficiente (pero todavía lenta). Hice una tabla con 10.000 filas para probarlo con 1s y 0s aleatorios y se necesitaron 13s en mi computadora para calcular, por lo que 100,000 puede tomar 10X que (o puede tiempo de espera).

No uso mucho la consulta directa, por lo que no sé si la consulta podría hacerlo, pero también probaría esa ruta. Puede ordenar por marca de tiempo, agregar un índice y, a continuación, usar ese índice para hacer referencia a la fila anterior en una columna personalizada para obtener ese valor en cada fila.

StatusCambios nuevos ?
Var alltimestamps ?
RESUMIR (
'Estado',
'Status' [Marca de tiempo],
'Estado'[Estado]
)
VAR just1s ?
FILTRO (
alltimestamps,
'Estado'[Estado] 1
)
VAR prev0 ?
FILTRO (
just1s,
VAR thistime á 'Status'[Timestamp]
devolución
CALCULAR (
SUMA ( 'Estado'[Estado] ),
TOPN (
2,
FILTRO (
alltimestamps,
'Estado'[Marca de tiempo] <- este tiempo
),
'Status'[Timestamp], DESC
)
) 1
)
devolución
COUNTROWS ( prev0 )


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


Así que lo que he encontrado es que si hay más de 3000 filas, se produce un error. Gracias por toda tu ayuda, pero creo que voy a tener que rediseñar el programa.

¡¡¡Wow!!! ¡No me extraña que no pudiera entenderlo! Ahora puedo tratar de entenderlo. Muchas gracias.

amitchandak
Super User
Super User

@pabeader ,¿Puede compartir datos de ejemplo y salida de ejemplo en formato de tabla?

Marca de tiempo ? Estado

11/22/20 9:00:00 0
11/22/20 9:00:01 0
11/22/20 9:00:02 0
11/22/20 9:00:03 1
11/22/20 9:00:04 1
11/22/20 9:00:05 1
11/22/20 9:00:06 1
11/22/20 9:00:07 0
11/22/20 9:00:08 0
11/22/20 9:00:09 0
11/22/20 9:00:10 0
11/22/20 9:00:11 0
11/22/20 9:00:12 n.o 1
11/22/20 9:00:13 1
11/22/20 9:00:14 0
11/22/20 9:00:15 0
11/22/20 9:00:16 0
11/22/20 9:00:17 1
11/22/20 9:00:18 N.o 1
11/22/20 9:00:19 0

La respuesta es 3

mahoneypat
Employee
Employee

¿Tiene un índice o una columna datetime para decidir cuál es "anterior"? Para ello, puede crear una expresión de columna con dos variables: una para obtener el valor de la fila actual y otra para obtener el valor anterior. A continuación, haga un IF con un AND para comprobar si el valor actual es 1 y el anterior era 0. A continuación, puede SUMA esa nueva columna para obtener el recuento.

Si es necesario en una medida, podría usar el mismo enfoque en una tabla virtual que cree en una variable dentro de la medida.

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


Tengo una columna Datetime. Voy a darle una índole y ver qué pasa. Sé que intenté algunas cosas usando esa columna, pero obtendría la advertencia de "cambiar a importación".

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.

Top Kudoed Authors