2016-10-07 1 views
4

Je reçois un résultat inattendu lorsque je trie une liste avec Excel ou avec un VBA (Range.Sort). Il semble que le trait d'union est tout simplement ignoré lorsque le texte est triée:Ordre inattendu pour une plage triée avec des caractères non alphanumériques

liste triée avec Excel

align-content 
align-items 
alignment-baseline << Should be after "align-self" 
align-self 
animation-delay 

La même liste triée avec Libre Office

align-content 
align-items 
align-self 
alignment-baseline 
animation-delay 

La documentation doesn Ne fournissez aucune information sur ce comportement:

https://support.office.com/en-gb/article/Sort-data-in-a-range-or-table-62d0b95d-2a90-4610-a6ae-2e545c4a4654?ui=en-US&rs=en-GB&ad=GB#__toc246836970

https://msdn.microsoft.com/en-us/library/office/ff840646.aspx

est donc là une règle derrière ce comportement?

Existe-t-il une option pour trier la liste de la même manière qu'un humain (comme le fait Libre Office)?

+0

Que considérez-vous «de la même manière qu'un humain»? – Comintern

+0

@Comintern, par humain Je veux dire de la même façon que Libre Office, ce qui est probablement la même chose qu'un humain sain d'esprit. Je ne vois personne qui placerait 'alignment-baseline' après' align-items' et avant 'align-self' lorsqu'on lui a demandé de commander la liste. – michael

+0

Généralement, le tri nécessite tellement de code que j'enregistre une macro et la modifie. Avez-vous essayé cela? – Absinthe

Répondre

4

Excel ignore les tirets en faisant le tri, à moins que ce soit la seule différence entre deux mots.

Une solution consiste à créer une "colonne auxiliaire", en remplaçant le trait d'union(Code 45) avec un point(code 46). Trier sur la colonne d'aide

=SUBSTITUTE(A1,"-",".") 

J'ai lu quelque part que l'ordre de tri par défaut a une séquence:

  • apostrophe
  • tiret
  • espace

avec le premier deux généralement ignorés

Cela étant, le remplacement du trait d'union par un espace pourrait être plus logique.

+0

IIR ignore également les apostrophes. – Comintern

+0

@Comintern Oui, c'est le cas. Et, si c'est un problème, vous pouvez appliquer une correction similaire. Compte tenu de ce que j'ai lu concernant l'ordre de tri par défaut, il serait peut-être préférable de remplacer l'un ou l'autre par un «espace» –