Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

SOMMEPROD et reférences externes

6 réponses
Avatar
LargoWinch
Bonjour,

je veux consolider des données extraites d'un progiciel sur un document
Excel. Les données sont générées au format Excel, donc, pas de soucis
pour travailler avec. J'ai donc 2 documents excel : un document de suivi
(ou de reporting) sous D:\Mes document\Travaux et un document d'export
contenant les données brutes sous D:\Mes document\Travaux\Export.

J'ai donc construit mon document avec une bonne dose de SOMMEPROD dans
les formules.
Arrivé au résultat escompté, je voudrais un peu paramétrer ma formule,
notamment en ce qui concerne le chemin de stockage des données
extraites. C'est là que le bât blesse.

Ma formule (opérationnelle) est la suivante (1) :
=SOMMEPROD(('D:\Mes document\Travaux\Export\[Export
Données.xls]Sheet1'!$B2:$B101="01")*
('D:\Mes document\Travaux\Export\[Export Données.xls]Sheet1'!$E2:$E101))


Dans ma feuille de reporting, j'ai nommé 3 cellules :

Rep_Export : chemin complet (D:\Mes document\Travaux\Export)
Nom_Rapport : nom du fichier excel généré (Export Données.xls)
Fichier_Export : chemin + nom (=Rep_Export&"\"&Nom_Rapport, pas
utilisé, mais peut servir si besoin)

Je n'arrive pas à remplacer D:\Mes document\Travaux\Export\[Export
Données.xls] par ses références

J'ai essayé
=SOMMEPROD((INDIRECT("'"&Rep_Export&"["&Nom_Rapport&"]Sheet1'!$B2:$B101")="01")*
(INDIRECT("'"&Rep_Export&"["&Nom_Rapport&"]Sheet1'!$E2:$E101")))
et quelques variantes, mais j'obtiens un #REF!

Je me doute bien que je fais une erreur , mais je ne vois pas où ... Ce
format fonctionnait bien avec des formules de type RechercheV, mais je
n'arrivait pas à cumuler les valeurs selon différents critères... Vous
pourriez m'aider a mettre au point cette formule ?

Accessoirement, j'aimerai remplacer le $B101 par quelque chose comme
="$B"&NBVAL(B:B), histoire de m'affranchir du nombre de ligne que peut
avoir mon export. Quelle serait la meilleur façon selon vous ?

Merci d'avance pour votre aide .

(1) En arrivant ce matin au travail, après avoir décompressé les
fichiers sur lesquels j'ai bossé chez moi hier soir, je me suis rendu
compte que le chemin (D:\Mes document\Travaux\Export\) a été
automatiquement modifié par le chemin où se trouve effectivement la
feuille excel ce matin.
Serait-ce parce que quand j'ai écrit mes formules, je les avais tapé
avec la forme =SOMMEPROD(('.\Export\[Export Données.xls]Sheet1'!$B2... ?

6 réponses

Avatar
LargoWinch
Corto a écrit :

LargoWinch a écrit :
Bonjour,

je veux consolider des données extraites d'un progiciel sur un
document Excel. Les données sont générées au format Excel, donc, pas
de soucis pour travailler avec. J'ai donc 2 documents excel : un
document de suivi (ou de reporting) sous D:Mes documentTravaux et un
document d'export contenant les données brutes sous D:Mes
documentTravauxExport.

J'ai donc construit mon document avec une bonne dose de SOMMEPROD dans
les formules.
Arrivé au résultat escompté, je voudrais un peu paramétrer ma formule,
notamment en ce qui concerne le chemin de stockage des données
extraites. C'est là que le bât blesse.

Ma formule (opérationnelle) est la suivante (1) :
=SOMMEPROD(('D:Mes documentTravauxExport[Export
Données.xls]Sheet1'!$B2:$B101="01")*
('D:Mes documentTravauxExport[Export Données.xls]Sheet1'!$E2:$E101))


Dans ma feuille de reporting, j'ai nommé 3 cellules :

Rep_Export : chemin complet (D:Mes documentTravauxExport)
Nom_Rapport : nom du fichier excel généré (Export Données.xls)
Fichier_Export : chemin + nom (=Rep_Export&""&Nom_Rapport, pas
utilisé, mais peut servir si besoin)

Je n'arrive pas à remplacer D:Mes documentTravauxExport[Export
Données.xls] par ses références

J'ai essayé
=SOMMEPROD((INDIRECT("'"&Rep_Export&"["&Nom_Rapport&"]Sheet1'!$B2:$B101")="01")*

(INDIRECT("'"&Rep_Export&"["&Nom_Rapport&"]Sheet1'!$E2:$E101")))
et quelques variantes, mais j'obtiens un #REF!

Je me doute bien que je fais une erreur , mais je ne vois pas où ...
Ce format fonctionnait bien avec des formules de type RechercheV, mais
je n'arrivait pas à cumuler les valeurs selon différents critères...
Vous pourriez m'aider a mettre au point cette formule ?

Accessoirement, j'aimerai remplacer le $B101 par quelque chose comme
="$B"&NBVAL(B:B), histoire de m'affranchir du nombre de ligne que peut
avoir mon export. Quelle serait la meilleur façon selon vous ?

Merci d'avance pour votre aide .

(1) En arrivant ce matin au travail, après avoir décompressé les
fichiers sur lesquels j'ai bossé chez moi hier soir, je me suis rendu
compte que le chemin (D:Mes documentTravauxExport) a été
automatiquement modifié par le chemin où se trouve effectivement la
feuille excel ce matin.
Serait-ce parce que quand j'ai écrit mes formules, je les avais tapé
avec la forme =SOMMEPROD(('.Export[Export Données.xls]Sheet1'!$B2... ?





> Bonjour LargoWinch,
> Malheureusement SOMMEPROD ne marche pas sur des classeurs fermés.
> Sinon dans ta formule il manquait juste un .
> =SOMMEPROD((INDIRECT("'"&Rep_Export&" **
> ["&Nom_Rapport&"]Sheet1'!$B2:$B101")="01")*
> (INDIRECT("'"&Rep_Export&" ** ["&Nom_Rapport&"]Sheet1'!$E2:$E101")))
>
> Corto

Que SOMMEPROD ne marche que sur des classeurs ouverts ne me gène pas
outre mesure, je sais l'ouvrir en même temps que le classeur de reporting.

J'ai donc testé avec le manquant (mais il me semble bien que ca a fait
partie de mes tentatives d'hier) : même résultat : #Ref!

Merci quand même
Avatar
Corto
Bonjour LargoWinch,
Bizarre, chez moi ça marche avec le et le fichier ouvert, j'ai bien
sûr modifié avec le nom d'un fichier sur mon disque.

Corto

LargoWinch a écrit :
Corto a écrit :

LargoWinch a écrit :
Bonjour,

je veux consolider des données extraites d'un progiciel sur un
document Excel. Les données sont générées au format Excel, do nc, pas
de soucis pour travailler avec. J'ai donc 2 documents excel : un
document de suivi (ou de reporting) sous D:Mes documentTravaux et
un document d'export contenant les données brutes sous D:Mes
documentTravauxExport.

J'ai donc construit mon document avec une bonne dose de SOMMEPROD
dans les formules.
Arrivé au résultat escompté, je voudrais un peu paramétrer ma
formule, notamment en ce qui concerne le chemin de stockage des
données extraites. C'est là que le bât blesse.

Ma formule (opérationnelle) est la suivante (1) :
=SOMMEPROD(('D:Mes documentTravauxExport[Export
Données.xls]Sheet1'!$B2:$B101="01")*
('D:Mes documentTravauxExport[Export
Données.xls]Sheet1'!$E2:$E101))


Dans ma feuille de reporting, j'ai nommé 3 cellules :

Rep_Export : chemin complet (D:Mes documentTravauxExport)
Nom_Rapport : nom du fichier excel généré (Export Données .xls)
Fichier_Export : chemin + nom (=Rep_Export&""&Nom_Rapport, pas
utilisé, mais peut servir si besoin)

Je n'arrive pas à remplacer D:Mes documentTravauxExport[Export
Données.xls] par ses références

J'ai essayé
=SOMMEPROD((INDIRECT("'"&Rep_Export&"["&Nom_Rapport&"]Sheet1'!$B2:$ B101")="01")*

(INDIRECT("'"&Rep_Export&"["&Nom_Rapport&"]Sheet1'!$E2:$E101")))
et quelques variantes, mais j'obtiens un #REF!

Je me doute bien que je fais une erreur , mais je ne vois pas où .. .
Ce format fonctionnait bien avec des formules de type RechercheV,
mais je n'arrivait pas à cumuler les valeurs selon différents
critères... Vous pourriez m'aider a mettre au point cette formule ?

Accessoirement, j'aimerai remplacer le $B101 par quelque chose comme
="$B"&NBVAL(B:B), histoire de m'affranchir du nombre de ligne que
peut avoir mon export. Quelle serait la meilleur façon selon vous ?

Merci d'avance pour votre aide .

(1) En arrivant ce matin au travail, après avoir décompressé le s
fichiers sur lesquels j'ai bossé chez moi hier soir, je me suis
rendu compte que le chemin (D:Mes documentTravauxExport) a été
automatiquement modifié par le chemin où se trouve effectivement la
feuille excel ce matin.
Serait-ce parce que quand j'ai écrit mes formules, je les avais tap é
avec la forme =SOMMEPROD(('.Export[Export
Données.xls]Sheet1'!$B2... ?





> Bonjour LargoWinch,
> Malheureusement SOMMEPROD ne marche pas sur des classeurs fermés.
> Sinon dans ta formule il manquait juste un .
> =SOMMEPROD((INDIRECT("'"&Rep_Export&" **
> ["&Nom_Rapport&"]Sheet1'!$B2:$B101")="01")*
> (INDIRECT("'"&Rep_Export&" ** ["&Nom_Rapport&"]Sheet1'!$E2:$E101")))
>
> Corto

Que SOMMEPROD ne marche que sur des classeurs ouverts ne me gène pas
outre mesure, je sais l'ouvrir en même temps que le classeur de
reporting.

J'ai donc testé avec le manquant (mais il me semble bien que ca a
fait partie de mes tentatives d'hier) : même résultat : #Ref!

Merci quand même


Avatar
LargoWinch
Corto a écrit :
Bonjour LargoWinch,
Bizarre, chez moi ça marche avec le et le fichier ouvert, j'ai bien
sûr modifié avec le nom d'un fichier sur mon disque.

Corto



Voici la formule que j'ai, après correction, qui me rends toujours un
#REF! :
=SOMMEPROD((INDIRECT("'"&Rep_Export&"["&Nom_Rapport&"]Sheet1'!$B2:$B101")="01")*
(INDIRECT("'"&Rep_Export&"["&Nom_Rapport&"]Sheet1'!$E2:$E101")))

Une précision, je travaille sous Excel 2003 SP2



Pour arriver à m'en sortir en attendant mieux, j'ai voulu remplacer le
chemin complet + nom de fichier par le nom du fichier (ouvert) simplement.
La formule fonctionne correctement, mais, dès que je sauvegarde, le nom
du classeur est remplacé par son chemin+nom. Evidemment, vue la
"profondeur" de l'arborescence, la formule dépasse les 255 caractères et
est donc tronquée :/
Avatar
LargoWinch
LargoWinch a écrit :
Corto a écrit :
Bonjour LargoWinch,
Bizarre, chez moi ça marche avec le et le fichier ouvert, j'ai bien
sûr modifié avec le nom d'un fichier sur mon disque.

Corto



Voici la formule que j'ai, après correction, qui me rends toujours un
#REF! :
=SOMMEPROD((INDIRECT("'"&Rep_Export&"["&Nom_Rapport&"]Sheet1'!$B2:$B101")="01")*

(INDIRECT("'"&Rep_Export&"["&Nom_Rapport&"]Sheet1'!$E2:$E101")))

Une précision, je travaille sous Excel 2003 SP2




Ah ben ca alors... C'est tombé en marche... Une petite pause et hop !
Avatar
Fredo P.
> >
Ah ben ca alors... C'est tombé en marche... Une petite pause et hop !


Comme quoi!, défois!, un bon canon, un bout de saucisson
-:o))
Avatar
LargoWinch
Corto a écrit :
Bonjour LargoWinch,
Cette formule fonctionne bien chez moi en remplaçant Rep_Export et
Nom_Rapport par des valeurs qui fonctionnent; tu dois avoir une erreur
dans le nom du fichier ou le nom des feuilles. Je suis aussi en Excel 2003
=SOMMEPROD((INDIRECT("'"&Rep_Export&"["&Nom_Rapport&"]*Feuil1*'!$G2:$G101")="EUR")*
(INDIRECT("'"&Rep_Export&"["&Nom_Rapport&"]*Feuil1*'!$F2:$F101")))

Corto



Chez moi, c'est Sheet1 car le classeur est généré par un progiciel en
version US, donc, je m'adapte ;).

Après avoir décortiqué les formules qui marchent et celles qui ne
marchaient pas, il y avait 2 erreurs :
- les manquant devant les [
- un décalage de certaines parenthèses.

Merci en tout cas à tous d'avoir testé.