Fonction sommeprod associé à indirect avec chaine de caractè

Mama6196 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -  
Mama6196 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Vous trouverez ci-dessous la fonction testée qui me renvoie 0.

SOMMEPROD(INDIRECT(""""&DROITE(CELLULE("nomfichier";avct!$A$1);NBCAR(CELLULE("nomfichier";avct!$A$1))TROUVE("]";CELLULE("nomfichier";avct!$A$1)))&"!"&"L6"&"C"&COLONNE(avct!$G$2)&":"&"L"&'Traitement données'!$J$21&"C"&COLONNE(avct!$G$2)&"""";FAUX);INDIRECT(""""&DROITE(CELLULE("nomfichier";avct!$A$1);NBCAR(CELLULE("nomfichier";avct!$A$1))-TROUVE("]";CELLULE("nomfichier";avct!$A$1)))&"!"&"L6"&"C"&COLONNE(avct!$G$2)&":"&"L"&'Traitement données'!$J$21&"C"&COLONNE(avct!$G$2)&"""";FAUX))

J'ai bien vérifié que les matrices ont mêmes tailles.

En regardant de plus près, j'ai compris que ma problématique venait de la fonction indirect car excel comprend que les guillemets ajoutés à l'intérieur de la fonction indirect comme partie intégrante de la chaine de caractère globale et du coup, il comprend cela indirect(...) et non indirect(".....") comme j'essaye de lui faire dire. Est ce quelqu'un connaitrait par hasard la bonne syntaxe Svp?

Merci.
A voir également:

6 réponses

DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 
Bonjour à tous,

Si le nom de ton fichier a des espaces, il doit être prédécédé ' et pas de "
INDIRECT("'"&DROITE(CELLULE("nomfichier";avct!$A$1);NBCAR(CELLULE("nomfichier";avct!$A$1))TROUVE("]";CELLULE("nomfichier";avct!$A$1)))&"'!"

le premier guillemet apostrophe guillemet et a la fin guillemet apostrophe ! " pour que ton nom de fichier soit encadré par des '
D'autre part si tu avait donné un nom genre nom_fich a ta formule, ça aurait été plus lisible
DROITE(CELLULE("nomfichier";avct!$A$1);NBCAR(CELLULE("nomfichier";avct!$A$1))TROUVE("]";CELLULE("nomfichier";avct!$A$1)))
dans tous les cas
Bonjour,
Un fichier EXCEL (test ou non), complété par des explications exhaustives et des exemples remplis à la main, mis https://www.cjoint.com/ , ainsi que ta version d'Excel, permettrait aux intervenants de répondre plus précisément à ta question.
Crdmt

Crdlmt
0
Mama6196 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour DjiDji,

Merci pour ton message.

Voici le lien vers le fichier: https://www.cjoint.com/c/LCfsKb1Flme

j'utilise Excel 2016. Le problème est situé dans l'onglet Nom fichier 1 où tu verras que la formule Sommeprod renvoie #valeur.

Prenons un exemple pour tu comprennes ce que fait la formule:

Onglet "Nom fichier 1" cellule C8 ==> la formule est censée calculée la somme de produit dans l'onglet "Nom fichier" entre la colonne "G"et "DD" à partir de la ligne 6 jusqu'à un nombre de ligne determinée dans l'onglet " traitement données" cellule j21 en fonction d'un critère. Ce critère est nommé en cellule A5 dans l'onglet "Nom fichier 1" et doit être identifié dans la colonne lot dans l'onglet "Nom fichier" sinon la somme de produit ne se fera pas.

Ne tient pas compte des cellules C11/C12/C13/C14 dans l'onglet "Nom fichier 1", c'est des tests que j'ai mené pour essayer de comprendre et trouver mon erreur.

D'un point de vue formule onglet fichier "Nom fichier 1" cellule C8 et en décomposant:

SOMMEPROD(

N(INDIRECT("'"&DROITE(CELLULE("nomfichier";'Nom fichier'!$A$1);NBCAR(CELLULE("nomfichier";'Nom fichier'!$A$1))-TROUVE("]";CELLULE("nomfichier";'Nom fichier'!$A$1)))&"'!$A6:$A"&'Traitement données'!$J$21)=$A5); ==> Critère transformé en vecteur colonne avec des 1 ou 0 en fonction du critère si identifié dans les différentes lignes balayées( Nombre de ligne balayé jusqu'au critère spécifié dans l'onglet "traitement données" en cellules C6

INDIRECT("'"&DROITE(CELLULE("nomfichier";'Nom fichier'!$A$1);NBCAR(CELLULE("nomfichier";'Nom fichier'!$A$1))-TROUVE("]";CELLULE("nomfichier";'Nom fichier'!$A$1)))&"'!"&"L6"&"C"&COLONNE('Nom fichier'!DD2)&":"&"L"&'Traitement données'!$J$21&"C"&COLONNE('Nom fichier'!DD2);FAUX); ==> Vecteur colonne repertoriant les valeurs allant de DD6 jusqu'au nombre de ligne spécifiée dans l'onglet "traitement données" en cellules C6 soit DD3000

INDIRECT("'"&DROITE(CELLULE("nomfichier";'Nom fichier'!$A$1);NBCAR(CELLULE("nomfichier";'Nom fichier'!$A$1))-TROUVE("]";CELLULE("nomfichier";'Nom fichier'!$A$1)))&"'!"&"L6"&"C"&COLONNE('Nom fichier'!$G$2)&":"&"L"&'Traitement données'!$J$21&"C"&COLONNE('Nom fichier'!$G$2);FAUX))==> Vecteur colonne repertoriant les valeurs allant de 6 jusqu'au nombre de ligne spécifiée dans l'onglet "traitement données" en cellules C6 soit G3000.

Sur office 365, j'ai pas cette problématique, tout marche nickel et en passant sur excel 2016, la sommeprod renvoie #Valeur.

Merci
0
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 
je n'ai pas excel 2016, mais essaye en validant ta formule par alt+ctrl+entrée, car ta formule est matricielle. c'est automatique en 365, mais c'est encore en manuel auparavant. et effectivement, elle fonctionne sous365

Crdlmt
0
Mama6196 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
je pense que tu voulais dire Ctrl+Shift+Ent mais malheureusement, ca ne fonctionne toujours pas sur Excel 2016.

Merci encore d'avoir essayé!

Cordialement
0

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

Posez votre question
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 
Il n'y a aucune raison pour ce valeur.
C'est le fichier du forum que tu mets sous 2016 ?
0
Mama6196 Messages postés 5 Date d'inscription   Statut Membre Dernière intervention  
 
Oui, c'est bien ce fichier que j'affiche sous excel 2016 et qui me retourne #valeur alors qu'il ne devrait pas. Sur mon 2ème PC personnel Sous 365, ca marche impec!
0