Fonction sommeprod associé à indirect avec chaine de caractè

Fermé
Mama6196 Messages postés 5 Date d'inscription samedi 5 mars 2022 Statut Membre Dernière intervention 11 mai 2022 - 5 mars 2022 à 08:34
Mama6196 Messages postés 5 Date d'inscription samedi 5 mars 2022 Statut Membre Dernière intervention 11 mai 2022 - 6 mars 2022 à 19:18
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 4114 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 23 septembre 2024 668
5 mars 2022 à 11:06
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 samedi 5 mars 2022 Statut Membre Dernière intervention 11 mai 2022
Modifié le 5 mars 2022 à 20:30
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 4114 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 23 septembre 2024 668
5 mars 2022 à 23:36
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 samedi 5 mars 2022 Statut Membre Dernière intervention 11 mai 2022
6 mars 2022 à 00:37
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 4114 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 23 septembre 2024 668
6 mars 2022 à 15:46
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 samedi 5 mars 2022 Statut Membre Dernière intervention 11 mai 2022
6 mars 2022 à 19:18
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