Recherche de données dans une même colonne avec condition [Résolu]

Ambrita83 6 Messages postés lundi 20 mars 2017Date d'inscription 7 juin 2017 Dernière intervention - 7 juin 2017 à 14:33 - Dernière réponse : Vaucluse 20862 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention
- 7 juin 2017 à 18:36
Bonjour à tous,

Je bloque sur la recherche d'une formule depuis plusieurs jours (j'ai même tenté via un TCD), sur un fichier de rapprochement d'entrées et sorties de stocks entre plusieurs magasins.
Après extraction des données de l'ERP (magasin concerné, commentaires et dates du mouvement, valeur en positif ou négatif selon si c'est une entrée ou une sortie).

Mon fichier est construit ainsi:

colonne C : concaténation de commentaire, date et montant en valeur absolue (car cela permet d'avoir une valeur similaire pour le rapprochement)

colonne F : nom du magasin concerné par l'entrée ou sortie de stock

colonne V : le montant (en négatif ou en positif)

Je souhaiterais dans la colonne H faire apparaître le nom du magasin qui aura l'entrée de stock correspondant à la sortie du magasin en colonne F (ou l'inverse).


Exemple:
Ligne 1:
Colonne C : connecteur40269151,78
Colonne F : Marseille
Colonne V: 151,78

Ligne 2:
Colonne C : connecteur40269151,78
Colonne F : Paris
Colonne V: -151,78

Je souhaite faire apparaître en colonne F, Paris pour la ligne 1 et Marseille pour la ligne 2.

Quelqu'un aurait une idée, j'ai tenté avec des recherchev ou index equiv mais je sèche?!!

Merci d'avance!
Afficher la suite 

5 réponses

Répondre au sujet
Vaucluse 20862 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 7 juin 2017 à 14:42
0
Utile
1
Bonjour
un peu touffu tout ça, et pas facile à reconstituer avec ce que vous nous écrivez là
pouvez vous déposer un modèle (en bidonnant les infos si besoin)
avec quelques explications ici:
http://www.cjoint.com
et revenir coller ici le lien créé sur le site
à vous lire
crdlmnt
Ambrita83 6 Messages postés lundi 20 mars 2017Date d'inscription 7 juin 2017 Dernière intervention - 7 juin 2017 à 15:44
C'est vrai que c'est compliqué à expliquer.
D'autant plus que j'ai fait une erreur dans ma demande: les données que je souhaite faire apparaître automatiquement se trouveront en colonne H.

Voici le lien pour mon fichier modèle:

http://www.cjoint.com/c/GFhnQM8OazU

Merci !
Commenter la réponse de Vaucluse
Vaucluse 20862 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention - 7 juin 2017 à 16:23
0
Utile
2
Re
pas sur d'avoir compris, mais voyez ici
attention la formule est matricielle, elle doit être entrée avec la touche enter en maintenant les touches ctrl et shift enfoncées
(elle s'affiche automatiquement entre accolades dans la barre de formule
elle se réfère en fait au code en A et au texte cédant si G con tient receveur, et receveur si G co tient cédant
Notez que cette formule est assez lourde en capacité et qu'il est recommandé de limiter les champs de recherche au nombres de lignes utiles (évitez les A:A etc..mais des adresses avec N° de ligne)
et bien entendu, on suppose que les codes en A n'apparaissent qu'une fois sous chaque conditions en G

http://www.cjoint.com/c/GFhowLoTwDj

revenez si ce n'est pas ce que vous cherchez
crdlmnt

Ambrita83 6 Messages postés lundi 20 mars 2017Date d'inscription 7 juin 2017 Dernière intervention - 7 juin 2017 à 17:29
Merci ça a l'air de marcher!

J'avais tenté en dernier lieu la formule:
=SI(G4="receveur";INDEX($F$4:$F$21;SOMMEPROD((C4=$C$4:$C$21)*($G$4:$G$21="cédant")*LIGNE($G$4:$G$21))-3);INDEX($F$4:$F$21;SOMMEPROD((C4=$C$4:$C$21)*($G$4:$G$21="receveur")*LIGNE($G$4:$G$21))-3))

Mais le résultat n'était pas toujours bon...

Merci encore pour votre aide précieuse!
Vaucluse 20862 Messages postés lundi 23 juillet 2007Date d'inscriptionContributeurStatut 14 décembre 2017 Dernière intervention > Ambrita83 6 Messages postés lundi 20 mars 2017Date d'inscription 7 juin 2017 Dernière intervention - 7 juin 2017 à 18:36
Pour info avec SOMMEPROD, qui ressort dans ce cas le N°de ligne, mieux vaut commencer le champ de INDEXen ligne 1, pour éviter les valeurs de corrections, c'est plus sur:
dans votre cas, celle ci devrait fonctionner:
=INDEX($F$1:$F$21;SOMMEPROD(($C$4:$C$21=C4)*($G$4:$G$21=SI(G4="receveur";"cédant";"receveur"))*(LIGNE($A$4:$A$21))))
bonne route
crdlmnt
Commenter la réponse de Vaucluse