vicentekatoh
Hola,
Intentando agregar una columna personalizada (AttemptsMax) para mostrar los intentos máximos por estudiante y por materia.
Necesita ayuda con la fórmula de la columna personalizada. Supongo que debería estar usando la función List.Max. También quería evitar el uso de la función «Agrupar por».
v-jiascu-msft
Hola @vincentakatoh,
¿Le gustaría agregar una columna calculada en la tabla? Probé una fórmula, similar a la siguiente, como una columna calculada en una tabla con 3 millones de filas. Está terminado en menos de un minuto. Tal vez puedas intentarlo.
MaxAttempts = CALCULATE ( MAX ( 'Table1'[attempts] ), FILTER ( 'Table1', 'Table1'[Student] = EARLIER ( 'Table1'[Student] ) && Table1[subject] = EARLIER ( 'Table1'[subject] ) ) )
¡Atentamente!
Valle
v-jiascu-msft
Hola @vincentakatoh,
¿Le gustaría agregar una columna calculada en la tabla? Probé una fórmula, similar a la siguiente, como una columna calculada en una tabla con 3 millones de filas. Está terminado en menos de un minuto. Tal vez puedas intentarlo.
MaxAttempts = CALCULATE ( MAX ( 'Table1'[attempts] ), FILTER ( 'Table1', 'Table1'[Student] = EARLIER ( 'Table1'[Student] ) && Table1[subject] = EARLIER ( 'Table1'[subject] ) ) )
¡Atentamente!
Valle
Anónimo
En respuesta a v-jiascu-msft
BUEN día, cuando aplico esto en Power Query me da un error de expresión, Nale CALCULATE no fue reconocido
tommartens
En respuesta a Anónimo
Hola @Anónimo,
debe tener en cuenta que la solución aceptada provista por @v-jiascu-msft se basa en DAX, por esta razón, este enfoque no se puede usar dentro de Power Query. Power Query se basa en M (un lenguaje de programación funcional) y el modelo de datos usa DAX.
Saludos,
Tomás
vicentekatoh
En respuesta a v-jiascu-msft
Hola @v-jiascu-msft,
Impresionante. Funciona en <1 min con datos reales (280 mb).
No obstante, puede aconsejar cómo agregar el equivalente utilizando el Editor de consultas «Columna personalizada» (lenguaje M), en lugar de «Columna calculada» (DAX). La razón es que eventualmente necesitará agregar más columnas y obtener imágenes como Pareto.
Realmente aprecio tu respuesta. Pasé días sin éxito.
vicentekatoh
En respuesta a vicentekatoh
Hola @v-jiascu-msft,
Para tu información, intenté usar el equivalente M (Editor avanzado) en el Editor de consultas, pero tuve el mismo problema (usando Group-by) ya que PBI se bloquea cuando se cargan más datos.
Realmente aprecio su idea de usar Columna calculada. Para este propósito específico, la Columna calculada (DAX) es más eficiente en recursos que la Columna personalizada/Editor avanzado (M).
tommartens
Mmm,
En realidad, no entiendo por qué desea evitar la función de columna personalizada GroupBy.
Si quiero agregar un valor agregado, por ejemplo, MAX (intentos) a un grupo (subconjunto) de valores sin perder los valores detallados, hago lo siguiente:
la columna «expansión» es solo una columna «ficticia» que no se usa más.
Después de esto, solo tengo que expandir la tabla y seleccionar la columna Valor.
Tal vez esto ayude incluso si involucra GroupBy Transform
vicentekatoh
En respuesta a tommartens
Hola @TomMartens,
Gracias. Usé «Groupby», pero el problema es que el Editor de consultas se bloquea o falla cuando ejecuto con mis datos reales (> 500 000 filas, 70 MB, por día).
Como tal, espero poder intentar agregar una columna personalizada con fórmula en su lugar.
tommartens
En respuesta a vicentekatoh
Está bien, entiendo el problema.
Entonces, aquí tenemos que crear de manera muy eficiente «una lista» desde donde List.Max tiene que determinar el valor MAX. Esto tiene que hacerse para cada fila una y otra vez…
¿Ha probado un método de fuerza bruta (o Power BI también se bloquea aquí)?
- cree una tabla con el valor agrupado (MAX) y luego (en SQL Server esto sería CTE)
- combine la tabla agregada con la tabla base (en SQL Server esto sería Unirse a la tabla base con el CTE)