Bonjour.
Pour résumer, votre problème vient du fait que vous essayez de trier par ordre croissant une colonne contenant du texte. Un tri croissant sur une colonne de texte revient à faire un tri par ordre alphabétique. Pour reprendre votre exemple, une colonne contenant la donnée PM1028 sera placera avant une colonne contenant PM95
car le 1 se place avant le 9 dans l'alphabet.
Pour pouvoir trier correctement votre colonne,
il faut que tous les éléments de la colonne aient le même nombre de caractères. comme ça, le tri par ordre alphabétique sera correct.
Il va falloir modifier les données.
Reprenons votre exemple (en ne prenant que la colonne qui nous intéresse). Je vais détailler pas à pas pour bien expliquer la procédure.
Aperçu du tableau :

Insérez une colonne à droite de la colonne contenant les informations. Cette colonne nous permettra
d'extraire les deux lettres PM.
La formule est : =GAUCHE(A1;2)
Cette formule extrait les deux premier caractère de gauche de la cellule A1.
Nous avons donc PM dans chaque cellule.

Insérez une nouvelle colonne à droite de celle que nous venons de créer. Cette colonne contiendra le reste de la cellule A1. La formule est :
=CNUM(STXT(A1;3;5))
Cette formule permet d'extraire tous les caractères de la cellule A1 en commençant au caractère numéro 3 et en prenant les 5 suivants.
Vous aurez donc des valeurs contenant 2, 3 ou 4 caractères
Exemple : pour PM95, vous aurez 95, pour PM100, vous aurez 100 et pour PM1028, vous aurez 1028 et ainsi de suite.

Insérez une colonne à droite de celle que nous venons de créer :
Copiez y la formule suivante :
=SI(NBCAR(C1)=2;CONCATENER("00";C1);SI(NBCAR(C1)=3;CONCATENER("0";C1);C1))
Cette formule applique la règle suivante :
Si la cellule C1 contient 2 caractères, on ajoute 00 devant le texte, si la cellule C1 contient 3 caractères, ont ajoute 0 devant le texte, sinon, on ne fait rien. Comme les données de la colonne C vont de 2 à 4 caractères, cela fonctionne.
Cela va donner :
0095 au lieu de 95
0100 au lieu de 100
1028 restera 1028

Enfin, dans une dernière colonne, nous allons fusionner les colonne B et D pour obtenir les données corrigées.
La formule sera =CONCATENER(B1;D1)
Il vous suffit de faire un copier puis un collage valeur de toutes les données de cette colonne pour écraser les formules par leur contenu texte. Après cela, lorsque vous ferez un tri, les données seront correctement placé.
Aperçu avec tri sur la colonne A :
Aperçu avec tri sur les données corrigées :
Quelques remarques : Cette formule ne fonctionne que pour les données commençant par deux caractères et dont le nombre de caractères suivants est compris entre 2 et 4 (Cf. votre demande).
De plus, vérifiez que vos colonnes ne comportent pas d'espace (car l'espace est considéré comme un caractère en texte). Cela causerait un décalage.
Enfin, certaines de vos données se situent sur plusieurs lignes. Cela pourrait poser des problèmes de tris. Par contre pour cela, il faudrait revoir la façon dont vous extrayez les données de votre base. D'une façon générale, pour faire des tri, il faut que les données se situent sur une seule ligne.
Bon courage.