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

Macros et VBA Excel Discussion :

Pui-je raccourcir cette formule? [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 645
    Points : 141
    Points
    141
    Par défaut Pui-je raccourcir cette formule?
    Bonjour le forum
    J'ai cette formule qui fonctionne bien mais je voudrais la "réduire" en longueur si c'est possible. (Excel 2003)

    Code formule : Sélectionner tout - Visualiser dans une fenêtre à part
    {=SI(MAX(F4:F20)=0;0;SI(F3=0;0;INDEX($F$3:$F$20;EQUIV(9^9^9;$F$3:$F$20;1))-INDEX($F$3:$F$20;EQUIV(9^9^9;$F$3:$F$20;1)-1)))}

    Merci à vous

  2. #2
    Membre actif
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2022
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2022
    Messages : 141
    Points : 219
    Points
    219
    Par défaut
    Ayant une aversion aux formules kilométriques (car incompréhensibles au bout de qq semaines), j'ai pris l'habitude de découper mes formules en plusieurs morceaux.
    Ainsi, dans votre cas, j'aurais créé au moins 3 colonnes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    INDEX($F$3:$F$20;EQUIV(9^9^9;$F$3:$F$20;1))
    INDEX($F$3:$F$20;EQUIV(9^9^9;$F$3:$F$20;1)-1)))
    MAX(F4:F20)
    et Une colonne affichant le résultat

  3. #3
    Membre habitué
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 645
    Points : 141
    Points
    141
    Par défaut
    Bonjour Belga 16
    Je vais regarder ça
    Merci à toi

  4. #4
    Membre émérite
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 055
    Points : 2 518
    Points
    2 518
    Par défaut
    Bonjour

    en quoi cela vous dérange d'avoir une formule "longue", celle-ci ne l'est vraiment pas de mon point de vue.
    si j'analyse votre formule, vous cherchez à faire la différence entre la dernière cellule numérique d'une plage et la cellule précédente à condition que la première cellule de la plage ne soit pas nulle et que le maximum des cellules n'est pas nul.

    cela fait beaucoup de conditions et donc plusieurs fonctions dans votre formule

    comme proposé par Belga16 vous pouvez la décomposer en plusieurs colonnes, mais vous pouvez aussi aller à la ligne avec ALT+ENTREE pour faciliter la compréhension de la formule
    également possible de remplacer les SI(condition=0;0 par (condition<>0)*.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    =(MAX(F4:F20)<>0)*
    (F3<>0)*
    (INDEX($F$3:$F$20;EQUIV(9^9^9;$F$3:$F$20;1))
    -INDEX($F$3:$F$20;EQUIV(9^9^9;$F$3:$F$20;1)-1))
    Stéphane

  5. #5
    Membre habitué
    Homme Profil pro
    Moi, je ne fais que passer, excusez le dérangement
    Inscrit en
    Mars 2013
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Moi, je ne fais que passer, excusez le dérangement

    Informations forums :
    Inscription : Mars 2013
    Messages : 645
    Points : 141
    Points
    141
    Par défaut
    Bonjour Raccourcix
    Super plus compréhensible pour moi.
    En tous les cas merci à tous les deux
    Bonne journée
    Cordialement

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

Discussions similaires

  1. entrer cette formule dans une cellule
    Par kyros21 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/01/2012, 15h21
  2. Réponses: 3
    Dernier message: 10/04/2008, 16h01
  3. raccourcir une formule
    Par vatsyayana dans le forum Excel
    Réponses: 8
    Dernier message: 22/10/2007, 23h31
  4. Réponses: 10
    Dernier message: 01/01/2007, 01h09
  5. Comment puis je faire cette effet...
    Par wikers dans le forum OpenGL
    Réponses: 5
    Dernier message: 12/06/2004, 20h40

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