Formule de recherche avec condition à partir d'une base

Bonjour,

Pour une partie de mon projet , j'ai besoin de traiter une base de données sur Excel présentée d'une certaine façon , la mettre sur un tableau dans un autre onglet

¨Par contre , j'ai 2 condition a respecter pour cherche la bonne donnée et la mettre dans le bon emplacement sur le tableau.

Pour mieux voir cela , si joint un fichier exemple avec un extrait de la base et un exemple du tableau dans lequel je dois mettre les données , ainsi comment ça marche !

je suis pas si doué dans les formules , cela px également être fait par VB mais bon la formule reste plus simple j'imagine.

SI joint mon fichier avec détails et je reste à votre dispo pour toute info

Merci par avance , j'en ai vraiment besoin de ça

Bonjour,

Une solution avec SOMMEPROD

A+

bonjour

un essai par formule

mais pour "des milliers " de lignes le mieux est de vba _ ifier

26nabil27.zip (15.23 Ko)

cordialement

Bonjour,

Tout d'abord je vous conseille de créer quelques noms définis pour décaler vos plages de cellules dans la Feuil1 :

Code_Equipe : =DECALER(Feuil1!$D$2,0,0,COMPTE( Feuil1!$C:$C),1)

Code_sous_Equipe: =DECALER(Feuil1!$E$2,0,0,COMPTE( Feuil1!$C:$C),1)

DATE: =DECALER(Feuil1!$C$2,0,0,COMPTE( Feuil1!$C:$C),1)

Indice : =DECALER(Feuil1!$F$2,0,0,COMPTE( Feuil1!$C:$C),1)

Valeur_Indice : =DECALER(Feuil1!$G$2,0,0,COMPTE( Feuil1!$C:$C),1)

Apres cela, mettez cette formule-ci matricielle (entrer avec CTRL+MAJ+ENTRÉE, non seulement ENTRÉE) dans la cellule C4 de la Feuil2 et copiez aux autres cellules nécessaires:

=SIERREUR(INDEX(Valeur_Indice,EQUIV(1,((Indice=Feuil2!$B4)*(DATE=Feuil2!C$3)*(Code_Equipe=GAUCHE(Feuil2!$A4,4))*(Code_sous_Equipe=DROITE(Feuil2!$A4,1))),0),1),"")

Important : cette formule-ci fonctionnera seulement si les entrées dans la liste Equipe/ss équipe (la colonne A de votre TABLEAU RECAP) sont toujours de la même forme, soit cinq caractères correspondant aux quatre caractères de la Code Equipe et le seul caractère de la Code sous Equipe.

J’espère que cela vous aide

Merci bcp ,

Pour la solution de Frangy , Est ce normal qu'elle récupère pas toute les données ? sur tableau y a du vide alors que la valeur existe sur la base ?

et puis si c'est pas trié c'est possible aussi ?


Merci Tulipe !

je vais étudier les deux formules sur ma base principale , voir laquelle va être plus facile à mettre pour l'ensemble des données .

Par contre toujours la même remarque : pourquoi trier les dates ?


XOR LX a écrit :

Bonjour,

Tout d'abord je vous conseille de créer quelques noms définis pour décaler vos plages de cellules dans la Feuil1 :

Code_Equipe : =DECALER(Feuil1!$D$2,0,0,COMPTE( Feuil1!$C:$C),1)

Code_sous_Equipe: =DECALER(Feuil1!$E$2,0,0,COMPTE( Feuil1!$C:$C),1)

DATE: =DECALER(Feuil1!$C$2,0,0,COMPTE( Feuil1!$C:$C),1)

Indice : =DECALER(Feuil1!$F$2,0,0,COMPTE( Feuil1!$C:$C),1)

Valeur_Indice : =DECALER(Feuil1!$G$2,0,0,COMPTE( Feuil1!$C:$C),1)

Apres cela, mettez cette formule-ci matricielle (entrer avec CTRL+MAJ+ENTRÉE, non seulement ENTRÉE) dans la cellule C4 de la Feuil2 et copiez aux autres cellules nécessaires:

=SIERREUR(INDEX(Valeur_Indice,EQUIV(1,((Indice=Feuil2!$B4)*(DATE=Feuil2!C$3)*(Code_Equipe=GAUCHE(Feuil2!$A4,4))*(Code_sous_Equipe=DROITE(Feuil2!$A4,1))),0),1),"")

Important : cette formule-ci fonctionnera seulement si les entrées dans la liste Equipe/ss équipe (la colonne A de votre TABLEAU RECAP) sont toujours de la même forme, soit cinq caractères correspondant aux quatre caractères de la Code Equipe et le seul caractère de la Code sous Equipe.

J’espère que cela vous aide

Merci bien

Les entrées dans le document ne sont qu'un exemple .. ils sont pas toujours de la même forme dans ma base

tulipe_4 a écrit :

bonjour

un essai par formule

mais pour "des milliers " de lignes le mieux est de vba _ ifier

cordialement

Le code VBA doit être compliquer j'imagine avec bcp de données non ?

sinon , comment je peux l'introduire ?

re

je suis nul en vba ;mais je crois que c'est possible avec application .volatile et formulalocal ...... ;j'en connais qui vont te faire cela les doigts dans le nez

cordialement

Bonsoir à tous,

Une solution en VBA (car moi je serais incapable de faire ça par formule !)

Merci Game Over,

Quand je clique ... j'ai pas toute les valeurs par contre ?

salut Game over

tu verras quand tu auras 57ans ;tu seras imperativement vicieux et, là....... tu y arriveras passe queue t'auras plus le choix

cordialement

Nabil27 a écrit :

j'ai pas toute les valeurs par contre ?

J'ai modifié le code pour qu'il fonctionne à partir de ton fichier original cette fois ci.

Par contre il y a 4 références qui ne figurent pas dans le tableau de ta Feuil2

tulipe_4 a écrit :

salut Game over

tu verras quand tu auras 57ans ;tu seras imperativement vicieux et, là....... tu y arriveras passe queue t'auras plus le choix

cordialement

bon, ben j'ai hâte d'accumuler quelques points de vice alors... parce qu'il est grand temps que j'étende ma gamme de formules à autre chose RechercheV !

PS : Je ne pense pas que la solution de frangy soit erronée, je crois qu'il a simplement changé certaines valeurs du tableau original

Game Over a écrit :
Nabil27 a écrit :

j'ai pas toute les valeurs par contre ?

J'ai modifié le code pour qu'il fonctionne à partir de ton fichier original cette fois ci.

Par contre il y a 4 références qui ne figurent pas dans le tableau de ta Feuil2

Et il y a pas une solution pour que je puisse récupérer toute les références ? car j'ai essayé sur ma base originale et c'est pareil , il récupère pas tout .. alors que pour faire mes totaux j'ai besoin de tous ?

Nabil27 a écrit :
Game Over a écrit :
Nabil27 a écrit :

j'ai pas toute les valeurs par contre ?

Et il y a pas une solution pour que je puisse récupérer toute les références ? car j'ai essayé sur ma base originale et c'est pareil , il récupère pas tout .. alors que pour faire mes totaux j'ai besoin de tous ?

Ben, il ne récupère que ce que tu lui demandes de récupérer !

Ben, il ne récupère que ce que tu lui demandes de récupérer ![/quote]

C'est à dire ?

Ou est ce que je peux faire le changement pour l'adapter ... Si c'est possible de me commenter la ligne en question avec un exemple , je serai reconnaissant !

voilà, tu les as tous, comme ça !

Bonjour,

J'ai repris le code avec l'ensemble des données .. ça marche !

sauf que avec le nbr de ligne .. l'exécution prends un temps très important ( voir 25 - 30 min ) .

En effet , mes données s'augmentent chaque jour du mois ( par rapport à la date dans la feuille 2 ), c'est à dire au début de mois la liste de la feuille 1 va être moins lourde par rapport au 30 par exemple ..

Est ce qu'il y a moyen dans le code , de vérifier ou genre garder les données qui existe déjà dans la feuille 2 tabelau de présentation et a chaque fois que je clique pour exécution il continue pour la date suivante , les nouvelles données .. une idée pour diminuer le temps d'exéctuion ... enfin si vous avez d'autres

Mercii par avance

Je te suggère d'ouvrir un nouveau fil de conversation et de reposer ta question en joignant un fichier - idéalement, poste le fichier original anonymisé sur un site à partir duquel on pourrait le télécharger; un exemple de quelques lignes ne nous sera pas pas très utile ici; précise aussi si tu ne fais qu'ajouter des lignes à ton document ou si tu en supprimes aussi.

Rechercher des sujets similaires à "formule recherche condition partir base"