Rajouter une condition à cette formule
Bonjour,
Dans une de mes classeurs excel, j'ai une base de données contenant en autre une colonne "date" en "L" et une colonne "reference" en "G" (identifiés comme tel dans le gestionnaire de nom). "date" peut être redondant mais "reference" est toujours unique.
J'utilise sur une seconde feuille cette formule pour lister les références dont la période s’achève l'année suivante :
SI(LIGNES($2:2)<=NB.SI(date;"<="&ANNEE(AUJOURDHUI())+1);INDEX(Reference;PETITE.VALEUR(SI(date<=ANNEE(AUJOURDHUI())+1;LIGNE(date)-1);LIGNES($2:2)));"")Jusque là pas de problème, j'obtiens bien les références et je complète les autres colonnes par des INDEX/EQUIV.
Maintenant je voudrais ignorer les références listées dans un troisième tableau identique en terme de structure au premier mais qui ne contient que quelques références. (En gros j'ai une liste de référence à retirer quelle que soit leur année et certaine sont donc en doublon avec mon tableau).
J'aimerais donc savoir comment ajouter cette condition dans ma formule.
J'ai recréé un fichier excel en exemple avec en feuil1 ma base de données et en feuil2, un premier tableau de références à retirer que l'on m'impose et en second une liste des références à retirer selon l'année et la base de donnée. J'ai surligné en jaune les lignes qui apparaissent déjà dans le tableau supérieur et qu'il faudrait ne pas afficher.
J'espère que j'ai été assez clair ^^
D'avance merci de votre aide.
bonjour
avec une colonne "de pointage"
feuil2 de H14 à H26, mettre 0 ou 1 selon que tu veux masquer ou afficher les données de G à côté.
(il te faudra insérer cette colonne H)
ensuite dans ta fonction avec des SI il te faudra ajouter SI ( H14 = 0 ..........)
note que au lieu de simples 0 ou 1 tu peux mettre =SI(année = annéesaisieencelluledechoix ; 1 ; 0 )
ce qui te permet de filtrer selon l'année
Je ne suis pas sûr de comprendre. Même si je rajoute une colonne pointage (ce qui n'est pas possible pour la base de donnée, je n'ai pas le droit de la modifier, juste le droit de travailler sur une feuille séparée), je ne sais toujours pas comment introduire cette condition dans ma formule.
re
1/
il est fortement conseillé de ne pas exploiter en direct des données externes
donc dans ton classeur, crée une feuille contentant une "image" du fichier de base (qui restera donc intact)
2/
sur cette image, tu peux ajouter les formules comme indiqué (à mettre tout à gauche ou tout à droite de ton image)
3/
= SI (laformuleTEST=1; tasuperformuledanstonpremiermessage;"")
Bonjour,
Désolé pour le temps de réponse mais étant apprenti, je passe beaucoup de temps en formation et je n'ai plus pensé à répondre.
Pour en revenir à mon problème, comme je l'ai dis plus tôt, je ne peux pas modifier les données de la base et non plus les copier ailleurs (Question de taille et de ressources réseaux selon l'informaticien... Bref).
J'ai continuer à bidouiller pour enfin trouver quelque chose de fonctionnel :
{=SI(LIGNES($2:2)<=SOMMEPROD((date<=ANNEE(AUJOURDHUI())+1)*(date>2000)*(SI(ESTNA(EQUIV(reference;refliste1;0));1;0))*(SI(ESTNA(EQUIV(reference;refliste2;0));1;0)));INDEX(reference;PETITE.VALEUR(SI((date<=ANNEE(AUJOURDHUI())+1)*(date>2000)*(SI(ESTNA(EQUIV(reference;refliste1;0));1;0))*(SI(ESTNA(EQUIV(reference;refliste2;0));1;0));LIGNE(date)-1);LIGNES($2:2)));"")}Validées en tant que Matrice.
date : la plage contenant les années dans la base de donnée
reference : la plage contenant les références dans la base de donnée
refliste1 : la plage contenant les référence listées au dessus sur la feuille 2 en colonne G
refliste2 : la plage contenant les référence listées au dessus sur la feuille 2 en colonne P (ça n'apparaissait pas dans mon exemple mais certaines références peuvent apparaître en colonne P voir en P et G...)
Voilà, chez moi ça fonctionne. Si ça peut en aider d'autres!
PS : il y a une condition supplémentaire pour ne prendre que les références avec une année > 2000 car certaines références qui viennent d'être ajouté peuvent ne pas avoir toutes les infos nécessaires et une année à 0 pour excel signifie 1900...