Atribuer un rang en fonction de deux critères (un par colonne)

Bonjour,

J'ai un problème et je ne trouve pas de solution pour le résoudre.

J'ai deux colonnes : la colonne A correspond à un échelon. La colonne B correspond à l'ancienneté dans cet échelon (c'est une date)

En colonne C, je souhaite classer en priorité l'échelon le plus élevé au rang le plus élevé puis, en cas d'égalité d'échelon (colonne A), je souhaite prioriser celui qui le plus d'ancienneté (colonne B). Cela correspond à classer en effectuant un tri à deux niveaux (d'abord A puis B) mais je dois utiliser une formule.

EchelonAncienneté dans l'échelonRésultat attendu
831/03/20213
929/11/20205
923/03/20206
823/12/20205
711/01/20221
1319/01/20227
809/01/20222

Je n'arrive pas à trouver la formule appropriée.

Merci de votre aide.
C.

Bonjour,

Sur Excel 2016 pas facile...

J'aurais bien aimé utiliser la fonction TRIER qu'offre les versions plus récentes.

Malheureusement sans ça je peux juste proposer un bricolage:

31classeur1-1.xlsx (15.76 Ko)

Merci beaucoup.

Je dois bien avouer que je ne comprends pas la logique de la formule dans la colonne E "pour rang".

Puis-je la réutiliser en l'état dans un autre tableau qui comporterait plus de ligne et plus d'échelon ? Je vais faire quelques tests.

Si ce n'est pas trop abusé, je serai curieuse de la fonction "trier" car j'utilise excel 2016 côté pro et je suis obligée de faire avec mais j'ai excel 365 à domicile et j'aimerai assez avoir des arguments pour solliciter le service informatique et passer sur une version d'excel plus récente.

Bonjour Ausecour, Calcifer

Simplement, tu rajoutes une 4ème colonne pour indexer l'ordre initial de ton tableau.

Ensuite tu fais le tri successif comme indiqué.

Tu remplis ta 3ème colonne puis pour finir tu reviens à l'ordre initial en t'appuyant sur la 4ème colonne.

klin89

Bonjour,

Avec la fonction TRIERPAR on aurait:

=TRIERPAR(Tableau1[Echelon]&"_"&Tableau1[Ancienneté dans l''échelon];Tableau1[Echelon];-1;Tableau1[Ancienneté dans l''échelon];1)

enregistré sous le nom "_tableauTri"

ça permet de filtrer le tableau par rapport à l'échelon puis l'ancienneté, j'ai créé un identifiant unique pour chaque ligne en prenant l'échelon et l'ancienneté, que je sépare avec un "_".

Je vais pouvoir ensuite retrouver cet identifiant unique dans ce tableau pour savoir où se situe ma ligne et définir son rang:

=1+NBVAL([Echelon])-EQUIV([@Echelon]&"_"&[@[Ancienneté dans l''échelon]];_tableauTri;0)

Le fichier avec la formule:

21classeur1-1.xlsx (17.73 Ko)

Sinon en effet il y a la solution plus simple de Klin89.

Concernant ma première proposition, oui ça marchera avec plus de lignes et d'échellons

bonjour

une contribution

=SI(SOMMEPROD(--((A$2:A$8-B$2:B$8)<A2-B2))=0;NB(A$2:A$8);SOMMEPROD(--((A$2:A$8-B$2:B$8)<A2-B2)))

Bonjour à tous !

Pour le "fun", une proposition Microsoft 365 pour générer l’entièreté du tableau (sur la base du classeur d'Ausecours - Merci !) :

Merci à tous pour votre aide !

J'aurai dû préciser que je souhaite créer un fichier avec toutes les formules intégrées pour éviter les manipulations à l'utilisateur final qui ne maîtrise pas bien excel.

Le tableau de base est plus complexe et comprend de nombreuses autres formules car d'autres critères sont pris en compte. Le but est de pouvoir le dupliquer facilement en faisant en sorte que l'utilisateur ait le moins de manipulations possible à faire à l'exception du "copier/coller" des données de départ parmi lesquelles les échelons et les dates d'ancienneté dans l'échelon (ce nombre varie, je peux avoir 10 lignes comme je peux en avoir 40).

Je ne peux donc pas utiliser les solutions qui impliquent d'utiliser la fonction tri car elles sont trop "compliquées" pour l'utilisateur (le plus compliqué pour l'utilisateur serait pourtant le plus simple pour moi...). Cela écarte la solution proposée par klin89.

Je ne peux pas utiliser les solutions qui nécessitent d'utiliser une formule qui doit être modifiée en fonction des échelons et des dates car il faudrait modifier la formule à chaque nouveau copier-coller comme la formule proposée par Tulipe_4.

La proposition d'ausecour fonctionne bien sur les tous les tests que j'ai réalisés. J'ai hâte d'essayer vos propositions sur excel365 mais je suis encore au bureau donc limitée à 2016 pour le moment.

Bonjour à tous de nouveau !

Précisions :

  • Avec la proposition Microsoft 365, si un tableau structuré de la source peut être inséré, la formule ne nécessite aucune manipulation.
  • Un traitement (très basique) via Power Query peut aussi retourner un résultat identique (Actualisation si la source change).

Power Query est nativement intégré dans Excel 2016.

Merci JFL, je suis toujours au bureau donc je n'ai toujours pas testé sur 365 mais je vais testes toutes les propositions.

bonjour le fil, une proposition comme la formule de Tulipe_4 mais avec un tableau structuré

22classeur1-1-1.xlsx (24.71 Ko)
Rechercher des sujets similaires à "atribuer rang fonction deux criteres colonne"