RL1
¿Existe una forma sencilla de ordenar los datos en un orden natural en PowerBI?
es decir, poder ordenar una columna de texto para que se ordene como:
A1, A2, A10, A11, A12, A20, A21
en vez de:
A1, A10, A11, A12, A2, A20, A21
Gracias.
datosX
@RL1 Como solución alternativa, puede editar la consulta. Divida la columna por número de caracteres, use 1 división izquierda, obtenga una nueva columna numérica y ordénela.
¡¡Espero eso ayude!!
Marcel Beug
Depende de la definición de «Natural»…
Mi sugerencia sería agregar una columna con la parte numérica, ordenar esa columna y luego eliminar esa columna, como se ilustra en este video de 30 segundos.
sean
En respuesta a Marcel Beug
@MarcelBeug
Desafortunadamente, aunque esto es no un sustituto por Ordenar por columna en la Vista de datos (¡todavía tendrá que ordenar por columna!)
¡Y luego no se olvide de esta columna de orden de clasificación cuando esté usando la función TODO!
https://blog.crossjoin.co.uk/2015/12/15/power-bi-desktop-sort-by-column-and-dax-calculations-that-us…
Marcel Beug
En respuesta a sean
@Sean, aparentemente, uno no puede especializarse en Power Query sin suficiente conocimiento de DAX…
Si entiendo correctamente, la columna de números que creé en mi solución debe conservarse, para que pueda usarse como columna de clasificación en la Vista de datos.
sean
En respuesta a Marcel Beug
Sí, duplique la columna original, divídala y cree su Ordenar columna en el Editor de consultas, ¡y luego use esa columna para Ordenar por!
¡Pero de nuevo, no olvide que ha aplicado esta Ordenación o la función TODOS no le dará el resultado correcto!
Casi comencé a reconstruir un modelo de datos, porque no podía entender por qué estaba obteniendo resultados incorrectos…
http://community.powerbi.com/t5/Desktop/ALL-Function-Mystery/mp/107458/highlight/true#M45087
Perro
En respuesta a sean
Hola,
es un poco largo pero podría superar el escenario TODO
¿podría considerar crear una columna calculada a partir de las columnas divididas que rellena la parte numérica en una nueva columna?
entonces
A1 se convierte en dos columnas A y 1, pero la nueva columna adicional creada tiene la A y luego un «relleno con ceros» (tal vez formato a 10)
A1 = A0000000001
A2 = A0000000002
A11 = A0000000011
luego ordenar por la nueva columna?
Estoy seguro de que hay una forma más elegante de hacerlo, pero probablemente podría hacerlo en una columna calculada.
=
VAR TextToSearch = Nominales[Management Reporting Code]
VAR en1 =
SI.ERROR(ENCONTRAR («0», TextToSearch), EN BLANCO())
VAR en2 =
SI.ERROR(ENCONTRAR («1», TextToSearch), EN BLANCO())
VAR en3 =
SI.ERROR(ENCONTRAR («2», TextToSearch), EN BLANCO())
VAR en4 =
SI.ERROR(ENCONTRAR («3», TextToSearch), EN BLANCO())
VAR en5 =
SI.ERROR(ENCONTRAR («4», TextToSearch), EN BLANCO())
VAR en6 =
SI.ERROR(ENCONTRAR («5», TextToSearch), EN BLANCO())
VAR en7 =
SI.ERROR(ENCONTRAR («6», TextToSearch), EN BLANCO())
VAR en8 =
SI.ERROR(ENCONTRAR («7», TextToSearch), EN BLANCO())
VAR en9 =
SI.ERROR(ENCONTRAR («8», TextToSearch), EN BLANCO())
VAR en 10 =
SI.ERROR(ENCONTRAR («9», TextToSearch), EN BLANCO())
VAR Pos. Real =
CAMBIAR (
CIERTO (),
At1 <> EN BLANCO (), At1,
At2 <> EN BLANCO (), At2,
At3 <> EN BLANCO (), At3,
At4 <> EN BLANCO (), At4,
At5 <> EN BLANCO (), At5,
At6 <> EN BLANCO (), At6,
At7 <> EN BLANCO (), At7,
At8 <> EN BLANCO (), At8,
At9 <> EN BLANCO (), At9,
A las 10 <> EN BLANCO (), A las 10,
BLANCO ()
)
var Número =si(ActualPos <> en blanco(), MID (TextToSearch, ActualPos, LEN (TextToSearch) – (ActualPos – 1)))
REGRESO
SI (
ISBLANK (Pos.Actual),
BLANCO (),
IZQUIERDA ( TextToSearch, ActualPos -1 )
& FORMATO (VALOR(Número),
«00000»)
)