Tenemos la siguiente lista de provincias.

Vemos que algunas provincias, la primera letra esta en minúsculas, al contrario, que las demás, con una celda dentro del modelo, vamos a la pestaña de datos, dentro del grupo obtener y transformar, hacemos clic en de una tabla o rango.

Ordenamos de la A la Z, desde la pestaña de inicio.

¿Qué ha ocurrido?
Bien, vemos que se ha ordenado correctamente, pero las provincias cuya primera letra esta en minúsculas, han quedado ordenadas al final.

Para que la ordenación sea correcta, todas las primeras letras, deben de estar en mayúsculas, para ello, vamos a la barra de fórmulas, vemos la expresión.
= Table.Sort(#"Tipo cambiado",{{"Provincias", Order.Ascending}})
Tenemos una función llamada Text.Upper, esta función convierte todos los caracteres a mayúsculas.
Sintaxis
Text.Upper(text as nullable text, optional culture as nullable text) as nullable text
Esta función tiene un primer argumento que es texto, que es el texto para convertir a mayúsculas, y, tiene un segundo argumento que es opcional, que es culture, que es el país en el que estamos trabajando, por ejemplo, para España, seria, “es-ES”.
En la barra de fórmulas, antes de las comillas de apertura de Provincias.

Ponemos la palabra Each (para cada), dejamos un espacio, ponemos la función Text.Upper, abrimos un paréntesis.
= Table.Sort(#"Tipo cambiado",{{each Text.Upper(
Debemos de sustituir las comillas dobles, por corchetes, el resultado es el mismo, es una manera diferente de referirnos a una columna, y, cerramos paréntesis.
= Table.Sort(#"Tipo cambiado",{{each Text.Upper([Provincias]), Order.Ascending}})
Aceptamos, y, vemos que las provincias continúan como al principio, pero han sido ordenadas de forma correcta.

Esta ordenación es debido al código ASCII, cada símbolo, letra, o, numero le corresponde un número, cerremos y carguemos el modelo en Excel.
Vamos a la hoja datos.
En la celda D2, voy a usar la función IZQUIERDA, donde como argumento texto, selecciono las provincias, y, omito el argumento numero de caracteres, por defecto, extraerá un carácter, que es lo que quiero.
=IZQUIERDA(Provincias[Provincias])
Tenemos la primera letra de cada provincia, tenemos una función llamada CODIGO, que nos devuelve el valor numérico que le corresponde a una letra, numero, o, símbolo, pues la aplicamos a las letras obtenidas por la función IZQUIERDA.
=CODIGO(D2#)
Vemos el numero que corresponde con cada letra.
Vemos que a la letra “A” mayúscula le corresponde el código 65, y, a la letra “a” minúscula le corresponde el código 97.

La diferencia de una letra mayúscula respecto a una letra en minúscula es de 32.
Por eso, cuando en Power Query hemos ordenado de menor a mayor, las provincias con la primera letra en minúsculas han quedado al final.

Comentarios