Defina el orden de las columnas con un número variable de columnas

Un usuario Pregunto ✅

skean21

Querida comunidad,

Estoy enfrentando el siguiente problema:

Quiero que las columnas de una tabla aparezcan en un orden definido, el problema es que no siempre existen todas las columnas. Cuando aplico el comando de orden de clasificación, puedo ordenar las columnas; el problema es que tan pronto como no existe una columna en el comando, Power Query muestra un mensaje de error.

Por ejemplo, mi tabla tiene estas columnas:

columnaA columnaB ColumnaC columnaD columnaE

Quiero que aparezcan en el orden de esta tabla (TableA):

Columna Posición

columnaB 1
columnaA 2
columnaD 3
columnaE 4
ColumnaC 5

Ahora sería posible que, por ejemplo, la columna D no exista, por lo que ColumnE debería estar en la posición 3.

El orden de clasificación que quiero podría definirlo en una tabla como la tabla A.

¿Alguien puede ayudarme a realizar esto en Power Query?

Gracias por adelantado,

Saludos

Félix

Alba

Hola @skean21

Suponiendo que su TableA esté ordenado (como lo muestra):

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSQcKxsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ColumnA = _t, ColumnB = _t, ColumnC = _t, ColumnE = _t]),

    #"Reordered Columns" = Table.ReorderColumns(Source,List.Intersect({TableA[Column],Table.ColumnNames(Source)}))
in
    #"Reordered Columns"

Copie el código anterior en una consulta en blanco para ver los pasos

Por favor marque la pregunta resuelta cuando termine y considere dar felicitaciones si las publicaciones son útiles.

Comuníquese conmigo en privado para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

Alba

Hola @skean21

Suponiendo que su TableA esté ordenado (como lo muestra):

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSQcKxsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ColumnA = _t, ColumnB = _t, ColumnC = _t, ColumnE = _t]),

    #"Reordered Columns" = Table.ReorderColumns(Source,List.Intersect({TableA[Column],Table.ColumnNames(Source)}))
in
    #"Reordered Columns"

Copie el código anterior en una consulta en blanco para ver los pasos

Por favor marque la pregunta resuelta cuando termine y considere dar felicitaciones si las publicaciones son útiles.

Comuníquese conmigo en privado para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.

Salud

SU18_powerbi_badge

skean21

En respuesta a Alba

@AlB muchas gracias, ¡muy útil!

Deja un comentario

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