1 votes

Tri et réorganisation des colonnes à l'aide d'une formule Excel

J'ai un ensemble de colonnes Excel comme suit (avec n nombre de lignes et de colonnes) enter image description here

Je veux qu'il soit trié et réordonné en utilisant le groupe, mais j'ai besoin que cela soit fait en utilisant la formule, et non l'option de tri simple d'Excel. Les résultats attendus sont les suivants :

enter image description here

Existe-t-il un moyen de le faire ?

2voto

Rajesh Sinha Points 8611

Je voudrais suggérer deux méthodes possibles, 1 Le premier est non programmatique (il utilise une formule Excel) et le second est non programmatique (il utilise une formule Excel). 2 nd est une macro VBA (méthode de programmation).

Attention :

La raison principale de la suggestion d'une macro VBA est que, comme le 1 La première méthode (utilisation d'une formule Excel) est une méthode multiple et fastidieuse.


Méthode 1 :

enter image description here

Comment cela fonctionne-t-il ?

  • Pour les données de l'assistant,

Formule dans une cellule F55:

=COUNTIF(B$55:B$60,"<="&B55)

Formule dans une cellule G55:

=SMALL($F$55:$F$60,ROW(A1))

Remplir les deux formules.

  • S ort par groupe, formule dans Cellule A63: Le remplir.

     =INDEX(B$55:B$60,MATCH(G55,F$55:F60),0)
  • Une formule de tableau (CSE),

    En cellule B63:

     {=INDEX($A$55:$A$60, MATCH(0, IF($A63=$B$55:$B$60, COUNTIF($B$62:$B62, $A$55:$A$60), ""), 0)}

N.B. Terminer par C trl+ S hift+ (en anglais) E nter et fill down.

En cellule C63:

  {=INDEX(C$55:C$60, MATCH(0, IF($A63=$B$55:$B$60, COUNTIF(C$62:C62, C$55:C$60), ""), 0))}

N.B. Terminer par C trl+ S hift+ (en anglais) E nter & fill D propre alors R ight.

Ajustez les références des cellules dans la formule si nécessaire.

  • Pour plus de propreté, vous pouvez cacher H elper Data.

Méthode 2 :

enter image description here

Comment cela fonctionne-t-il ?

  • Sélectionner la gamme A71:D77 et dans la case "Nom" (coin supérieur gauche), écrire le nom Mydata .
  • De D eveloppeur TAB hit D esigner puis I nsert.
  • Maintenant, à partir de A ctiveX Contrôle la sélection C ommand Bouton puis le dessiner sur la feuille.
  • D ouble Cliquez sur le C Bouton de commande pour ouvrir l'éditeur VB.
  • Copiez et collez ce code entre

P rivate Sub CommadButton1_Click()

Copier le code ici

E nd Sub

    Range("MyData").Sort Key1:=Range("MyData").Cells(2, 2), _
Order1:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
  • S ave et retourner à la feuille.

  • Désactiver D esign Mode puis D ouble Cliquez sur le bouton de commande.

  • Vous obtenez les données dans l'ordre suivant :

enter image description here

N.B. Plage de données source A71:D77 & R Nom de l'ange Mydata sont modifiables.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X