[Formules] Extraire années uniques

Efgé

XLDnaute Barbatruc
Bonjour à tous
Je me mets aux formules et je bloque sur une extraction.
Sur la feuille "GENERAL" j'ai des dates en colonne C en format jj/mm/aaaa.
Sur la feuille "Calculs" je voudrais extraire une liste des années sans doublons (qui sert à la liste de validation de la cellule M1 de la feuille extraction).
J'arrive à retrouver les années, mais en trois colonnes :eek:
Pouvez vous me dire comment le faire en une seule formule ?
Cordialement
 

Pièces jointes

  • Test_Formules.xlsx
    19.2 KB · Affichages: 50

Jocelyn

XLDnaute Barbatruc
Re : [Formules] Extraire années uniques

Bonjour le Forum,
Bonjour Efgé,:)

une formule a mettre en F3 et a étirée vers le bas, plus besoin des colonnes C et D, formule matricielle:)

Code:
=SIERREUR(INDEX(ANNEE(GENERAL!$C$3:$C$19);EQUIV(PETITE.VALEUR(SI(NB.SI(Calculs!F$2:F2;ANNEE(GENERAL!$C$3:$C$19))=0;ANNEE(GENERAL!$C$3:$C$19));1);ANNEE(GENERAL!$C$3:$C$19);0));"")

Amicalement
 

Jocelyn

XLDnaute Barbatruc
Re : [Formules] Extraire années uniques

re,

Etant donné que les données que tu veux extraire sont numérique on peut se passer de la partie index la formule est un peu plus courte.

Code:
=SIERREUR(PETITE.VALEUR(SI(NB.SI($F$2:F2;ANNEE(GENERAL!$C$3:$C$19))=0;ANNEE(GENERAL!$C$3:$C$19));1);"")

voila
 

david84

XLDnaute Barbatruc
Re : [Formules] Extraire années uniques

Bonsoir Efgé, Jocelyn,

une autre possibilité :
Code:
=PETITE.VALEUR(SI(EQUIV(ANNEE(GENERAL!$C$3:$C$19);ANNEE(GENERAL!$C$3:$C$19);0)=LIGNE(INDIRECT("1:"&LIGNES(GENERAL!$C$3:$C$19)));ANNEE(GENERAL!$C$3:$C$19));LIGNE(1:1))
Vue comme cela et comparée à la formule proposée par Jocelyn, elle n'a éventuellement qu'un seul avantage : celui de ne pas avoir besoin de laisser la 1ère ligne vide (donc dans ton cas, on s'en fiche un peu).

Par contre, elle a un avantage que je trouve non négligeable par rapport au NB.SI(Plage;Critère)=0 : tu sais sans doute que le problème des matricielles sur des plages importantes est le temps de traitement.

Or l'avantage de cette formule est qu'en la modifiant légèrement comme ceci
Code:
=SIERREUR(PETITE.VALEUR(SI(EQUIV(ANNEE(GENERAL!$C$3:$C$19);ANNEE(GENERAL!$C$3:$C$19);0)=LIGNE(INDIRECT("1:"&LIGNES(GENERAL!$C$3:$C$19)));ANNEE(GENERAL!$C$3:$C$19));LIGNE(INDIRECT("1:"&LIGNES(GENERAL!$C$3:$C$19))));"")
, tu as la possibilité de sélectionner une plage de longueur équivalente à ta plage de traitement, de rentrer ta formule et de la valider.

Contrairement à l'utilisation du NB.SI(Plage;Critère)=0 où le recalcul se fait à chaque cellule, là tu crées une matrice unique. Le temps de calcul en est donc grandement amélioré sur des plages importantes.
Si tu veux des précisions, n'hésite pas.
A+
 

david84

XLDnaute Barbatruc
Re : [Formules] Extraire années uniques

Re
Tu peux déjà regarder le fichier que j'avais produit ici afin de comprendre le principe de cette formule.
Même si la validation sur une seule matrice (ma 2ème proposition) n'est pas traitée, la structure de la formule est la même et expliquée étape par étape.
Concernant la 2ème proposition, regarde également ici sur le site de JB.
A+
 

Discussions similaires

Statistiques des forums

Discussions
312 843
Messages
2 092 755
Membres
105 523
dernier inscrit
mouki62530