Forum Discussion
Recuento de filas con condiciones en Power Query
Hola, chicos
Necesito ayuda para contar la ocurrencia de un valor dentro de un valor de clave específico.
Los datos que tengo se ven algo como esto:
| Clave | Parámetro dentro de la clave | Valor |
| A | Aaa | 1 |
| A | Aab | 2 |
| A | Aac | 2 |
| A | Aad | 4 |
| B | Bba | 1 |
| B | Bbb | 2 |
| B | Bbc | 3 |
| B | Bbd | 4 |
Lo que necesito sería esto:
| Clave | N.o de 2 |
| A | 2 |
| B | 1 |
Ya hice este trabajo usando DAX, pero tengo que implementar esto en el editor de consultas usando Power Query / M Language, porque tengo que combinar la tabla resultante a otra tabla y calcular más columnas usando "de 2"
¿Puede alguien ayudarme con esto?
Gracias de antemano y saludos,
Chinonso
Hay @Cihan_G
Descargue este ejemplo de PBIX con código
Utilícelo en Power Query
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUUpMTASShkqxOjB+EpA0QuIno/FTgKQJmO8EZCUlIfRD+Aj9ED5IvzESH6o/FgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Key = _t, #"Parameter within key" = _t, Value = _t]), #"Filtered Rows" = Table.SelectRows(Source, each ([Value] = "2")), #"Grouped Rows" = Table.Group(#"Filtered Rows", {"Key"}, {{"Count", each Table.RowCount(_), Int64.Type}}) in #"Grouped Rows"saludos
Phil
5 Replies
- Syndicate_Admin
Administrator
No @Cihan_G ,
puede seguir estos pasos:
duplicar la tabla --> Filter y Groupby respectivamente--> finalmente combinar las dos tablas como se muestra a continuación:
Pero conducirá a un aumento en la memoria / cpu hasta cierto punto ya que he creado una nueva tabla. Y normalmente el consumo de memoria reducirá el rendimiento y trae una carga más pesada al modelo.
Así que usted podría desactivar la opción"Habilitar la carga".
Por favor, eche un vistazo al archivo pbix aquí.
Saludos
Eyelyn Qin
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente. - Syndicate_Admin
Administrator
Hay @Cihan_G
Descargue este ejemplo de PBIX con código
Utilícelo en Power Query
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUUpMTASShkqxOjB+EpA0QuIno/FTgKQJmO8EZCUlIfRD+Aj9ED5IvzESH6o/FgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Key = _t, #"Parameter within key" = _t, Value = _t]), #"Filtered Rows" = Table.SelectRows(Source, each ([Value] = "2")), #"Grouped Rows" = Table.Group(#"Filtered Rows", {"Key"}, {{"Count", each Table.RowCount(_), Int64.Type}}) in #"Grouped Rows"saludos
Phil
- Syndicate_Admin
Administrator
Hola Phil,
gracias por su respuesta rápida!
Esto funcionó hasta ahora, pero ¿cómo puedo ahora agregar más columnas, basadas en otros filtros a eso?
Tecla // de 2's // á de 3's y '4s
A // 2 // 1
B // 1 // 2
¿Puedes ayudarme con esto también?
Muchas gracias
Chinonso
- Syndicate_Admin
Administrator
Hay @Cihan_G
¿Puede ser claro sobre el resultado deseado. ¿Qué hay de contar 1? ¿Quieres añadir el recuento de 3 y 4?
Tenga en cuenta que el código puede estar buscando específicamente los valores 1, 2 3, etc. por lo que cuando se llega a utilizarlo en datos reales no puede no funcionar. ¿Puede proporcionar algunos datos reales?
saludos
Phil
- Syndicate_Admin
Administrator
Hola Phil,
lo siento por suplicar poco claro.
Los datos reales también contienen estos valores, por lo que el código funciona perfectamente.
Quiero agregar los recuentos (en la muestra para 3 y 4) juntos para la tabla final. La tabla, necesito los datos acual se verá así:
Tecla // VERDE // AMARILLO // ROJO
A // ... // ... // ...
B // ... // ... // ...
...
Donde GREEN cuenta 1, 2's & 3's YELLOW cuenta 4's y RED cuenta 5's ,6's, 7's
Aparte de eso, los datos reales se parecen al ejemplo que proporcioné.
Saludos
Chinonso