VA7KOC
Hola,
Intentando crear una columna para recrear un informe de Excel que había creado en BI. Golpear una pared en una columna que se basó en un Countif en Excel. En la imagen de ejemplo a continuación, la tercera columna cuenta (incluida la fila en la que se encuentra) cuántas tareas «Sí» en la hora anterior. La fórmula utilizada en la fila inferior del ejemplo es = CONTAR.SI (A $ 1: A20, «>» & A20-TIME (1,0,0), A $ 1: A20, «<=" & A20, B $ 1: B20, "Sí"). Entonces, el rango es toda la columna, el criterio uno está dentro de la última hora, el criterio dos es una tarea "Sí". Espero que tenga sentido, se agradecería cualquier orientación sobre cómo crear la nueva columna. Idealmente, lo crearía en PowerQuery al importar mi carpeta de datos diarios.
Anónimo
En respuesta a VA7KOC
Gran adición, a veces es difícil saber el caso de uso específico que alguien tendrá para el código y, sin duda, usted está en la mejor posición para hacer ajustes como los ha hecho.
En cuanto a la ‘fila solo considerándose a sí misma’, eso es correcto, esto se conoce como contexto. Entonces, cuando se trata de columnas o medidas calculadas, debe comprender el contexto en el que se ubicará y si necesita manipularlo. Por ejemplo, pruebe el siguiente código y vea si la diferencia hace lo que espera:
Your Count = VAR timeFilterStart = TaskLog[Receipt] - TIME(1,0,0) VAR timeFilterEnd = TaskLog[Receipt] RETURN CALCULATE( COUNTROWS(TaskLog), ALL(TaskLog), TaskLog[Receipt] >= timeFilterStart, TaskLog[Receipt] <= timeFilterEnd, TaskLog[Specific Type of Task] = "Yes" )
Anónimo
La estructura de su medida sería algo como esto:
YourCount = VAR timeFilterStart = NOW() - TIME(1,0,0) VAR timeFilterEnd = NOW() RETURN CALCULATE( COUNTROWS('YourTable'), 'YourTable'[Receipt] >= timeFilterStart, 'YourTable'[Receipt] <= timeFilterEnd, 'YourTable'[Specific Type of Task] = "Yes" )
VA7KOC
En respuesta a Anónimo
La estructura tiene sentido pero como se devuelve nada. Creo que se debe a que NOW () está devolviendo la hora actual, no la hora de la fila en cuestión. Me ajusté al código a continuación y devuelve 1 en cada línea que es «Sí» para el tipo específico de limpieza y en blanco para cuando no lo es. Esto me lleva a creer que cada fila solo se mira a sí misma y no a nada anterior. ¿Tiene sentido mi teoría y, de ser así, cómo la corrijo?
Your Count = VAR timeFilterStart = TaskLog[Receipt] - TIME(1,0,0) VAR timeFilterEnd = TaskLog[Receipt] RETURN CALCULATE( COUNTROWS(TaskLog), TaskLog[Receipt] >= timeFilterStart, TaskLog[Receipt] <= timeFilterEnd, TaskLog[Specific Type of Task] = "Yes" )
Anónimo
En respuesta a VA7KOC
Gran adición, a veces es difícil saber el caso de uso específico que alguien tendrá para el código y, sin duda, usted está en la mejor posición para realizar ajustes como los que ha hecho.
En cuanto a la ‘fila solo considerándose a sí misma’, eso es correcto, esto se conoce como contexto. Entonces, cuando se trata de columnas o medidas calculadas, debe comprender el contexto en el que se encontrará y si necesita manipularlo. Por ejemplo, pruebe el siguiente código y vea si la diferencia hace lo que espera:
Your Count = VAR timeFilterStart = TaskLog[Receipt] - TIME(1,0,0) VAR timeFilterEnd = TaskLog[Receipt] RETURN CALCULATE( COUNTROWS(TaskLog), ALL(TaskLog), TaskLog[Receipt] >= timeFilterStart, TaskLog[Receipt] <= timeFilterEnd, TaskLog[Specific Type of Task] = "Yes" )
VA7KOC
En respuesta a Anónimo
¡Gracias, Ross! Esto funcionó y es una gran oportunidad para mí. Ahora puedo continuar con las columnas basadas en esto. ¡Ojalá no haya más paredes!