Recherche v avec plusieurs resultats

bonjour,

je voudrais trouver une formule comme recherchev mais pouvant donner toutes les infos trouvées .

dans mon onglet CCA 2020 il faut que je recherche toutes les infos de l’onglet feuil 1 qui ont le numero de compte 606110 avec un critere de periode .

mercihttps://www.partage-temporaire.fr/2020/08/26/cca—fnp–europa-2020–31-08-20-test-requette/

Bonjour SYLVAIN91160,

Quel est le critère de période ? Faut il renvoyer la somme des résultats ou toutes les lignes ?
Cordialement.

bonjour zebulon,

le critere de periode est inf au 30/04/2020 , pour une ligne l’autre sup 30/04/2020 et la derniere sup 30/08/2020 et oui il faut renvoyer toutes les lignes.

merci

Bonjour SYLVAIN91160,

Je pense qu’il vaut mieux s’orienter vers une solution VBA ou une formule matricielle. J’ai tenté une solution avec power query mais la problématique est que le nombre de ligne n’est pas connu à l’avance et qu’il faut générer 3 tableaux différents pour utiliser ma solution.

Bonne continuation.

bonjour zebulon,

le probleme est que je ne connais pas du tout le VBA sinon qu’est ce que les formules matricielles.

merci.

serait il possible de voir ta solution quand meme ?

re,

zebulon ,

merci je regarde ca

zebulon ,

je viens de regarder ton fichier et dans la formule :

=INDEX(’<300420’!$C$2:$C$1463;EQUIV($C$5&LIGNE()-5;’<300420’!$A$2:$A$1463;0))

a quoi correspond le -5 ?

ou est il possible de trouver des explications pour la mise ne forme de cette formule ?

merci

re,

EQUIV($C$5&LIGNE()-5
$C$5 = 606110
&LIGNE()-5 = ligne() renvoi le numéro de la ligne sur laquelle on se trouve en l’occurrence 6 et -5 pour obtenir 1 pour la ligne 6, 2 pour la 7 et ainsi de suite.
ce qui permet d’obtenir le n° de compte et un incrément de 1 à chaque ligne à rapprocher de la colonne index du tableau <300420.

INDEX(ColRésultat;EQUIV(ValCherchée;ColRecherche;0))
ColRésultat = colonne EC_Intitule du tableau <300420
ValCherchée = $C$5&LIGNE()-5; = 6061101
ColRecherche = <300420’!$A$2:$A$1463 = colonne index du tableau <300420
0 = correspondance exacte

Cordialement.

Merci, super niveau Excel

bonjour zebulon,
je ne pense pas avoir compris le principe de equiv (voir mon fichier joint).
de plus est il possible de verifier dans les colonnes periodes s’il s’agit d’un mois complet ou bien d’une periode autre , cela pour affecter le montant soit a la colonne « montant ht par jour » ou bien « montant ht par mois ».

merci

https://www.transfernow.net/PLDeYw082020

Bonjour SYLVAIN91160,

Qu’est ce que tu n’a pas compris dans la fonction.

ColRésultat correspond au résultat de la recherche, ce qui doit être affiché par la formule. Dans ton cas EC_Intitule

ValCherchée correspond à la valeur à rechercher dans une matrice qui sera déterminée dans l’argument suivant. Dans tons cas le n° de compte concaténé avec 1 2 3 ou plus pour récupérer toutes les occurrences du n° de compte se trouvant dans la matrice évoquée plus haut.

ColRecherche la fameuse matrice où l’on recherche « ValCherchée » dans ton cas la colonne index du tableau qui correspond au n° de compte concaténé avec son ordre d’apparition dans la liste grâce à la formule B2&NB.SI($B$2:B2;B2) ce qui donne 6051101, 6051102, 6051103 etc…

0 ou 1 (Faux ou Vrai) Pour une correspondance exacte 0 ou faux ou approximative 1 ou vrai.

une recherche internet sur INDEX-EQUIV te donneras une foule de renseignements complémentaires.
https://www.qwant.com/?q=INDEX-EQUIV&t=web&client=brz-moz

Pour la partie EQUIV($C$5&LIGNE()-5 le résultat doit donner 1 pour la 1ère ligne, 2 pour la seconde ainsi de suite.
Sur la ligne 227 de ton fichier tu as mis
=INDEX(’<30-04’!$C$2:$C$1463;EQUIV($C$226&LIGNE()-225;’<30-04’!$A$2:$A$1463;0))
il faut mettre pour obtenir la première ligne dont le n° de compte est 615510 soit dans la colonne index, grâce à la formule =B648&NB.SI($B$2:B648;B648), 6155101
=INDEX(’<30-04’!$C$2:$C$1463;EQUIV($C$226&LIGNE()-226;’<30-04’!$A$2:$A$1463;0))
227-226=1, 228-226=2, 229-226=3 etc…

Pour ce qui est de vérifier la période, une formule de ce type devrait convenir
=SI(G227=FIN.MOIS(G227;-1)+1;« oui »;« non ») il suffit de remplacer les oui et non par la formule à appliquer.

Cordialement.

merci je vais essayer d’assimilié tout ca

Re,

Quelle est ta version d’Excel ?

il s’agit d’excel 2019.

dans le meme genre de fichier je voudrais recuperer la valeur de 1650 qui est sur la ligne maintenance pour le ca num TRA5529 mais vu ma formule il me met uniquement la premiere valeur trouvée.

merci

Re,

la valeur de 1650 correspond au CA_Num MAINT et non à TRA5529
Cordialement.

oui mais elle est liée a TRA5529 par EC PIECE 1350 , cela peux t il servir a trouver la solution ?

merci

Il me faut plus de données pour pouvoir t’aider.
Comment est construit ce fichier, à quoi sert-il et comment est-il utilisé.
La recherche doit se faire sur le n° de pièce ou le n° de compte ?
Si c’est sur le n° de pièce, où trouve t’on cette information dans ta feuille COMPARATIF PRODUITS-CHARGES
Cordialement.

Comment est construit ce fichier, à quoi sert-il et comment est-il utilisé.

le fichier est une requette sql dans « BASE SAGE PRODUITS MAINTENANCES » et « BASE SAGE CHARGES MAINT ».il me sert a controler la difference entre les produits et les charges .

La recherche doit se faire sur le n° de pièce ou le n° de compte ?

la recherche se fait sur le ca num.

Si c’est sur le n° de pièce, où trouve t’on cette information dans ta feuille COMPARATIF PRODUITS-CHARGES

mais pour un ca num dans la partie « BASE SAGE PRODUITS MAINTENANCES » il peux y avoir plusieurs ligne « MAINT » et « 999 »

merci