Fonction si dans un autre classeur

fab64 -  
 fab64 -
Bonjour,
j'ai tenté de trouver ma réponse sur le forum, ...mais en vain !dsl.
Voici mon soucis :
je voudrais une formule du type : "si (dans la colonne E d'un autre classeur, je trouve la valeur 'X' ; alors je voudrais la somme des montants de la colonne D pour les lignes où i y a la valeur 'x' en E (du même classeur); sinon 'zéro').
Merci d'avance à tous

A voir également:

4 réponses

dobo69 Messages postés 1720 Statut Membre 833
 
bonjour,

=SOMME.SI('C:\chemin en entier\[nom du fichier.xls]Feuil1'!E:E;x;'C:\chemin en entier\[nom du fichier.xls]Feuil1'!D:D)

sur la base de =SOMME.SI(E:E;x;D:D)

Pour éviter d'écrire "à la main" le chemin complet : ouvrir les deux fichiers et construire la formule ci-dessus : à la place de E:E, aller sélectionner la colonne E du fichier source par ALT+TAB. idem pour D:D

Ne fonctionne que si le fichier source est ouvert.
Si vous n'avez besoin de rien, demandez-moi.
1
fab64
 
Merci beaucoup, beaucoup !!
Ca marche !!!
Super
0
fab64
 
re bonsoir
est-il possible d'ajouter des condition s "ou" à cette formule ?
Pae ex :
"si (dans la colonne E de la feuille 1 d'un autre classeur, et dans la colonne E de la feuille 2 ; je trouve la valeur 'X' ; alors je voudrais la somme des montants des colonnes D (donc des 2 feuilles)pour les lignes où i y a la valeur 'x' en E (du même classeur); sinon 'zéro').
Merci
0
dobo69 Messages postés 1720 Statut Membre 833
 
bonjour,
il est possible de faire cela mais il faut changer de formule et utiliser SOMMEPROD :

=SOMMEPROD(('C:\Chemin\[Classeur2.xls]Feuil1'!$E$1:$E$10000="x")*('C:\Chemin\[Classeur2.xls]Feuil2'!$E$1:$E$10000="X")*(('C:\chemin\[Classeur2.xls]Feuil1'!$D$1:$D$10000)+('C:\chemin\[Classeur2.xls]Feuil2'!$D$1:$D$10000)))

basé sur :
=SOMMEPROD(('feuil1'!E1:E10000=x)*('feuil2'!E1:E10000)*('feuil1'!D1:D10000+'feuil2'!D1:D10000)

Cette formule renvoie la somme des colonnes D si et seulement si x est présent simultanément dans les 2 lignes de E correspondantes.

la fonction SOMMEPROD est grosse consommatrice de ressources de calcul : il est donc conseillé de limiter les plages de sélection ('E:E' et 'D:D' fonctionne mais concerne plus de 65000 lignes sur excel2003 => limiter les plages à quelques chose de plus 'raisonnable' par ex E1:E10000 - ! : toutes les plages doivent être identiques.)

SOMMEPROD fonctionne meme si le classeur2 est fermé
0
fab64
 
Re
tu me dis : "Cette formule renvoie la somme des colonnes D si et seulement si x est présent simultanément dans les 2 lignes de E correspondantes. "

Si "x" n'est présent que sur une seule feuille, le calcul est toujours valable ?
il me serais peut être plus simple de répéter la formule précédente, et dans d'en faire la somme dans mon classeur 1.

par ex :
dans classeur 1, cellule h5 :
=SOMME.SI('C:\[classeur2.xls]Feuil1'!E:E;x;'C:\[classeur2]Feuil1'!D:D)
dans classeur 1, cellule h6 :
=SOMME.SI('C:\[classeur2.xls]Feuil2'!E:E;x;'C:\[classeur2]Feuil2'!D:D)
dans classeur 1, cellule h7 :
=SOMME.SI('C:\[classeur2.xls]Feuil3'!E:E;x;'C:\[classeur2]Feuil3'!D:D)
dans classeur 1, cellule h8 :
=somme(h5:h7)

Qu'en pense tu ?
Merci
0
dobo69 Messages postés 1720 Statut Membre 833
 
Donc la condition n'est pas ET, mais OU....
Donc oui dans ce cas ta méthode fonctionne
sinon, en 'une fois' toujours avec SOMMEPROD, piur obtenir la condition OU il faut remplacer le * par + dans la 1° partie des condtions :
=SOMMEPROD((('C:\Chemin\[Classeur2.xls]Feuil1'!$E$1:$E$10000="x")+('C:\Chemin\[Classeur2.xls]Feuil2'!$E$1:$E$10000="X")+('C:\Chemin\[Classeur2.xls]Feuil3'!$E$1:$E$10000="X"))*(('C:\chemin\[Classeur2.xls]Feuil1'!$D$1:$D$10000)+('C:\chemin\[Classeur2.xls]Feuil2'!$D$1:$D$10000)+('C:\chemin\[Classeur2.xls]Feuil3'!$D$1:$D$10000)))

basé sur :
=SOMMEPROD((('feuil1'!E1:E10000=x)+('feuil2'!E1:E10000=x))*('feuil1'!D1:D10000+'feuil2'!D1:D10000)
0
fab64
 
merci bcp
a+
0
Raymond PENTIER Messages postés 71870 Date d'inscription   Statut Contributeur Dernière intervention   17 400
 
Oui ; les fonctions ET, NON, OU, SI sont utilisables ainsi.
0
fab64
 
Bonjour
dsl, mais je n'arrive pas à formuler ma question avec le "ET"

=SOMME.SI(('C:\chemin en entier\[nom du fichier.xls]Feuil1'!E:E);ET(C:\chemin en entier\[nom du fichier.xls]Feuil2'!E:E);x;('C:\chemin en entier\[nom du fichier.xls]Feuil1'!D:D)+('C:\chemin en entier\[nom du fichier.xls]Feuil2'!D:D))

Merci de votre aide
0
dobo69 Messages postés 1720 Statut Membre 833
 
Re,
non.
somme.si n'accepte pas plusieurs critères de cette facon là. voir ma réponse ici
0