Recherche SI

Résolu
xariri Messages postés 6 Statut Membre -  
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Je devrai combiner une rechercheV avec une condition et je ne sais pas comment faire...

Dans cette exemple, il me faudrait trouver la valeur de la dernière colonne en encodant le numéro de membre et une date.

Membre début fin montant à payer
1 1/01/2010 31/12/2010 10
1 1/01/2011 30/06/2011 11
1 1/07/2011 31/12/2012 12
2 1/01/2010 31/12/2012 10,5
2 1/01/2013 31/12/2013 11,5
3 1/01/2010 30/06/2012 13
3 1/01/2013 31/12/2012 14


Membre 2
date 5/02/2012
montant (résultat de la formule)

D'avance merci à tous.
Xavier

11 réponses

xariri
 
Bonjour,

Je dois trouver pour une date à définir le montant. Cette date n'est pas nécessairement la date de début ou de fin mais sera comprise dans cette période.

Pour le membre 2 à la date du 05/02/2012 la valeur est 10.5.

Bien à toi
Xavier
1
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
Je rectifie donc ma formule qui en plus ne voulait rien dire car je n'avais pas précisé qu'en A1 on mets la date recherchée , donc avec cette date en A1, les membres en B, les dates de début en C, de fin en D et montant en E
=SOMMEPROD((B5:B10=2)*(C5:C10<=A1)*(D5:D10>=A1) *(E5:E10))

Cdlmnt
0
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   5 138
 
Re,

comme cela si tes données sont par exemple entre A2 et D20 en F1 tu saisis la date de référence

=SOMMEPROD((A2:A20=2)*(B2:B20<=F1)*(C2:C20>=F1)*(D2:D20))

Mais il serait plus judicieux de nommer tes plages
exemple A1:A20 nommée memb, B2:B20 nommée deb, C2:C20 nommée fin et D2:D20 nommée resul, la formule erait plus facilement utilisable sur n'importe quelle feuille de ton classeur et deviendrait

=SOMMEPROD((memb=2)*(deb<=F1)*(fin>=F1)*(resul))

en poussant plus loin les arguments tu pourrais également mettre dans une cellule le n° de membre, ex E1 et pourquoi pas avec une liste de validation

=SOMMEPROD((memb=E1)*(deb<=F1)*(fin>=F1)*(resul))
1
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   5 138
 
Re,

tu peux tester la cellule critère de la date si c'est F1

=SI(F1="";"attente critère";SOMMEPROD((A2:A20=2)*(B2:B20<=F1)*(C2:C20>=F1)*(D2:D20)))
ou si tu as opté pour les plages nommées

=si(F1="";"attente critère";SOMMEPROD((memb=E1)*(deb<=F1)*(fin>=F1)*(resul)))

ou même tester les deux cellules critères si tu as retenu cette fonction

=SI(OU(E1="";F1="");"attente critères";SOMMEPROD((memb=E1)*(deb<=F1)*(fin>=F1)*(resul)))

tu peux jouer et dissocier les deux critères

=SI(E1="";"attente membre";SI(F1="";"attente critère";SOMMEPROD((memb=E1)*(deb<=F1)*(fin>=F1)*(resul))))

et pour le fun tu peux également tester s'il existe des réponses

=SI(E1="";"attente membre";SI(F1="";"attente critère";SI(SOMMEPROD((memb=E1)*(deb<=F1)*(fin>=F1)*(resul<>""))=0;"pas de réponce";SOMMEPROD((memb=E1)*(deb<=F1)*(fin>=F1)*(resul)))))


A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
1
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   5 138
 
Re,

as tu testé mes formules, si tu as le critère de recherche membre en E1, le critère date en F1, si tu as essayer et nommé les plage comme je te l'ai dit ma dernière formule teste également si une correspondance existe dans le tableau.

la RECHERCHEV ne permet pas une cherche approximative, il faut que les critères surtout date soit exact
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   5 138
 
Salut,

Tu peux en dire plus ou du moins donner plus d'explications par dans ton exemple

Membre 2
date 5/02/2012

Membre 2 pour ma part je vois mais 5/02/2012 je ne vois pas dans ton tableau alors c'est la date de début ou de fin ?

donne un exemple concret Membre date et résultat
0
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
Bonjour

Essaye plutôt avec SOMMEPROD

Ex : =SOMMEPROD((B5:B10=2)*(C5:C10=A1)*(D5:D10))

En supposant les membres dans la plage B5:B10 les dates en C5:C10 et les montants en D5:D10

A adapter à tes besoins

Cdlmnt
0
xariri Messages postés 6 Statut Membre
 
Un grand merci, cela fonctionne !

Je vais me pencher sur les possibilités de cette fonction sommeprod. Je n'aurai jamais imaginé l'utiliser de cette manière.

X
0
xariri Messages postés 6 Statut Membre
 
Encore une petite question sur la formule.

Comment faire pour que le résultat de la formule soit différent de "0.00" quand on est hors critaire et indiquer par exemple #N/A ?

Dans l'exemple si on fait la recherche sur le membre 5.

Merciii
X
0
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
tu peux tester avec si

=SI(SOMMEPROD(toute la formule précédente... )=0;"#N/A";SOMMEPROD(toute la formule precedente)
0
xariri Messages postés 6 Statut Membre
 
J'y avais pensé mais il se peut qu'un le résultat soit vraiment = 0
Je cherche donc un moyen uniquement si les critères sont pas possibles.
0
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
essaie
=SI(SOMMEPROD((B5:B10=2)*(C5:C10<=A1)*(D5:D10>=A1) ) =0;"N/A";SOMMEPROD((B5:B10=2)*(C5:C10<=A1)*(D5:D10>=A1) *(E5:E10))
0
xariri Messages postés 6 Statut Membre
 
Malheureusement ce n'est pas cela, les raisons d'être hors critère peuvent être diverses : pas de date, date n'étant pas dans les périodes, membre n'existant pas...
C'est la fonction "faux" dans la formule Recherchev(valeur;table;index;FAUX) que je recherche.

Encore merci d'avance
X
0
xariri Messages postés 6 Statut Membre
 
Mike-31,
Je n'avais pas vu ta solution :

SI(SOMMEPROD((memb=E1)*(deb<=F1)*(fin>=F1)*(resul<>""))=0;"pas de réponce";SOMMEPROD((memb=E1)*(deb<=F1)*(fin>=F1)*(resul)))))

C'est parfait, j'ai vraiment ce dont j'ai besoin, un tout GRAND Merci !!!!

a+
X
0
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   5 138
 
Je te parlais de cette formule qui teste les deux critères et si ta liste contient une réponse, a laquelle il est possible encore de tester chaque champ mais ça va commencer à faire usine à gaz


=SI(E1="";"attente membre";SI(F1="";"attente critère";SI(SOMMEPROD((memb=E1)*(deb<=F1)*(fin>=F1)*(resul<>""))=0;"pas de réponce";SOMMEPROD((memb=E1)*(deb<=F1)*(fin>=F1)*(resul)))))
0