Un requerimiento muy frecuente al momento de tratar con datos -particularmente nombres o “etiquetas”-, es querer ordenarlos de una forma “arbitraria”, es decir, que no sea alfabética. El ejemplo típico es el de los meses del año. Cuando uno quiere ordenarlos, sale: abril, agosto, diciembre, enero… en orden alfabético. Lo lógico, para un ser humano, es que salga primero enero, luego febrero, etc. Pero, en este caso, Power BI no puede hacer otra cosa… a menos que lo ayudemos.

Descarguen el archivo de trabajo desde aquí: Meses- Ordenar por

Carguemos el archivo de trabajo a Power BI. Cuando lleguemos a la pantalla mostrada abajo, seleccionemos la tabla “Meses”.

Screen Shot 08-10-17 at 09.17 PM

Luego de dar clic en “Cargar”, aparece el lienzo de Power BI. Seleccionemos la columna “Meses” para obtener algo como lo siguiente:

Screen Shot 08-10-17 at 09.21 PM.PNG

Automáticamente, el nombre del mes sale ordenado alfabéticamente. Afortunadamente, en el archivo de trabajo hay un campo adicional llamado “Orden” que corresponde al orden deseado de los meses. Por si no abrieron el archivo de trabajo, se ve así:

Screen Shot 08-10-17 at 09.24 PM

Como hemos cargado ambas columnas, podemos usar la columna “Orden” para que los meses salgan ordenados como deseamos. Primero hagamos clic en el botón “Data”

Screen Shot 08-10-17 at 09.26 PM

Luego seleccionemos la columna con los nombres de los meses (1), luego el menú “Modelado” (2), luego “Ordenar Por” (3) y en el menú desplegable seleccionamos el campo numérico que nos ayudará a ordenar como deseamos. En este caso el campo se llama “Orden” (4). Los  números entre paréntesis se corresponden con los números en rojo de la pantalla siguiente:

Screen Shot 08-10-17 at 09.29 PM

Nota: el orden en el que las filas aparecen en la pantalla anterior no tiene ningún impacto en cómo se muestra el reporte.

Listo. Si regresamos al reporte inicial, vemos que ya no está ordenado alfabéticamente sino que ya aparece como deseamos.

Screen Shot 08-10-17 at 09.33 PM

Eso es todo. Ya no hay necesidad de usar los viejos “trucos” de llamar a los meses “01 Enero”, “02 Febrero”, etc para que se ordenen. Esto es mucho mejor. Se puede usar esta técnica para ordenar etiquetas como se desee en la medida en que exista, asociado a las etiquetas, un campo numérico adecuado para tal fin.

Es muy importante que exista un solo valor asociado a cada etiqueta que se quiera ordenar. Por ejemplo, si la tabla en cuestión fuera la siguiente, no funcionaría el “Ordenar Por”. ¿Pueden ver por qué?

Screen Shot 08-10-17 at 09.46 PM

Pues sencillamente, Enero tiene dos valores asociados: 1 y 13. El mismo caso es para el resto de meses. Cuando se quiere hacer lo mostrado al inicio de esta publicación aparece un mensaje de error como el siguiente:

Screen Shot 08-10-17 at 09.47 PM

Dice: “No podemos ordenar la columna ‘Nombre’ por ‘Orden’. No puede haber más de un valor en ‘Orden’ par el mismo valor de ‘Nombre’. Por favor, escoja una columna distinta para ordenar o modifique los datos de ‘Orden’.

Buena suerte.