Fonction classement par date

Bonjour,

Je fais des recherches un peu partout pour résoudre mon problème mais en vain…voici le problème accompagné d’un fichier Excel exposant la problématique.

Dans la section Recensement de gauche, j’ai des informations en vrac que je dois classer automatiquement dans les colonnes de la section « classement statistique » à droite.

Les noms de famille uniquement doivent être classés dans les colonnes sous le bon mois en fonction du mois de naissance de chacun des individus.

Ce que je ne réussis pas à faire : classé selon le mois de naissance et recopier les noms un à la suite de l’autre dans une colonne lorsqu’il y a plusieurs individu dans un même mois.

Voilà j’espère avoir bien exposé mon problème

Merci beaucoup de votre aide

Sarah

10test-sarah.xlsx (10.06 Ko)

Bonjour,

Essayez ceci, cliquez sur la flèche jaune.

Cdlt

oui c'est exactement ce que j'ai besoin...mais vous avez fait ca en VBA? est-ce possible avec une fonction Excel?

oui c'est exactement ce que j'ai besoin...mais vous avez fait ca en VBA?

OUI

est-ce possible avec une fonction Excel?

Pourquoi faire simple quand on peut faire compliqué.

Qu'est-ce qui vous chagrine avec le VBA? Pensez-vous qu'une formule complexe sera plus facile à gérer, serez-vous capable d'en comprendre toutes les subtilités?

Je peux essayer de m'y amuser, mais sincèrement, le jeu en vaut-il la chandelle?

Bonjour merci beaucoup de prendre le temps de m'aider...vraiment j'apprécie beaucoup.

Je trouve très bien le VBA mais je ne sais pas comment faire...de plus ce que j'aime avec les fonctions Excel c'est l'aspect exécution automatique sans avoir cliquer sur un bouton pour obtenir le résultat.

j'aimerais bien voir comment c'est possible avec les fonctions Excel ainsi je pourrai adapter mes autres travaux...

cordialement

Je trouve très bien le VBA mais je ne sais pas comment faire,
comme je le précisais précédemment, pensez-vous que vous serez plus à l'aise avec les formules?

Voici la proposition avec formules, j'ai utilisé 2 colonnes supplémentaires, une pour extraire et convertir le mois en lettre et une autre pour concaténer le prénom et le nom, ce qui allègera la formule d'extraction des valeurs dans le tableau final.

Formule pour extraire le mois en texte dans la colonne E:

=TEXTE(MOIS(C3)*29;"mmmm")

Formule pour concaténer le prénom et le nom en colonne F:

=B3 & " " & A3

Formule pour le remplissage du tableau final en H3, à valider avec CTRL + SHIFT + ENTREE (la formule doit s'encadrer d'accolades)puis à tirer vers la droite puis vers le bas:

=SIERREUR(INDEX($E$3:$F$9;PETITE.VALEUR(SI($E$3:$E$9=H$2;LIGNE($1:$7);"");NBVAL(H$2:H2));2);"")

Cdlt

Définitivement je suis plus à l'aise avec les formules mais j'ai beaucoup d'intérêt pour apprendre le VBA et ainsi votre exemple va me permettre de progresser,

vous avez exactement résolu mon problème.

Merci beaucoup de votre aide

Re bonjour,

Dans la formule pour le remplissage du tableau final en H3 de votre model, Pouvez-vous m'expliquer la raison de : LIGNE($1:$7) ?

Merci

Bonjour,

Je vous l'avais bien dit que ce ne serait pas simple à comprendre.

Il y a 7 lignes à analyser, la formule matricielle fait une recherche de la ligne 1 (emplacement du premier élément correspondant à la ligne 3 de la feuille ) à la ligne 7 (7ème élément correspondant à la ligne 9 de la feuille).

Si vous ne connaissez pas le nombre exact de ligne de votre tableau, il faudra employer la fonction "INDIRECT" et "NBVAL" - 2 (pour les 2 lignes de titres)pour déterminer quelle sera la dernière ligne du tableau.

Est-ce plus clair?

Cdlt

Ce n'est effectivement pas simple mais très instructif...vos explications me permettent de mieux visualiser le code utilisé et d'en apprendre d'avantage sur les matricielles...

est-ce que j'abuse si je vous demande un exemple avec INDIRECT et NBVAL-2 ?

merci

Avec INDIRECT et NBVAL, formule en H3:

=SIERREUR(INDEX($E$3:$F$9;PETITE.VALEUR(SI($E$3:$E$9=H$2;LIGNE(INDIRECT("1:" & NBVAL($A:$A)-2));"");NBVAL(H$2:H2));2);"")

Cdlt

merci beaucoup pour votre temps mais encore une fois je ne parvient pas a comprendre $A:$A dans NBVAL comme c'était le cas dans le code précèdent avec ligne 1:7 ?

est-ce pour indiquer l'infini à partir de A moins les 2 premières ligne?

Merci

A:A = toute la colonne A, et NBVAL ne compte que le nombre de cellules contenant une valeur parmi toutes celles de la colonne A.

Auparavant avec Ligne(1:7) la plage était figée, donc pas commode si cette liste s'allonge.

Avec "LIGNE(INDIRECT("1:" & NBVAL($A:$A)-2)" plus de souci sur le nombre de cellules occupées.

Rechercher des sujets similaires à "fonction classement date"