Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Estoy tratando de encontrar las primeras ocurrencias del valor más alto en una columna determinada.
Aquí está el estado inicial de los datos:
Artículo | Costar | Fecha |
a1 | 1 | 01/01/2022 |
a1 | 3 | 01/05/2022 |
a1 | 1 | 01/06/2022 |
a1 | 2 | 01/03/2023 |
a1 | 1 | 01/07/2023 |
b2 | 2 | 01/03/2021 |
b2 | 3 | 01/02/2022 |
b2 | 1 | 01/04/2022 |
b2 | 1 | 01/07/2022 |
b2 | 3 | 01/09/2022 |
b2 | 1 | 01/11/2022 |
Como podemos ver, el artículo a1 tuvo su costo más alto el 01/05/2022.
El ítem b2 tuvo dos instancias de mayor costo, una en 01/02/2022, y la otra en 01/09/2022. Quiero capturar solo el primero.
Así que a partir de estos datos quiero obtener el siguiente resultado:
Artículo | Costar | Fecha |
a1 | 3 | 01/05/2022 |
b2 | 3 | 01/02/2022 |
Hasta ahora he usado una acción de nivel de consulta, primero ordenando Fecha ascendente, luego ordenando Costo descendente antes de dedudar todo, ya que esa es una lógica que funciona en Excel. También utilicé buffer.table al ordenar para asegurarme de que todos los datos se capturaran en ambos tipos.
Pero también quiero verificar estos datos, así que estoy buscando hacer una columna calcualizada contra la versión original de esta tabla.
¿Alguien puede ayudar con cómo debería ser eso?
Crear una tabla temporal como
Tmp table =
ADDCOLUMNS (
SUMMARIZE ( 'Table', 'Table'[Item], 'Table'[Date] ),
"@num rows", CALCULATE ( COUNTROWS ( 'Table' ) )
)
Eso debería ayudarlo a identificar cualquier duplicado restante.
Como actualización, intenté deduping basado en las columnas que me estaban causando problemas, pero no ayudó.
Todavía obtengo el error anterior. ¿Alguna idea?
Solo como referencia, también necesitaba un argumento en blanco, elegí "Predeterminado".
Sin embargo, recibo un error:
A pesar de que se especifican las columnas MatchBy, se encuentran filas duplicadas en el parámetro Relation de INDEX. Esto no está permitido. La operación actual se canceló porque se produjo un error en otra operación de la transacción.
Creo que esto podría deberse a que algunos elementos pueden tener la misma fecha y calificación dos veces, intentarán deduplicar esa parte en el nivel de consulta y luego ejecutarán esto nuevamente.
Puede crear una tabla calculada como
My Table =
INDEX(
1,
'Table',
ORDERBY( 'Table'[Cost], DESC, 'Table'[Date], ASC),
PARTITIONBY( 'Table'[Item]),
MATCHBY( 'Table'[Item], 'Table'[Date])
)
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |