Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
5 years ago
Solved

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:

ClaveParámetro dentro de la claveValor
AAaa1
AAab2
AAac2
AAad4
BBba1
BBbb2
BBbc3
BBbd4

Lo que necesito sería esto:

ClaveN.o de 2
A2
B1

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"

    count-nums.png

    saludos

    Phil

5 Replies

  • 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:

    2.1.1.1.gif

    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".

    2.1.1.2.jpg

    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.

  • 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"

    count-nums.png

    saludos

    Phil

  • 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

  • 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's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      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