¿Transponer o quitar pivote? Lo que necesita saber sobre la estructuración de tablas en Power Query (2)

Un usuario Pregunto ✅

ahmedoye


Solo el 6% de los informes de análisis en las organizaciones obtienen sus datos de bases de datos estándar. Oh no, inventé ese número. No tengo idea de cuáles son los números. Pero estoy seguro de que la mayoría de los usuarios de análisis de datos y BI de autoservicio deben lidiar con una gran cantidad de datos de mala calidad.

Uno de los grandes problemas con los que los usuarios de Power Query también deben lidiar es la estructuración de tablas. ¿Cuándo debería usar “Transpose” y cuándo debería usar “Unpivot”?

(Los datos utilizados en esta demostración son el número 3 en la lista de Muestras de datos sucios en este enlace).

He introducido los dos conceptos en la primera parte de este artículo. Nuestros datos tenían el formato que se muestra a continuación:

Picture1.jpg

Solicitar ID etiquetado «B» está bien estructurado en una columna, pero Segmento y Modo de envío están en filas en lugar de columnas también.

Entonces, comenzamos por Transponer la tabla.

Picture2.jpg

Luego hicimos una pequeña limpieza adicional, quitando las líneas totales, llenando la columna de segmento. Y el muy importante, promovió la primera fila a títulos. Este paso fue necesario para hacer una transposición parcial (Unpivot) de todas las demás columnas, excepto Segment y Ship Mode (que ahora están en orden).

Picture3.jpg

Entonces podríamos obtener una tabla limpia (después de nombrar las columnas correctamente).

Picture4.jpg

Lo que hemos hecho inteligentemente se puede resumir en:

  1. Debido a que tenemos filas destinadas a ser columnas, transpusimos la tabla.
  2. Aunque teníamos una buena columna antes de esa operación de transposición, salió mal (en una fila).
  3. Estábamos bien con eso porque, al hacer que esa nueva fila se convierta en una fila de encabezado, aplicaríamos un Unpivot a esa sección para volverla a convertir en una columna.

Aparentemente, nuestros pasos funcionaron porque solo teníamos una buena columna antes de la transposición. Y después de la transposición, podríamos convertir esa fila en una fila de encabezado y desvincular la sección de encabezados para recuperarla. Si tuviéramos dos buenas columnas antes de la transposición, significa que tendríamos esas dos columnas en filas después de la transposición. Solo se puede hacer un encabezado, y solo ese mismo se puede desviar de nuevo a la columna. Esta es la manzana de la discordia en este artículo.

Eche un vistazo a la siguiente tabla:

Picture5.jpg

Si transponemos esta tabla, Modo de envío y Segmento (a) estarán bien alineados como columnas mientras Solicitar ID y Fecha de orden (b) ahora se alineará incorrectamente como filas. Eso es de vuelta al cuadro 1. Corramos en círculos.

Entonces, el enfoque debe ser diferente para resolver esto, y los siguientes pasos resumen eso:

  1. Importe los datos y elimine todos los pasos de los encabezados promocionados. (Esto, ya sabe, es un enfoque estándar si necesita transponer una tabla sin perder ninguno de sus contenidos).

    Picture6.jpg

  2. Fusiona las dos columnas que son buenas en una. (Esta es la clave para resolver esto. Al fusionar todas las columnas que están en perfecto orden, cuando la tabla se transpone y las cosas van hacia el sur para ellas, podemos desvincularlas todas juntas).

    Seleccione Columna 1 y Columna 2, haga clic con el botón derecho en el encabezado de la columna y seleccione fusionar.

    Asegúrese de utilizar un delimitador que no forme parte del contenido de los datos.

    Picture7.jpg

  3. Transponer la tabla. Vaya a la pestaña Transformar y presione el botón Transponer. (para tablas que requieren operaciones de transposición y tienen columnas en orden, las columnas deben combinarse en una sola, con un delimitador único.

    Picture8.jpg

  4. Promocionar encabezados. Haga la primera fila (que ahora contiene la combinación Solicitar ID‘arena Fecha de ordens) los encabezados. Esto es necesario para que los llevemos de vuelta a la columna con un paso de desvío.
    (por el bien de estos datos, también se requiere una pequeña limpieza para completar las filas con valores nulos antes de promover los encabezados)

    Picture9.jpg

  5. Seleccione las buenas columnas (Modo de envío y Segmento) y desvincular los demás. Esto traerá de vuelta la combinación Solicitar ID y Fecha de orden como una columna, con los valores subsiguientes como otra columna justo al frente. ¿Cuál crees que sería el siguiente paso a partir de aquí?

    Picture10.jpg

  6. Supongo que acertó. Ahora necesitamos dividir la nueva columna llamada Atributo, para separarlo en el Solicitar ID componente y el Fecha de orden Componente, usando nuestro delimitador inteligente.

    Picture11.jpg

  7. Lo último sería ordenar las cosas, según sea necesario. Como cambiar el nombre de los encabezados correctamente, filtrar los totales generales (están en algún lugar de estos datos) y cambiar el nombre de las columnas de manera adecuada.

    Picture12.jpg

Concluiré haciendo hincapié en el hecho de que, cuando necesite un paso de Transposición en sus pasos de limpieza, debe:

  1. Asegúrese de que no haya pasos de encabezado promocionados antes de realizar la transposición.
  2. Si tiene más de una columna en orden, combínelas en una antes de transponer.
  3. Para realizar una transposición parcial de las columnas seleccionadas, use la opción Unpivot.

Asegúrese de que los elementos que necesita transponer parcialmente estén en los encabezados de sus datos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *