es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo se agrupa/agrega los datos de una tabla y se obtiene el resultado como otra tabla en PowerBI?

Tengo una Tabla de Datos en Bruto como se muestra en la captura de pantalla a continuación:

TABLILLA ELECTRÓNICA

Quiero agrupar los datos en la tabla de datos en bruto en la Tabla de Salida como se muestra en la captura de pantalla a continuación:

OTRAS TABLILLA ELECTRÓNICA

Básicamente, la tabla de salida cuenta la cantidad de estudiantes para cada nivel de comprensión en diferentes cohortes. ¿Puedo saber cómo puedo obtener la tabla de salida a partir de la tabla de datos en bruto? Soy nuevo en Power Query, ¡cualquier ayuda será muy apreciada!

Este es lo que he intentado:

TABLILLA ELECTRÓNICA

Código:

= Table.Group(Source, {"Cohorte"}, {
{"Conteo_Poca_Comprension", each Table.RowCount(Table.SelectRows(_, each ([Tema 1] = "Poca Comprensión"))), Int64.Type},
{"Conteo_Comprension_General", each Table.RowCount(Table.SelectRows(_, each ([Tema 1] = "Comprensión General"))), Int64.Type},
{"Conteo_Buena_Comprension", each Table.RowCount(Table.SelectRows(_, each ([Tema 1] = "Buena Comprensión"))), Int64.Type},
{"Conteo_Comprension_Completa", each Table.RowCount(Table.SelectRows(_, each ([Tema 1] = "Comprensión Completa"))), Int64.Type}
})

Solo puedo obtener la tabla por cada tema individual, no estoy seguro de cómo incluir los otros temas adjuntos a continuación y también añadir otra columna adicional para etiquetar el tema como se muestra en mi segunda captura de pantalla. Espero obtener algunos consejos/ayuda sobre cómo debo modificar el código. Gracias.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para agrupar los datos en la tabla de datos sin procesar en la tabla de salida como se muestra en la captura de pantalla, puedes utilizar el siguiente código:

    = Table.Group(Fuente, {"Tema 1", "Intake"}, {
            {"Conteo", each Table.RowCount(_), Int64.Type}
        })
    

    Este código agrupará los datos por las columnas “Tema 1” e “Intake”, y luego contará el número de filas en cada grupo. Producirá una tabla con tres columnas: “Tema 1”, “Intake” y “Conteo”. Para añadir las etiquetas para los diferentes niveles de comprensión, puedes utilizar el siguiente código:

    = Table.TransformColumns(Salida, {{"Tema 1", each "Nivel de Comprensión " & _}})
    

    Este código añadirá la cadena “Nivel de Comprensión ” a los valores de la columna “Tema 1”, para crear las etiquetas de los diferentes niveles de comprensión. El carácter “&” se utiliza para concatenar las dos cadenas.

    Para obtener la tabla de salida final mostrada en la captura de pantalla, puedes utilizar el siguiente código:

    let
        Fuente = Table.Group(DatosSinProcesar, {"Tema 1", "Intake"}, {
            {"Conteo", each Table.RowCount(_), Int64.Type}
        }),
        Salida = Table.TransformColumns(Fuente, {{"Tema 1", each "Nivel de Comprensión " & _}}),
        Pivot = Table.Pivot(Salida, {"Intake"}, "Intake", "Conteo", List.Sum),
        ColumnasRenombradas = Table.RenameColumns(Pivot, {{"Nivel de Comprensión Poca Comprensión", "Poca Comprensión"}, {"Nivel de Comprensión Comprensión General", "Comprensión General"}, {"Nivel de Comprensión Buena Comprensión", "Buena Comprensión"}, {"Nivel de Comprensión Completamente Entendido", "Completamente Entendido"}})
    in
        ColumnasRenombradas
    

    Este código primero agrupa la tabla de datos sin procesar por “Tema 1” e “Intake”, y cuenta el número de filas en cada grupo. Luego añade la cadena “Nivel de Comprensión ” a los valores de la columna “Tema 1” para crear las etiquetas de los diferentes niveles de comprensión. Se utiliza la función Pivot para transformar la tabla de manera que los diferentes intakes se conviertan en columnas, y se sumen los recuentos para cada nivel de comprensión en cada intake. Por último, se renombran las columnas para que coincidan con la salida esperada.

Comments are closed.