IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Erreur INDIRECT & SOMMEPROD + DECALER avec la fonction LIGNE()


Sujet :

Excel

  1. #1
    Membre chevronné Avatar de Dinytro
    Profil pro
    Inscrit en
    Août 2003
    Messages
    402
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 402
    Par défaut Erreur INDIRECT & SOMMEPROD + DECALER avec la fonction LIGNE()
    Bonjour,


    Je bloque sur une problématique liée à l'utilisation combinée de SOMMEPROD, DECALER, INDIRECT et LIGNE()


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((DECALER(INDIRECT("B" & LIGNE());-1;4;-10))*(DECALER(INDIRECT("B" & LIGNE());-1;15;-10)))
    Avec ce code, j'ai une erreur #VALEUR


    Je me dis alors que la fonction SOMMEPROD génère cette erreur car ce code fonctionne sans soucis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMME(DECALER(INDIRECT("B" & LIGNE());-1;4;-10))

    En faisant des tests, j'ai remarqué que c'était l'utilisation de la fonction LIGNE() dans le SOMMPROD qui posait soucis puisque ce code fonctionne très bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD((DECALER(INDIRECT("B" & 1);-1;4;-10))*(DECALER(INDIRECT("B" & 1);-1;15;-10)))

    Sauriez vous m'aider à construire le premier argument de la fonction DECALER (référence) à partir de la ligne en cours ?

    Merci

  2. #2
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Quelle est la version d'Excel utilisée ?
    Essayer de valider la formule initiale en formule matricielle par Ctrl + Maj + Entrée.
    Cordialement
    Claude

  3. #3
    Membre chevronné Avatar de Dinytro
    Profil pro
    Inscrit en
    Août 2003
    Messages
    402
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 402
    Par défaut
    Merci pour votre réponse
    Je travaille avec Excel 2016
    La formule matricielle ne change rien (j'avais oublié de le préciser mais j'avais déjà tenté)

  4. #4
    Membre Expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Billets dans le blog
    1
    Par défaut
    Bonjour
    En faisant des tests, j'ai remarqué que c'était l'utilisation de la fonction LIGNE() dans le SOMMPROD qui posait soucis puisque ce code fonctionne très bien
    =SOMMEPROD((DECALER(INDIRECT("B" & 1);-1;4;-10))*(DECALER(INDIRECT("B" & 1);-1;15;-10)))
    Etes-vous sûr que cette formule fonctionne et que vous n'avez pas comme retour d'Excel l'indication d'erreur #REF!.
    En effet, DECALER(INDIRECT("B" & 1);-1;4;-10) renvoie à une plage F-9:F0 qui n'existe pas dans la feuille.
    La formule
    =SOMMEPROD((DECALER(INDIRECT("B" & LIGNE());-1;4;-10))*(DECALER(INDIRECT("B" & LIGNE());-1;15;-10)))
    ne renverra une réponse numérique à la place du message d'erreur que pour LIGNE() >10.
    Ceci étant, vous avez compliqué les indications des plages intervenant comme paramètres de la fonction SOMMEPROD.
    Sauf erreur de ma part, DECALER(INDIRECT("B" & LIGNE());-1;4;-10) et DECALER(INDIRECT("B" & LIGNE());-1;15;-10) désignent respectivement des plages des colonnes F et Q.
    En se plaçant par exemple en ligne 15, pourquoi ne pas écrire plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(DECALER($F15;-1;0;-10)*DECALER($Q15;-1;0;-10))
    Les références mixtes $F15 et $Q15 (colonnes absolues, ligne relative) s'incrémenteront automatiquement pour la ligne lorsque vous recopierez la formule en changeant de ligne.
    Cordialement
    Claude

Discussions similaires

  1. Réponses: 2
    Dernier message: 26/10/2016, 10h39
  2. Réponses: 2
    Dernier message: 15/11/2015, 15h33
  3. [Mail] erreur avec utilisation fonction mail
    Par taka10 dans le forum Langage
    Réponses: 7
    Dernier message: 12/07/2006, 16h19
  4. #Erreur dans une requête avec une fonction personnalisée
    Par pguiheu dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 04/07/2006, 15h45
  5. erreur avec la fonction putfile() sur connexion FTP
    Par stefane1981 dans le forum C++
    Réponses: 2
    Dernier message: 23/09/2005, 09h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo