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 malgré dollars


Sujet :

Excel

  1. #1
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut Erreur malgré dollars
    Bonjour
    Voici quelque chose que je ne comprends pas du tout.
    Vous prenez un ensemble de données, par exemple le suivant (données trouvées sur un ancien post) que vous collez dans la plage $A$1:$B$5 :
    Nom Vente
    Pierre 3
    Jean 4
    Paul 10
    Pierre 12

    Vous collez la formule suivante en position C2 : "=$A$12:$A$15". Vous obtenez la valeur "Pierre".
    Vous collez la même formule, en position C6. Vous obtenez une erreur, alors que les formules sont les mêmes et font référence (semble-t-il) à la même plage (notez les $).

    Quelqu'un saurait-il expliquer ce prodige ?

  2. #2
    Membre actif
    Homme Profil pro
    Ingénieur Qualité (Microtechnique)
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Qualité (Microtechnique)
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Points : 265
    Points
    265
    Par défaut
    Hello
    Je viens d’essayer ta formule. Par contre, j’ai mis C2"=$A$1:$A$5" au lieu de C2"=$A$12:$A$15" (je pense que tu as fait une erreur de saisie)
    Effectivement, en C6, j’obtiens une erreur mais si je copie cette formule en C3-C5 j’obtiens pour chacune de ces cellules la valeur en A se trouvant dans la même ligne.
    Comme il n’y a pas de cellule correspondante dans la colonne A pour la case C6, Excel met une erreur mais c’est, pour moi, normal.
    Je ne comprends pas trop ton problème.
    Avant de poser une question avez-vous testé l’enregistreur de macro ?
    http://fauconnier.developpez.com/tut...istreur-macro/
    Merci de passer vos discussion en
    Et sinon un est toujours le bienvenue.

  3. #3
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Bonjour enicnath,

    =$A$2:$A$5 renvoie une plage alors que si tu mets cette formule dans une cellule, Excel veut absolument renvoyer une valeur.
    Comme tu n'indiques rien de plus, Excel va choisir de renvoyer le croisement de la ligne avec la plage donnée.

    Donc En C2 : =$A$2:$A$5 renvoie la valeur au croisement de A$2:$A$5 et de la ligne 2 (donc [A2] qui vaut Pierre).
    Donc En C3 : =$A$2:$A$5 renvoie la valeur au croisement de A$2:$A$5 et de la ligne 3 (donc [A3] qui vaut Jean).
    Donc En C6 : =$A$2:$A$5 renvoie la valeur au croisement de A$2:$A$5 et de la ligne 6 (donc rien qui vaut #Valeur).

    Finalement la formule que tu tests n'est pas correcte dans le sens où tu laisses Excel deviner ce qu'il doit faire.
    Tu auras l'erreur #Valeur tout le temps sauf si la formule est placée dans une cellule des lignes 2, 3, 4 ou 5.


    Par contre la formule =SOMME($B$2:$B$5) est très explicite pour Excel c'est tout simplement la somme des valeurs dans la plage donnée. Donc la aucun soucis la formule marche partout dans la feuille (sauf référence circulaire bien sûr)


    J'espère être clair
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

  4. #4
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut
    Citation Envoyé par antonysansh Voir le message
    Excel va choisir de renvoyer le croisement de la ligne avec la plage donnée ... Finalement la formule que tu tests n'est pas correcte dans le sens où tu laisses Excel deviner ce qu'il doit faire ...
    J'espère être clair
    Merci Antonysansh.
    Tu es clair mais c'est EXCEL qui est parfois peu explicite.
    En reprenant le même exemple, comment aurais-tu écrit la formule pour que EXCEL renvoie le même résultat (à la fois sur les cellules C2 et C3), sans qu'il ait besoin de deviner ?

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur Qualité (Microtechnique)
    Inscrit en
    Février 2016
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur Qualité (Microtechnique)
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2016
    Messages : 188
    Points : 265
    Points
    265
    Par défaut
    Tous dépend du résultat que tu désires.
    Antonysansh a été claire. Si tu veux la somme, tu mets =SOMME($B$2:$B$5)
    Avant de poser une question avez-vous testé l’enregistreur de macro ?
    http://fauconnier.developpez.com/tut...istreur-macro/
    Merci de passer vos discussion en
    Et sinon un est toujours le bienvenue.

  6. #6
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut
    Citation Envoyé par Nodens_swiss Voir le message
    Tous dépend du résultat que tu désires.
    Antonysansh a été claire. Si tu veux la somme, tu mets =SOMME($B$2:$B$5)
    Non, je ne désire pas la somme.
    Je voudrais que lorsque je saisis la formule ou une formule approchante, il me renvoie le contenu.
    Dans mon exemple initial, EXCEL renvoie "Pierre" en C2, et renvoie "Jean" en C3, etc.
    Il renvoyait donc une erreur en C6 parce qu'il ne parvenait pas à interpréter comment extraire l'information extraire de la plage $A$2:$A$4.

    Donc Antonysansh nous dit que EXCEL renvoie la valeur au croisement de la plage $A$2:$A$5 et de la ligne en cours.
    Ce qui explique qu'il renvoie aussi le même résultat en D2, E2, ....

    Ma question est : y a-t-il un moyen de dire à EXCEL qu'il renvoie le 1er élément de la plage $A$2:$A$5, ou le second, ou le n-ième ?

  7. #7
    Membre actif
    Inscrit en
    Novembre 2003
    Messages
    543
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 543
    Points : 239
    Points
    239
    Par défaut
    J'ai trouvé.

    Je me réponds à moi-même
    Il faut utiliser la fonction "Decaler".

    Merci à tous !

  8. #8
    Membre émérite Avatar de antonysansh
    Homme Profil pro
    Chargé d'études RH
    Inscrit en
    Mai 2014
    Messages
    1 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chargé d'études RH
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2014
    Messages : 1 115
    Points : 2 439
    Points
    2 439
    Par défaut
    Bonjour enicnath,

    Même si tu as trouvé une solution, je me permets de t'en proposer une seconde : L'utilisation de la fonction Excel INDEX
    (Lien Support Office : Utilisation de la fonction INDEX)


    Donc pour la première valeur de la plage $A$2:$A$5 je vais mettre la formule : =INDEX($A$2:$A$5;1)
    Pour la deuxième je vais mettre : =INDEX($A$2:$A$5;2)
    ect ...
    Cette formule va renvoyer le même résultat quel que soit l'endroit où elle est placée (elle est explicite donc Excel sait ce qu'il doit faire)


    On peut tout de suite deviner que =INDEX($A$2:$A$5;5) va renvoyer une erreur car là il n'y a pas de 5ieme valeur dans la plage. Par contre l'erreur va cette fois-ci être #REF.
    Tu retrouveras la même erreur avec 5, 6, ... et aussi avec des arguments négatifs.

    Petite particularité :
    =INDEX($A$2:$A$5;0) va se comporter comme =$A$2:$A$5 (croissement plage et ligne en cours) et donc cette fois-ci va dépendre de l'endroit où elle est placée (avec l'erreur #Valeur si pas de correspondance).


    DECALER est aussi une bonne solution mais dans ton cas INDEX est suffisant je pense.
    Antony

    Mieux vaut ne rien dire et passer pour un con que de l'ouvrir et ne laisser aucun doute à ce sujet.
    Gustave Parking


    Si le post vous est utile un petit fait toujours plaisir et pensez à passer en

    Et surtout -> Balise CODE

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Catalina.policy - Erreur malgré plateformes idnetiques
    Par Neverwhere dans le forum Tomcat et TomEE
    Réponses: 0
    Dernier message: 10/02/2012, 14h59
  2. Binding validation erreur malgrés ValidatesOnExceptions=True
    Par sandav dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 14/01/2011, 14h41
  3. [Jung] Erreur malgré les .jar
    Par MatOfLink dans le forum 2D
    Réponses: 1
    Dernier message: 30/01/2008, 08h01
  4. Arret sur erreur malgré gestion On error?
    Par petozak dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 05/10/2007, 17h04
  5. Réponses: 5
    Dernier message: 27/04/2007, 10h25

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