Rechercher données à partir de deux conditions et la recopier

jacksud

XLDnaute Occasionnel
Dans le fichier Excel ci dessous vous trouverez deux onglets Feuil1 et Feuil2
Dans Feuil1 j’ai en colonne A des(N° référence) et en colonne E des (étapes) qui peuvent prendre jusqu'à 4 formes différentes (PE, ATT, SPT, LARE) et en colonne G (avancement) qui peuvent prendre 5 formes différentes en fonction de leur état d’avancement (T, EC, N, NC, R.

En feuil2 je retrouve en colonne A des (N° référence) mais pas forcement dans le même ordre et avec un nombre différent de la feuil1. En colonne E (étape) on retrouve aussi les 4 critères (PE, ATT, SPT, LARE) mais les étapes ne sont pas forcement identique au N° de références.

Ce que j’aimerai c’est quand un N° de feuil1 (Condition 1) avec l’étape correspondante (condition 2) est retrouvé en feuil2 c’est rapatrier la valeur de l’avancement en colonne F de la Feuil2.

J’ai mis un exemple pour une meilleure compréhension dans le fichier Excel

Merci Jack
 

Pièces jointes

  • Recher donnée à patir de 2 condition et copier.xls
    69 KB · Affichages: 77

Cousinhub

XLDnaute Barbatruc
Re : Rechercher données à partir de deux conditions et la recopier

Bonjour,

regarde dans le fichier joint

J'ai déterminé des noms dynamiques (regarde dans Insertion/Nom/Définir)

la formule utilisée :

Code:
=SI(INDEX(etapes;EQUIV(A2;ref;0))=E2;INDEX(avancement;EQUIV(A2;ref;0));"")

Si il y a une erreur (valeur non trouvée dans la feuille 1), avec une mise en forme conditionnelle, on met la police en blanc (regarde dans Format/Mise en forme Conditionnelle de la colonne F de la feuille 2)

Fichier :
 

Pièces jointes

  • jacksud_v1.xls
    77 KB · Affichages: 105

jacksud

XLDnaute Occasionnel
Re : Rechercher données à partir de deux conditions et la recopier

Génial c'est exactement ce que je voulais. Un grand merci à toi bhbh je revaudrais cela à la Bretagne. Cependant ingénieux le coût des listes avec la formule décaler. Mais j’ai un peu plus de mal avec =SI(INDEX(etapes;EQUIV(A3;ref;0))=E3;INDEX(avancement;EQUIV(A3;ref;0));"")
Que veut dire le 0 apres ref ? je ne connais pas trop ces deux formules EQUIV et INDEX et ESTNA

Jack
 

Cousinhub

XLDnaute Barbatruc
Re : Rechercher données à partir de deux conditions et la recopier

Re,

Cependant ingénieux le coût des listes avec la formule décaler

Pas si cher que cela..... :D

Pour le 0 dans la formule EQUIV, cela veut dire qu'on recherche la valeur exacte de la cellule, dans la zone nommée. Regarde dans l'aide (F1)

Regarde également l'aide pour INDEX

Et pour ESTNA, si la fonction EQUIV ne trouve pas la valeur exacte, elle renvoie :

Code:
#N/A

donc un code d'erreur

Afin de ne pas voir apparaître ce code, on met la police en blanc si la valeur de la cellule est égale à ce code d'erreur...

Et pour la Bretagne, t'inquiète, on a déjà la coupe de France.....

PS, j'ai fait 3 ans comme abonné au Vélodrome.... ;)
 

jacksud

XLDnaute Occasionnel
Re : Rechercher données à partir de deux conditions et la recopier

BhBh la formule que tu m’as donnée hier marche très bien. Cependant aujourd’hui je l’ai adapté à mon problème elle marche à 95%. Mais j’avais oublié le cas suivant quand j’ai le même N° de référence pour des étapes différente la formule ne marche. Si tu peux jeter un coups d’œil cela m’arrangerais. J’ai surligné en rouge dans le fichier la difficulté.
Allez L'OM…..
Jack
 

Pièces jointes

  • jacksud_v2.xls
    78.5 KB · Affichages: 76

Bebere

XLDnaute Barbatruc
Re : Rechercher données à partir de deux conditions et la recopier

bonjour JackSub,Bhbh
j'en profite pour poster une solution vba,pour savoir si c'est bon
à bientôt
 

Pièces jointes

  • RechercheJackSud.zip
    19.5 KB · Affichages: 32
  • RechercheJackSud.zip
    19.5 KB · Affichages: 38
  • RechercheJackSud.zip
    19.5 KB · Affichages: 37

jacksud

XLDnaute Occasionnel
Re : Rechercher données à partir de deux conditions et la recopier

Merci beaucoup Bebere ta macro fonctionne très bien et même si l'on a des triplons aux niveaux des N° de références (voir surligné en rouge dans le fichier ci-dessous) avec des étapes différentes. Ce que faisait partiellement la formule de bhbh . Cependant j'ai un peu de mal à comprendre ton code. J’ai commencé à décrit et sans certitude ce qu'elle fait. Peux-tu compléter et corriger mes incompréhensions.
Les colonnes étapes et avancement peuvent bouger d'un mois sur l'autre donc il faut que je puisse bien les identifier.
Merci Jack
 

Pièces jointes

  • Copie de RechercheJackSud-2.xls
    101 KB · Affichages: 66
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : Rechercher données à partir de deux conditions et la recopier

bonsoir Jacksud,Bhbh
code avec commentaires
j'ai essayé avec les formules de Bhbh,pas trouvé
à bientôt
 

Pièces jointes

  • RechercheJackSud.zip
    19.9 KB · Affichages: 37
  • RechercheJackSud.zip
    19.9 KB · Affichages: 37
  • RechercheJackSud.zip
    19.9 KB · Affichages: 35

Monique

Nous a quitté
Repose en paix
Re : Rechercher données à partir de deux conditions et la recopier

Bonjour,

Formule matricielle, à valider par ctrl, maj et entrée

3 possibilités :
avec une colonne supp et 1 format conditionnel
en 1 seule formule et un format conditionnel
en 1 seule formule, conditionnelle
 

Pièces jointes

  • jacksud_v3.zip
    15.1 KB · Affichages: 46

Bebere

XLDnaute Barbatruc
Re : Rechercher données à partir de deux conditions et la recopier

bonjour Monique,Jacksud,Bhbh
je pensais,il y a bien une personne qui trouverait une solution mais trois, chapeau bas
j'étais sur une autre possibilité,concaténer A et F et A et E
à bientôt
 

jacksud

XLDnaute Occasionnel
Re : Rechercher données à partir de deux conditions et la recopier

Merci Monique je viens de regarder longuement tes 3 réponses Peux tu me répondre à ces quelques questions :
Je ne vois pas à quoi sert (PETITE.VALEUR) ?
Dans la mise en forme la formule =ESTERR(H2) que je n’ai jamais vu et je ne sais pas ce quelle fait ?
Une autre question si je fais un copier de l’une de tes 3 formules et que je la colle dans autre
A quoi sert J5? dans cette formule:
=INDEX(ColAv;PETITE.VALEUR(SI(ref=A5;SI(etapes=E5;LIGNE(ref)));J5))

fichier en adaptent les N°colonne dois-je faire CTRL /Maj/entrée ? pour la valider.

Ce si dit c’est du grand art et j’avoue n’avoir pas tout pigé !… mais elles fonctionnent très bien.
Merci Jack
 
Dernière édition:

Monique

Nous a quitté
Repose en paix
Re : Rechercher données à partir de deux conditions et la recopier

Bonjour,

Il n'y a pas 3 formules mais 1 seule avec 3 méthodes différentes

Petite.valeur
Cette formule Min() renverrait le n° de ligne de la 1ère ligne de la plage Ref
où l'on trouve, sur la même ligne, A2 dans la plage Ref et E2 dans la plage étapes
=MIN(SI(ref=A2;SI(etapes=E2;LIGNE(ref))))
Condition 1 : Ref=A2
Condition 2 : Etapes=E2

Mais… il n'y a pas toujours qu'une seule ligne où l'on trouve les 2 valeurs
Donc Petite.Valeur à la place de Min
=PETITE.VALEUR(SI(ref=A2;SI(etapes=E2;LIGNE(ref)));1 puis 2 puis 3 etc)
renvoie le n° de la 1ère ligne puis de la 2ème, etc

Les n° 1, 2, 3, etc de Petite.Valeur sont
pour la formule de la colonne I, en colonne J : SommeProd()
pour les formules des colonnes G et H, dans la formule elle-même : Somme()

Une fois trouvé le n° de ligne, Index(Plage ; n°) renvoie l'avancement

=ESTERR(H2)
Dans l'aide d'Excel :
ESTNA la valeur fait référence à la valeur d'erreur #N/A (valeur non disponible).
ESTERREUR la valeur fait référence à une des valeurs d'erreur (#N/A, #VALEUR!, #REF!, #DIV/0!, #NOMBRE!, #NOM? ou #NUL!).
ESTERR la valeur fait référence à une des valeurs d'erreur, à l'exception de #N/A.

EstErr suffit car, comme valeur d'erreur, il n'y a que #NOMBRE! et pas du tout de #N/A
=ESTERR(H2) renvoie VRAI ou FAUX
Si vrai, la police se met en blanc pour masquer le résultat #NOMBRE!

si je fais un copier de l’une de tes 3 formules et que je la colle dans autre fichier en adaptent les N°colonne dois-je faire CTRL /Maj/entrée ? pour la valider.
Pour pouvoir faire ça, il faut que le fichier ait déjà les plages nommées et avec des noms identiques
Excel va te poser des questions du genre "Le document contient déjà le nom "Xy", voulez-vous etc"
Tu peux aussi te retrouver avec des liaisons
Le plus simple : mettre une apostrophe (ou un espace) devant le signe "=", copier, coller, enlever l'apostrophe et valider par ctrl, maj et entrée.
 

Discussions similaires

Statistiques des forums

Discussions
312 584
Messages
2 089 995
Membres
104 331
dernier inscrit
xdream