2010-03-08 7 views
2

j'ai une feuille de calcul que je le tri à partir d'une colonne « numéro d'article ». Donc, si la colonne du numéro d'élément a les valeurs suivantes:valeurs tri question Excel

2.2 
2.1.b 

Je veux la ligne avec le 2.1.b soit avant la 2.2 rangée. Cependant, la fonction de tri dans Excel met 2.2 à l'avance. Il doit déterminer la valeur en fonction du nombre de caractères.

est-il un moyen de faire trier la colonne en VBA?

Répondre

2

Cela peut facilement être fait dans Excel en créant une "liste personnalisée" puis en triant sur cette liste.

listes personnalisées vous permettent de créer votre propre ordre de tri par défaut. Vous pouvez créer une nouvelle liste personnalisée comme suit "0,1,2,3,4,5,6,7,8,9,., A, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z ". Vous pouvez ajouter à cela si votre tri nécessite une logique supplémentaire.

Cette nouvelle liste sera ensuite trier en fonction des chiffres en premier, de la période, puis d'une lettre.

Vous créez la liste, lors du tri pour la première fois, sélectionnez "Tri personnalisé", choisissez votre nouvelle liste, et vous avez terminé. Maintenant, lorsque vous triez, les données seront triées en fonction de vos nouveaux critères.

0

Je voudrais ajouter une colonne cachée avec une formule pour convertir le format 2.1.b à une valeur numérique plus simple, sortable, comme 10000*(first digit) + 100*(second digit) + (ascii(letter) - 'a'), où: premier chiffre = 10000*NUM(SUBSTRING(A1;FIND(".", A1)) ... etc.

1

Vous n'avez pas besoin d'utiliser le code pour le faire - Excel prend en charge cette intégré:

  1. Format « format numérique » de la colonne entière en tant que texte, pas général.
  2. Vous devrez entrer de nouveau les entrées numériques uniquement qui ont été entrées précédemment.

Comme alternative à l'étape 2 (si vous avez déjà un grand nombre d'entrées pré-existantes), vous pouvez utiliser la fonction TEXT et soit tri sur cette colonne ou copier-coller-les valeurs pour remplacer vos valeurs de la colonne d'origine .

J'ai testé cela dans Excel 2007, mais je suis assez sûr que ce comportement existe depuis un certain temps.

1

Si vous préfixez chaque valeur avec une apostrophe, cela indiquera à Excel que la valeur est un texte plutôt qu'un nombre.

Au moins, c'est la théorie.

Excel est assez agressif à essayer de corriger le texte qui ressemble à des chiffres. Il met une notification sur chaque cellule qu'il y a un nombre formaté en texte ("duh!"), Et ensuite vous devez sélectionner "Ignorer l'erreur" (il n'y a pas d'option pour "Ce n'est pas vraiment un nombre").

Ensuite, changez le format numérique de "Général" à "Texte" juste pour faire bonne mesure.

Ensuite, lorsque vous essaierez de le trier, il essaiera une fois de plus de tenir votre main et de corriger vos "erreurs". En choisissant "Trier séparément les numéros et les numéros stockés en tant que texte", vous pouvez faire en sorte que ce soit ce que vous voulez. (Il n'y a pas de texte "C'est tout explicatif", [explicite interjectif]! ", Malheureusement.)