Recherche de valeurs

Maxpuff

XLDnaute Junior
Bonjour,

Je souhaite faire une recherche de valeurs grâce à l'intitulé de la ligne sur un tableau qui contient deux lignes avec le même intitulé...

Voici la formule de la cellule où je veux voir la valeur de la ligne "minority interests" dans la colonne 12/09E:

Code:
=DECALER(1:1;EQUIV("Minority interests";A:A;0)-1;) DECALER(A:A;;EQUIV("12/09E";2:2;0)-1)

Dans mon tableau j'ai deux "blocs". L'un se nomme "Cons PL" et l'autre "Balance Sheet". Les deux blocs contiennent une ligne "minority interest". Je veux donc récupérer les deux lignes avec une telle formule mais je ne trouve pas pour la deuxième ligne.

Les contraintes:
- la date est sur la ligne 2
- les lignes minority interests ne sont pas toujours aux mêmes numéro de ligne et je souhaite pouvoir réappliquer la formules sur différents fichiers...
- Les blocs "Cons PL" et "Balance sheet" peuvent parfois être dans l'ordre inverse (d'abord Balance Sheet puis PL)

L'idée serait donc de localiser le titre du bloc (Cons PL ou Balance sheet) pour ensuite chercher la valeur de la ligne minority interests...
La recherche peut se faire par macro si c'est le seul moyen...
 

Pièces jointes

  • Find_value.xls
    21 KB · Affichages: 46

CISCO

XLDnaute Barbatruc
Re : Recherche de valeurs

Rebonjour

Théoriquement, c'est bon pour la seconde recherche avec :
Code:
INDEX(INDIRECT("A$"&EQUIV(A10;A$1:A$20;0)+1&":C$20");EQUIV(A10;INDIRECT("A$"&EQUIV(A10;A$1:A$20;0)+1&":A$20");0);2)
ou
Code:
INDEX(INDIRECT("A$"&EQUIV(A10;A$1:A$20;0)+1&":C$20");EQUIV(A10;INDIRECT("A$"&EQUIV(A10;A$1:A$20;0)+1&":A$20");0);3)

PS : Mais tu n'auras les réponses pas forcément dans l'ordre que tu veux.

@ plus
 

Pièces jointes

  • Find_value(2).xls
    21.5 KB · Affichages: 64
Dernière édition:

Maxpuff

XLDnaute Junior
Re : Recherche de valeurs

- les lignes minority interests ne sont pas toujours aux mêmes numéro de ligne et je souhaite pouvoir réappliquer la formules sur différents fichiers...

La j'ai mis un extrait du fichier auquel je souhaite appliquer la formule. De plus je souhaite pouvoir reprendre cette formule pour différents fichiers, avec des blocs qui sont plus ou moins long et dans différents ordres.
 

CISCO

XLDnaute Barbatruc
Re : Recherche de valeurs

La j'ai mis un extrait du fichier auquel je souhaite appliquer la formule. De plus je souhaite pouvoir reprendre cette formule pour différents fichiers, avec des blocs qui sont plus ou moins long et dans différents ordres.

Rebonjour

Voui, voui, j'avais bien compris... Il ni y a pas vraiment de problème, puisque c'est excel qui recherche les numéros de lignes : Ceux-ci ne sont pas imposés par la formule.

Pour adapter les formules ci-dessus, il suffit de changer les 20 en 40, si par exemple ton fichier fait 40 lignes, etc.

Ceci dit, ci-joint, une autre version , toujours construite suivant le même principe, avec la seconde méthode, c-à-d avec des plages nommées, mais dans ce dernier cas, peu importe l'ordre des blocs (Cons PL en premier ou pas) : Les résultats seront au bon endroit, ceux correspondant à Cons Pl en premier.

Toutefois :
les termes Cons PL, BALANCE SHEET et Minority interests doivent être dans la colonne A.
Le bloc Cons ne doit pas avoir plus de 11 lignes.
Le bloc Balance ne doit pas avoir plus de 8 lignes.

Si il le faut vraiment, on peut encore faire des modif pour éliminer ces dernières limites.


@ plus
 

Pièces jointes

  • Find_value(3).xls
    22 KB · Affichages: 49
Dernière édition:

Maxpuff

XLDnaute Junior
Re : Recherche de valeurs

Effectivement, ce serait une bonne idée de nommer les blocs, cependant ce n'est pas moi qui créé les fichiers Excel. Ils sont générés à partir d'un server web. De plus les blocs générés sont de tailles parfois différentes... Je dois prendre la colonne dont la date est le 12/09E et il se peut aussi que ce ne soit pas la seconde, mais la 3eme ou 4eme colonne...

Les seuls choses qui ne changent pas sont:
- la date est sur la ligne 2
- les titres sont dans la colonne A

C'est pourquoi la formule que j'utilise fonctionne parfaitement si le titre est unique, quelque soit la position de la colonne 12/09E, ou du titre dans le fichier...

Cependant si le titre n'est pas unique, cela se complique...

En fait je cherche une formule que je puisse ensuite appliquer à n'importe quel fichier sans avoir à adapter la formule, car j'ai plus de 100 fichiers excel à traiter...
 
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Recherche de valeurs

Bonjour

Encore quelques modifications histoire d'obtenir un fichier un peu plus polyvalent.

Avec cette technique, il te faut malheureusement à chaque fois définir les plages nommées Balance, BalanceA, Cons et ConsA. Par conséquent, tu ne peux pas procéder par un simple copier coller.

Si je trouve une solution encore plus simple, je te fais signe.

@ plus
 

Pièces jointes

  • Find_value(4).xls
    23.5 KB · Affichages: 57

CISCO

XLDnaute Barbatruc
Re : Recherche de valeurs

Rebonjour

Une autre possibilité (à tester qu'en même), sans plage nommée, qui fonctionne donc avec un simple copier-coller, donc plus rapide à mettre en oeuvre sur de nombreux dossiers.

Il ne reste plus qu'une limite (en plus de celles que tu as déja données) : la date 12/09E doit être dans la plage A2:Z2. Si tu as des fichiers où cette date risque de se retrouver plus à droite, à toi de changer cette plage dans la formule.

@ plus
 

Pièces jointes

  • Find_value(5).xls
    22 KB · Affichages: 66
Dernière édition:

CISCO

XLDnaute Barbatruc
Re : Recherche de valeurs

Bonjour

Mieux vaut tard que jamais...

En pratique on doit chercher deux fois la même chose : "Minority Interests". Pour qu'excel ne renvoie pas à chaque fois le même résultat, correspondant au premier "Minority Interests" rencontré, on va lui faire rechercher "Minority Interests" dans deux pavés différents, tout en ne sachant pas à l'avance lequel est en premier.

La méthode consiste donc à créer deux pavés "démarrant", pour l'un, par la cellule contenant "Cons PL", pour l'autre, par la cellule contenant "BALANCE SHEET", allant jusqu'à la dernière ligne du fichier, et jusqu'à la colonne contenant 12/09E.

Pour le pavé commençant par "Cons PL", c'est fait avec :

EQUIV("Cons PL";A:A;0), qui recherche dans la colonne A:A la position de "Cons PL", 1 dans l'exemple en pièce jointe. Le 0 indique qu'il faut trouver exactement "Cons PL".

EQUIV("zz";A:A;1) qui recherche dans la colonne A:A le terme "zz", ne le trouve pas et renvoie donc le numéro de la dernière ligne du fichier (grace au 1), 21 dans l'exemple.

EQUIV("12/09E";$A$2:$Z$2;0) qui recherche 12/09E sur la ligne 2, dans la plage A2:Z2, et renvoie le numéro de la colonne correspondante dans cette plage, 2 dans l'exemple. Le 0 indique qu'il faut trouver exactement 12/09E.

La syntaxe de la fonction ADRESSE est ADRESSE(numéro de la ligne, numéro de la colonne) et renvoie la référence d'une cellule sous forme de texte.

INDIRECT permet d'indiquer une plage avec du texte, que l'on peut modifier comme on veut grace à d'autres fonctions.

& permet de concatener du texte.

On assemble ces diverses formules dans

Code:
INDIRECT("A"&EQUIV("Cons PL";A:A;0)&":"&ADRESSE(EQUIV("zz";A:A;1);EQUIV("12/09E";$A$2:$Z$2;0)))

qui devient successivement
INDIRECT("A"&1&":"&ADRESSE(21;2))
INDIRECT("A1:"&ADRESSE(21;2))
INDIRECT("A1:"&"$B$21")

ce qui donne finalement le pavé A1:$B$21 correspondant à "Cons PL"

La formule complète pour "Cons PL" est

Code:
=RECHERCHEV("Minority interests";INDIRECT("A"&EQUIV("Cons PL";A:A;0)&":"&ADRESSE(EQUIV("zz";A:A;1);EQUIV("12/09E";$A$2:$Z$2;0)));EQUIV("12/09E";$A$2:$Z$2;0);FAUX)

Excel recherche verticalement "Minority Interests" dans la première colonne du pavé A1:$B$21, et renvoie le résultat trouvé à l'intersection de la première ligne de ce pavé contenant "Minority Interests" et de la colonne contenant "12/09E".

On procède de même pour "BALANCE SHEET" avec
Code:
=RECHERCHEV("Minority interests";INDIRECT("A"&EQUIV("BALANCE SHEET";A:A;0)&":"&ADRESSE(EQUIV("zz";A:A;1);EQUIV("12/09E";$A$2:$Z$2;0)));EQUIV("12/09E";$A$2:$Z$2;0);FAUX)

et comme "BALANCE SHEET" se trouve sur la ligne 13, on obtient successivement
=RECHERCHEV("Minority interests";A13:$B$21;EQUIV("12/09E";$A$2:$Z$2;0);FAUX)
=RECHERCHEV("Minority interests";A13:$B$21;2;FAUX)

qui renvoie le résultat trouvé à l'intersection de la première ligne, après la ligne 12, contenant "Minority Interests" et de la colonne contenant "12/09E".

On ne peut pas, plus rapidement, faire "démarrer" l'un des deux pavés directement par A1, car on ne sait pas lequel est en haut : est-ce celui "démarrant" par "Cons PL", ou celui "démarrant" par "BALANCE SHEET" ?

En pratique, l'un des deux pavés contient l'autre. Par conséquent, il contient aussi les deux "Minority Interests", mais cela ne pose pas de problème puisque la fonction RECHERCHEV repère uniquement le premier "Minority Interests" rencontré. Le second pavé ne contient que le second "Minority Interests", donc ne pose pas de problème non plus.

En résumé, on fait rechercher par excel "Cons PL" ou "BALANCE SHEET", pour définir deux pavés différents, avant de rechercher "Minority Interests".

Voilà... Pas facile à expliquer en détail.

@ plus
 
Dernière édition:

adel77

XLDnaute Nouveau
Re : Recherche de valeurs

Bonjour à tous,

voila j'ai un petit souci.

Je souhaite faire une recherche par pays. Je m'explique jai une colonne H ou dans chaque cellule des série de pays sont spécifié (Italie, Brésil, Maroc, Portugal) et en colonne A le nom de la personne y figure.
Donc pour chaque nom figure une chaine de pays.

L'idée est donc de trouver une formule qui puisse me faire trouver les personnes qui s'occupe d'un seul pays.

Imaginons je tape Portugal je faire défilé toutes les personnes qui s'occupe du portugal.

Merci pour votre aide.

Cordialement.
 

Discussions similaires

Réponses
2
Affichages
152
Réponses
7
Affichages
365

Membres actuellement en ligne

Statistiques des forums

Discussions
312 677
Messages
2 090 825
Membres
104 677
dernier inscrit
soufiane12