Mover filas manualmente en una tabla

Un usuario Pregunto ✅

sfung

Hola, estoy reportando datos en formato de tabla. He ordenado las filas en orden por columnas, pero necesito mover manualmente una fila.

¿Hay alguna forma de hacer esto?

Gracias

Rocco_sprmnt21

esperando a que la EM desarrolle lo que necesita, pruebe esto función:

let
    moveRow = (tab,row, posToMove)=>
    let 
    Pos=Table.PositionOf(tab,row),
    fromPos=Table.RemoveMatchingRows(tab,{row}),
    toPos=Table.InsertRows(fromPos,Pos+posToMove,{row})
    
    in 
        toPos
in
    moveRow

si tienes una tabla como esta y quieres mover la fila [col1=22,col2=bb] dos posiciones abajo

image.png

puedes llamar a la función y obtener esto

image.png

si quieres mover fila [col1=33,col2=cc] dos posiciones arriba (use una posición relativa negativa)

image.png

Es posible usar este esquema para agregar también la gestión de mover cualquier fila de pos Pi a la posición Pf

sfung

Hola a todos, muchas gracias por todas sus sugerencias. Como tengo un conocimiento bastante básico de Power BI, la opción más fácil es incluir una tarjeta de índice adicional que puedo usar para clasificar en el orden requerido. No es la opción más eficiente, pero probablemente una que pueda entender y me lleve a donde necesito estar.

¡Gracias de nuevo!

Steve

Edhans

En respuesta a sfung

A veces, @sfung, debes hacer lo que mejor entiendes, ya que te facilitará la vida en el futuro, ya que tendrás que modificarlo.

Si puede, felicite (el pulgar hacia arriba) a cualquiera que haya ayudado en este hilo y marque su solución como la respuesta final para que este hilo pueda marcarse como resuelto.

¡Envíela con cualquier otra pregunta sobre este o cualquier otro proyecto!

Rocco_sprmnt21

esperando a que la EM desarrolle lo que necesita, pruebe esto función:

let
    moveRow = (tab,row, posToMove)=>
    let 
    Pos=Table.PositionOf(tab,row),
    fromPos=Table.RemoveMatchingRows(tab,{row}),
    toPos=Table.InsertRows(fromPos,Pos+posToMove,{row})
    
    in 
        toPos
in
    moveRow

si tienes una tabla como esta y quieres mover la fila [col1=22,col2=bb] dos posiciones abajo

image.png

puedes llamar a la función y obtener esto

image.png

si quieres mover fila [col1=33,col2=cc] dos posiciones arriba (use una posición relativa negativa)

image.png

Es posible usar este esquema para agregar también la gestión de mover cualquier fila de pos Pi a la posición Pf

Rocco_sprmnt21

En respuesta a Rocco_sprmnt21

o si te gusta más jugar con GUI (y no hay muchas filas):

  1. transponer su tabla;
  2. mueve tu fila que ahora es una columna en la posición deseada,
  3. transponer tu tabla

PD

Si desea mantener los nombres de las columnas originales, debe, permaneciendo siempre en el entorno de la GUI, transformar los encabezados en la primera fila y luego, al final, promover de nuevo la primera fila a encabezados.

ziying35

Hola, @sfung

Tengo entendido que sus datos deben ordenarse en un orden particular, ¿verdad? O desea mantener una fila de sus datos en una posición fija, para que no participe en la clasificación. Si es así, entonces se puede hacer. ¿Puede cargar un archivo que ha sido borrado de datos confidenciales en el disco de la nube y luego compartir el enlace aquí?

Hola @sfung,

Puede usar la consulta de energía para eliminar la fila, si es posible, ¿podría informarme información más detallada (como su resultado esperado, sus datos de muestra y su lógica)? Entonces intentaré probar esto en mi entorno.

Enmascare los datos confidenciales antes de cargarlos.

Gracias por su comprensión y apoyo.
Atentamente,
Zoe Zhi

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Edhans

No. No puede mover una fila manualmente. Las filas en Power BI (DAX o Power query) no son como filas en Excel que tienen números y puede moverlos.

Necesitaría agregar un índice que tuviera algo de lógica para saber que lo que percibe está en la fila 14, desea moverlo por encima de lo que está en la fila superior, y luego ordenar por ese índice.

La única forma de intentar hacer esto que puedo concebir sería una molestia, pero sería en la línea de esto: suponga que desea que las filas 13 y 14 cambien de lugar

  1. Utilice Table.RowCount para obtener filas totales
  2. use Table.FirstN para obtener las filas 1-12
  3. Use Table.LastN para obtener todas las filas por debajo de 14 usando el recuento de # 1 anterior menos 14
  4. Use Table.Skip para eliminar las filas de la tabla 1-13 de la tabla original, luego Table.Primero para mantener esa fila como fila 14
  5. Utilice Table.Skip para eliminar las filas de la tabla 1-12 de la tabla original, luego table.primero para mantener esa fila como fila 13
  6. Cree una nueva tabla con Table.Combine y combine la tabla n. ° 2, 4, 5 y luego 3

Si no conoce los números de fila, entonces se vuelve más complejo ya que tiene que usar List.PositionOf para encontrar lo que está buscando y en qué fila se encuentra. Se volverá realmente tedioso como se puede imaginar, pero es factible.

Luego, debe agregar un índice, porque ninguno de los órdenes de fila es importante para los objetos visuales de Power BI. Clasifican datos.

Ajinkya369

Hola @sfung,

Muéstrame un ejemplo para obtener una aclaración adecuada de tu problema.

Gracias

Deja un comentario

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