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 :

afficher une cellule d'une colonne suivant sa valeur [XL-2003]


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut afficher une cellule d'une colonne suivant sa valeur
    bonjour,

    voilà mon problème,

    j'ai 3 colonnes une qui me donne des numéros de point, l'autre la valeur et la dernière dans laquelle, je calcule le résultat



    je voudrais dans l'exemple que quand la valeur de calcul arrive à 75 ou à la valeur la plus proche je retrouve dans un quatrième colonne le numéro du point concerné

    merci d'avance

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    Sauf erreur Match dois fonctionner, donc en mettant un Si pour éviter d'afficher le résultat sur chaque ligne la formule donnerait quelque chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =IF($A1<>MATCH(75;$C$1:$C$9);"";$A1)
    Pour la cellule D1 de ton exemple...

    A+

    Edit: désolé, oublié de traduire (je suis en version GB) donc avec fonction en français

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =Si($A1<>Equiv(75;$c$1:$c$9);"";$A1)

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 150
    Points
    150
    Par défaut
    Voici une formule un peu plus précise, à écrire sur la ligne 1, qui doit répondre au problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(LIGNE($C1)=MAX(EQUIV(75;$C$1:$C$9)*($C$1:$C$9<75));$B1;"")
    à valider par Ctrl+Maj+Entrée (formule matricielle). Puis vous pouvez ensuite la copier sur toutes les lignes.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 150
    Points
    150
    Par défaut
    Rendons à César, ce qui est à César...

    Je croyais que la formule de Fvandermeulen n'était qu'une approximation non testée ("quelque chose du genre") mais en fait elle fonctionne très bien, est plus simple, et donne le même résultat.

  5. #5
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut djib29,
    T'avais raison j'avais pas testé (je sais c'est pas bien) mais ça me semblais simple.
    Mais avec ta remarque j'ai testé et je constate qu'il ne renvoi la valeur la plus proche de 75 qui si elle est inférieure
    Si on remplace dans l'exemple la valeur de la cellule C6 par 70, ma formule renvoi toujours 6 et pas 7 si on considère la valeur la plus proche de 75 de manière stricte
    Faut donc chercher pour contourner ça.
    A+

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 150
    Points
    150
    Par défaut
    Ce qu'on peut dire c'est que ta formule respecte l'énoncé du problème. Après on peut se triturer les méninges comme tu viens de le faire.

    Avec la nouvelle condition que tu ajoutes il y a la formule suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ABS(75-$C1)=MIN(ABS(75-$C$1:$C$9));$A1;"")
    à valider par Ctrl+Maj+Entrée, puis copier sur toutes les lignes.

  7. #7
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    bien joué en plus tu tombes à point, j'allais m'y mettre pour digérer...
    A+

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut
    bonsoir,
    merci pour les réponses,

    j'ai donc pris la formule matricielle
    =SI(ABS(75-$C1)=MIN(ABS(75-$C$1:$C$9));$A1;"")
    qui prend en compte le résultat le plus proche de la demande
    6 pour une valeur de 73
    et si je modifie la cellule b7 avec comme valeur 3 ce qui passe c7 à 76
    et donne le résultat 7

    mais j'ai encore un problème cette formule s'applique à une colonne de 2000 cellules mais par moment seule 1500 ont des données et là cela interdit le fonctionnement en affichant dans la 1iere cellule [VALEUR]

    pouvez-vous modifier la formule pour qu'elle fonctionne avec ce critère

    merci beaucoup

  9. #9
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Bonjour,
    Etrange, je viens de tester et je ne reproduis pas l'erreur que tu indique.
    A part la plage, y a t'il autre chose qui change par rapport à ton exemple ?

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut complément d'information
    Bonjour,

    en fait j'ai des traces avec un nombre de points différents à chaque fois
    disons de 500 à 2000 points pour une distance max de 20 Km
    dans cette trace je calcule la distance dans une colonne ( p ) pour exemple

    dans la colonne (CB) je viens calculer la position du 1ier Km
    =SI($P2=1000;$A2;SI(ABS(1000-$P2)=MIN(ABS(1000-$P$2:$P$1349));$A2;""))

    dans la colonne (CC) je viens calculer la position du 1ier Km
    =SI($P2=2000;$A2;SI(ABS(2000-$P2)=MIN(ABS(2000-$P$2:$P$1349));$A2;""))

    et ainsi de suite jusqu'au Km20

    l'erreur vient de la plage qu'il me faut renseigner avant ($P$2:$P$1349) ou la colonne (P) représente le nombre de point
    dans cet exemple, la trace fait 13Km2 pour 1349 points.

    je voudrais que cela fonctionne avec une plage de 2000 point de définis et que je puisse mettre tout type de trace de 500 à 1999 par exemple

    j'espère que je réponds à ta question
    merci d'avance

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    660
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 660
    Points : 782
    Points
    782
    Par défaut
    Bonjour,

    Je viens de faire le test avec 2000 lignes : aucun problème.
    Par contre en oubliant de valider la formule par Ctrl+Maj+Entrée le problème apparait.
    Ne serait-ce pas le cas chez toi ?

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut lien du fichier exemple
    je mets sur mon site

    http://www.club-des-taches.fr/fichiers/girolata.xls

    l'erreur apparait à la ligne 1350 pour une valeur du nombre de point de 1349

    merci d'avance

  13. #13
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Re,
    Je pense que l'utilisation des "" pour les données vides ou à 0 n'aide pas au calcul (même si c'est plus joli. Essaies en mettant 0 au lieu des "" donc:

    Pour ta colonne O:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(F3<>"";SUBSTITUTE(F3;"m";"")*1;0)
    Et pour la P, j'aurais tendance à faire

    De même pour faciliter les formules à partir de la colonne CB, tu indiques en ligne 2 la valeur de référence donc en CB2 tu mets 1000 et la formule en CB3 devient:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {=SI($P2=CB$2;$A2;IF(ABS(CB$2-$P2)=MIN(ABS(CB$2-$P$2:$P$2000));$A2;""))}
    Par contre est-ce normal que tu aies un décallage d'une ligne ?

    A+

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut copie d'écran avec le défaut
    voici la copie d'écran avec le défaut



    merci

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut suite des modifications cet après-midi
    merci, encore pour tout ce temps passé sur ma feuille
    mais maintenant le papy que je suis doit aller faire son devoir de restaurateur

    donc, je modifie tout cela pendant la sieste de mes 2 monstres

    si tu vois d'autres erreurs n'hésites pas

    A plus tard

  16. #16
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 150
    Points
    150
    Par défaut
    J'ai ouvert le fichier et je n'ai pas de #VALEUR dans la cellule CB3


    J'ai trouvé pourquoi: dans la capture d'écran, la plage va jusqu'à la ligne 2000

  17. #17
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 150
    Points
    150
    Par défaut
    Citation Envoyé par Fvandermeulen Voir le message
    ....Et pour la P, j'aurais tendance à faire

    En mettant 0 au lieu de "", comme indiqué, les #VALEUR disparaissent.

    Après il existe une option d'affichage qui permet d'afficher des cellules vides quand la cellule contient 0 ... si ces 0 vous dérangent.

  18. #18
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    1 35 40 1
    2 20 26
    3 25 43
    4 30 42
    5 50 20
    6 42 12
    7 12 52
    8 15 10
    9 60 30 9
    10 23 20
    11 24 42
    12 25 20
    13 26 30
    14 56 10
    15 45 20
    16 42 10
    17 41 53 17
    18 46 3
    19 51 2
    20 52 10
    21 36 42 21

    "=SI(D4+E4>=75;C4;"")"

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    1	35	40	1
    2	20	26	
    3	25	43	
    4	30	42	
    5	50	20	
    6	42	12	
    7	12	52	
    8	15	10	
    9	60	30	9
    10	23	20	
    11	24	42	
    12	25	20	
    13	26	30	
    14	56	10	
    15	45	20	
    16	42	10	
    17	41	53	17
    18	46	3	
    19	51	2	
    20	52	10	
    21	36	42	21
    			
    	"=SI(D4+E4>=75;C4;"")"

  20. #20
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 9
    Points : 5
    Points
    5
    Par défaut version finale
    Bonjour,

    je viens de mettre sur mon site le résultat du travail de toutes les aides que vous m'avez apportés.

    http://www.club-des-taches.fr/fichiers/vide.xls

    Ce fichier me sert à savoir le nombre de kilomètre du parcours, à insérer un waypoint tous les Km sur ma trace et à calculer le dénivelé positif et négatif de chaque kilomètre parcouru.

    Merci encore à tous.

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

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. [XL-2007] Affiche un mot dans une cellule selon une phrase.
    Par Neptune64 dans le forum Excel
    Réponses: 3
    Dernier message: 28/09/2011, 23h02
  3. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 17h01
  4. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  5. Afficher une image dans une cellule d'une gridview
    Par guigui11 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/09/2007, 10h18

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