Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
rayhannon
Frequent Visitor

Desapilar columna

Hola a todos

Soy nuevo en este foro. Acabo de presentar una nueva carrera como analista de negocios y estoy aprendiendo a usar Power BI. He limitado la experiencia previa con Power Queries.

Tengo un problema en el que quiero desapilar datos de una columna y poner los datos en una tabla. He visto numerosos videos de youtube sobre consultas de energía para desapilar datos usando un colum de índice. Mi problema es que el número de puntos de datos en mis datos apilados es desigual, por lo que la opción de índice no funciona para mí. es decir, mi primer bloque de datos en la columna A contiene 20 puntos de datos, mi segundo bloque de datos contiene 15 puntos de datos. Cada bloque de datos se separa mediante una fila en blanco si esto es beneficioso.

¿Hay una solución para desapilar los datos en la columna A para crear una tabla mediante Power Query?

Cualquier ayuda es muy apreciada.

Gracias de antemano.

5 REPLIES 5
amitchandak
Super User
Super User

@rayhannon ,

Puede compartir datos de ejemplo y salida de muestra.

Hola

Perdón por el retraso. Ahora no estoy seguro de si desapilar la columna es la mejor solución. Volveré al principio para darle una breve descripción de mi problema y estoy abierto a cualquier posible solución.

Se adjunta un ejemplo de los datos de origen exportados para sobresalir desde un espectrofotómetro (utilizado para mezclar colores de pintura). Como se puede ver todos los datos se apilan en dos columnas. He incluido una breve descripción de los datos incluidos en cada fila de la primera tirada de color.

El espectrofotómetro produce un nuevo bloque de datos para cada tirada de color, que se separa del color anterior ejecutado por una fila en blanco. He inscuded dos corridas de color en la hoja adjunta. El problema es que puede haber 100 de color al día, todo con diferentes cantidades de colores mezclados.

Sample Data.png

Esperaba usar el poder Bi para los siguientes requisitos de presentación de informes;

  1. La cantidad de colores de mezcla utilizados diariamente/mensualmente
  2. La cantidad de colores de mezcla utilizados por número de trabajo de no de trabajo/padre

Lo que es mejor era ordenar mis datos antes de usar técnicas de visulación en Power BI. He ordenado los datos manualmente y funciona bien, pero esto no es una solución para grandes archivos de Excel con cientos de corridas de color.

Cualquier puntero o ayuda sería muy apreciado.

Gracias de antemano @amitchandak

Hola @rayhannon ,

Tal vez usted puede probar los siguientes pasos y los códigos relacionados en el editor avanzado en el editor de consultas de energía y le ayudaré a entender:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("pVLLbsIwEPyVVc4E/IgT4GaCG1zyoIlpC4hD2iJRCbVS2h74+yZOnCgCpEo9emd21jO7u51FKXKsgWXtBztLHX+Kr7f8DAyivHg9AkEEGRDTqUOmxDPvZV4cPr6Xh9PpbEp+EiZpxJW/kHGATfX+8wUIowhkAAsOcxu1GpmIJERcKsCuTYgpXxJV8Z6frghgTOAuhJivuFokIaRiXkJoiKiLNIFovCxD8iznAjajTBMwYw3BqwgPaxnHbTdGqAap7l6J0lQsYgVJyuNA1BMMx0GdQMSDksabKWTIWpIWkmnAt7Kb02mMK3gjwjB5gtAm2EE1wTWEibGRKttjk7qfmH6m/zAbZe0P+vo6XWjSVqoE3c7kbQO4UzCBU8/5+7mwKR3//1xIq+H7sjfjkqHvhF5pLd1WLoNUiLgKqp8fpRXo83Qmt+UVPcokFKofwO2UnKHT7kHrrLNmlc0p4ltLKOWdqnP/Cw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type number}}),
    #"Replaced Value" = Table.ReplaceValue(#"Changed Type","",null,Replacer.ReplaceValue,{"Column1"}),
    #"Added Index" = Table.AddIndexColumn(#"Replaced Value", "Index", 1, 1),
    #"Added Custom" = Table.AddColumn(#"Added Index", "Custom", each let i = [Index]
in
Table.RowCount(Table.SelectRows(#"Added Index",each [Index]<i and [Column1]=null and [Column2]=null))),
    #"Grouped Rows" = Table.Group(#"Added Custom", {"Custom"}, {{"Data", each _, type table [Column1=text, Column2=number, Index=number, Custom=number]}}),
    #"Added Custom1" = Table.AddColumn(#"Grouped Rows", "ShapedData", each let  #"Sorted Rows" = Table.Sort([Data],{{"Index", Order.Ascending}}),
    #"Added Index1" = Table.AddIndexColumn(#"Sorted Rows", "Index.1", 1, 1),
    #"Removed Columns" = Table.RemoveColumns(#"Added Index1",{"Index", "Custom"})
  in
  Table.SelectRows(#"Removed Columns",each [Column1] <> null or [Column2] <> null)),
    #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Custom.1", each let job = [ShapedData]{0}[Column1],
dt = [ShapedData]{1}[Column1] & " "&[ShapedData]{2}[Column1]
in
Table.Skip(Table.AddColumn(Table.AddColumn([ShapedData],"Job Number",each job),"Date Time",each dt),3)),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom2",{"Data", "ShapedData", "Custom"}),
    #"Expanded Custom.1" = Table.ExpandTableColumn(#"Removed Columns", "Custom.1", {"Column1", "Column2", "Index.1", "Job Number", "Date Time"}, {"Custom.1.Column1", "Custom.1.Column2", "Custom.1.Index.1", "Custom.1.Job Number", "Custom.1.Date Time"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Expanded Custom.1",{{"Custom.1.Date Time", type datetime}, {"Custom.1.Job Number", Int64.Type}, {"Custom.1.Index.1", Int64.Type}, {"Custom.1.Column2", type number}, {"Custom.1.Column1", type text}})
in
    #"Changed Type1"
  1. Sustituya los valores de " " a "null":replace values.png
  2. Agregue una columna de índice para marcar cada fila:add index.png
  3. Agregue una columna personalizada para distinguir diferentes bloques de datos:custom column.png
  4. Agrupar por la columna personalizada anterior:group by.png
  5. Agregue columnas personalizadas para extraer columnas y omitir algunas columnas:add columns.png
  6. Reomove columnas innecesarias y expande la tabla:remove and expand.png
  7. La tabla final es así:final table.png
  8. Para contar los colores por fecha / número de trabajo, simplemente cree un objeto visual de tabla y aplique los filtros correspondientes en el objeto visual de la tabla:filter.png

Todos los pasos se pueden ver en los pasos aplicados en el derecho del editor de consultas de energía y puede utilizar el icono de engranaje para probar y comprobar:

applied steps.png

Por último, el archivo de ejemplo adjunto espera ayudarle, por favor pruébelo: PBIX

Mejores looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola @v-yingjl ,

Muchas gracias por tomarse el tiempo para responder con tanto detalle. Fue muy útil. ¿Puedo hacerle unas preguntas de seguimiento?

  1. Observo que ha introducido los datos que le envié en formato de imagen en una tabla sin incluir el total de columnas. Si fuera a traer los datos directamente de Excel, ¿cuál es la mejor manera de eliminar las filas no deseadas al principio? Puede haber 100 celdas totales en la columna. ¿Encubriría las filas que contienen valores totales en filas en blanco y luego eliminaría filas en blanco?
  2. Observo que usted ingresó algunas columnas personalizadas. ¿Ingresó la fórmula de columna personalizada directamente o hay una herramienta que le ayudará a escribir código M?
  3. ¿Es esencial poder escribir consultas de energía en M si se trabaja con Power BI? Si es así, puedes dirigirme a algunos buenos cursos para principiantes.
  4. ¿Puede darme un breve resumen del Paso 5 - Agregar columnas personalizadas para extraer columnas y omitir algunas columnas:

Gracias de nuevo por su ayuda. Es muy apreciado.

Atentamente.

raya

Hola @rayhannon ,

Es un placer🙂.

1. No ingresé estas columnas totales anteriormente becasuse pensé que se utilizan como referencia. Si desea importar desde Excel, puede quitar estas columnas directamente y mantener una fila en blanco entre dos bloques de datos.

2. Al crear columnas personalizadas, necesita usar algunas fórmulas que power bi le pedirá si ingresa las primeras letras de la fórmula en la página de columna Personalizada.custom column.png

3. No es esencial poder escribir consultas de energía en M excepto crear algunas columnas personalizadas. Como he publicado anteriormente, puede hacer clic en el icono de engranaje para ver las acciones de detalle en Pasos aplicados y puede encontrar las acciones correspondientes en la barra de menús en la parte superior del editor de consultas de potencia.

Por ejemplo, el uso de la función agrupar por solo tiene que encontrar el icono Agrupar por en el menú. Puse todos los códigos en este post es sólo conveniente para presentar cada paso de resumen.

Si está interesado en la función de consulta M, puede hacer referencia a estos dos documets de microsoft como una comprensión sencilla:

group by.png

4. Añadir columna personalizada1 es shapedata para eliminar la 'columna personalizada':

add custom2.pngadd custom1.png

Agregar columna personalizada2 es omitir estas filas que pensé que se utiliza como algo sobre el número de trabajo y establecerlas como nuevas columnas para omitir estas filas anteriores (no columnas, lo siento por la publicación anterior)

Para este problema, extraijo las filas top3 y las considero dos 2 columnas nuevas (depende de su propia decisión) y elimino estas 3 filas seleccionadas

add custom4.pngadd custom3.png

Mejores looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors