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 -
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.
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:
- Fonction sommeprod associé à indirect avec chaine de caractè
- Fonction si et - Guide
- Chaine tnt gratuite sur mobile - Guide
- Plus de chaine tv - Guide
- Chaine radio - Télécharger - Médias et Actualité
- Chaine musique bouygues - Accueil - Guide TV et vidéo
6 réponses
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
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
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
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
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
Crdlmt
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
Merci encore d'avoir essayé!
Cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question