INDEX EQUIV ???????

J

jc de lorient

Guest
Bonjour le forum,

je ne sais pas du tout comment formuler une recherche malgré mes visites sur divers post

sur ma feuille active (Données) en I9 j'ai une date au format mm/aaaa
en I12 j'ai un nom

je souhaiterais récuperer la valeur en colonne AV de ma feuille Récap de la ligne correspondante à I9 en colonne A feuille Récap et à I12 en colonne BO de ma feuille Récap

J'espère avoir été assez clair

merci a vous
JC
 
M

Monique

Guest
Bonjour,

Si les valeurs en colonne AV de ta feuille Récap sont numériques :
=SOMMEPROD((Récap!$A$2:$A$20=I9)*(Récap!$BO$2:$BO$20=I12);Récap!$AV$2:$AV$20)

Si elles sont du texte ou numériques :
=INDEX(Récap!$AV$2:$AV$20;EQUIV(I9&I12;Récap!$A$2:$A$20&Récap!$BO$2:$BO$20;0))

La 2ème formule est matricielle, à valider par ctrl, maj et entrée.
 
J

jc de lorient

Guest
Bonjour Monique

merci bcp

j'ai commis certaines erreur dans mon énoncé !!

si le mois en cours en Janvier la valeur est E79
sinon mon calcul se fait sur I9-1 mois+E79 et comment formuler si la valeur n'existe pas ( une feuille vierge ou un nom qui est rajouté une 1ère fois)

j'en demande peut etre un peu trop mais là je "pêche" complet !!!

merci kan même !

JC
 
J

jc de lorient

Guest
re Monique

je souhaiterais ton avis sur cette formule :

=SI(MOIS($I$9)=1;E79;INDEX(Récap!$AV$2:$AV$20;EQUIV((DATE(ANNEE(I9);MOIS(I9)-1;JOUR(I9))&I12;Récap!$A$2:$A$20&Récap!$BO$2:$BO$20;0))

peut on faire plus simple ?

c le calcul pour trouver le mois précédent

reste a savoir comment faire si la valeur n'existe pas

merci bcp !
JC
 
J

jc de lorient

Guest
re le forum,
voilà ma formule corrigée

=SI(MOIS($I$9)=1;E79;INDEX(Récap!$AV$2:$AV$20+E79;EQUIV((DATE(ANNEE(I9);MOIS(I9)-1;JOUR(I9)))&I12;Récap!$A$2:$A$20&Récap!$BO$2:$BO$20;0)))
et donc de rajouter a cette formule : si pas de valeur dans l'index c'est égal a E79

merci mille fois
JC
 
M

Monique

Guest
Re,

Si tu veux la raccourcir, tu peux utiliser MOIS.DECALER( réf ; -1 )
en cochant l'utilitaire d'analyse dans Outils - Macros complémentaires
=SI(MOIS(I9)=1;E79;INDEX(Récap!$AV$2:$AV$20;EQUIV(MOIS.DECALER(I9;-1)&I12;Récap!$A$2:$A$20&Récap!$BO$2:$BO$20;0)))

Pour éviter le #N/A :
=SI(I9="";"";SI(MOIS(I9)=1;E79;SI(ESTNA(EQUIV(MOIS.DECALER(I9;-1)&I12;Récap!$A$2:$A$20&Récap!$BO$2:$BO$20;0));"";INDEX(Récap!$AV$2:$AV$20;EQUIV(MOIS.DECALER(I9;-1)&I12;Récap!$A$2:$A$20&Récap!$BO$2:$BO$20;0)))))

Si la formule te renvoie des valeurs numériques :
=SI(I9="";"";SI(MOIS(I9)=1;E79;SOMMEPROD((Récap!$A$2:$A$20=MOIS.DECALER(I9;-1))*(I12=Récap!$BO$2:$BO$20);Récap!$AV$2:$AV$20)))
(à valider de façon classique)

Si la cellule I9 est vide, Excel renvoie 1 pour =Mois(I9) donc janvier
 
J

jc de lorient

Guest
re
eh oui encore moi ! lol
je viens de découvrir qu'une formule matricielle ne fonctionne pas sur une cellulle fusionnée !!!! quelle galère !
j'ai essayé de transformer ma formule en sommeprod mais ça bug !!

=SI(MOIS($I$9)=1;E79;SOMMEPROD((Récap!$A$2:$A$20=(DATE(ANNEE(I9);MOIS(I9)-1;JOUR(I9)))*(Récap!$BO$2:$BO$20=I12);Récap!$AV$2:$AV$20)


un avis ?

merci bcp

JC
 
J

jc de lorient

Guest
re Monique

je pense que grace a toi je devrais arriver a mes fins !!
j'ai modifié la formule en rajoutant +E79

=SI(I9="";"";SI(MOIS(I9)=1;E79;SOMMEPROD((Récap!$A$2:$A$20=MOIS.DECALER(I9;-1))*(I12=Récap!$BO$2:$BO$20);Récap!$AV$2:$AV$20)))+E79

de cette façon si un nom en I12 n'est pas dans ma feuille récap la cellule prend la valeur E79 c ce que je voulais

merci infiniment monique
bon dimanche
JC
 
J

jc de lorient

Guest
re
j'étais trop content !! mais je plante encore
comment rajouter la valeur de E79 au résultat de sommeprod?


=SI($I$9="";"";SI(MOIS($I$9)=1;E79;SOMMEPROD((Récap!$A$2:$A$500=MOIS.DECALER($I$9;-1))*($J$12=Récap!$BO$2:$BO$500);Récap!$AV$2:$AV$500)))+E79

merci une nouvelle fois !!

JC
 
J

jc de lorient

Guest
re
je vais péter un plomb je crois !!! lol

comment formuler pour que sur le mois de Janvier le calcul me mette la valeur de E79 alors que là il me la double !!
pour les autres mois ça fonctionne bien
ça doit surement venir du E79 de la fin mais là je ne sais pas comment faire !!

=SI($I$9="";"";SI(MOIS($I$9)=1;E79;SOMMEPROD((Récap!$A$2:$A$500=MOIS.DECALER($I$9;-1))*($J$12=Récap!$BO$2:$BO$500);Récap!$AV$2:$AV$500)))+E79

merci encore une fois
JC
 
M

Monique

Guest
Re,

Tu mets E79 avant les 2 dernières parenthèses, ça fait partie du 2ème Si.
=SI($I$9="";"";SI(MOIS($I$9)=1;E79;SOMMEPROD((Récap!$A$2:$A$500=MOIS.DECALER($I$9;-1))*($J$12=Récap!$BO$2:$BO$500);Récap!$AV$2:$AV$500)+E79))
 

Discussions similaires

Réponses
6
Affichages
634