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 :

Fonction si imbriqué


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    sécurité
    Inscrit en
    Septembre 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 197
    Points : 100
    Points
    100
    Par défaut Fonction si imbriqué
    Bonjour

    Je cherche à construire une formule avec si imbriqué.
    Je sais faire les formules simple comme =SI(A1=2;Apte; Inapte) mais les imbriquées je nage encore un peu.

    Voilà mon souhait.
    Si(A1=2;Si(B1=papa ou maman alors C1= 1 sinon rien)

    Cordialement

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Essayez ceci dans la cellule C1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(ET(A1=2;OU(B1="Papa";B1="Maman"));1;"")
    Cordialement.

  3. #3
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    =SI(SOMMEPROD((A1=2)*OU(B1="papa";B1="maman"));1;"")
    Hervé.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Le problème des si imbriqués est que la formule devient vite illisible et les erreurs de syntaxe vite commise.
    Je n’échappe pas à ces inconvénients. Plutôt que de donner la solution je préfère donner ma recette.
    Cahier des charges :
    A1<B1 :-1
    A1=B1 :0
    A1>B1 :1
    Pour résoudre ce problème je vais utiliser du pseudo-code, langage qui permet de coucher sur le papier le résultat d’une analyse dans un langage structuré ne tenant pas compte de la syntaxe du langage de destination.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    pseudo-code
    Si A1=B1 alors
    	0
    Si non	
    	Si A1<B1 alors
          -1
        Si non
    		1
    	Fin si
    Fin si
    Maintenant je vais définir une équation conditionnelle type
    Si( "Chat"="Chien";"Autruche" ;"Cheval")

    Cette équation a le mérite de fonctionner.
    Maintenant je vais remplacer les termes de l’équation par les si imbriqués de plus bas niveaux :
    Si(A1<B1;-1 ;1) correspond à Cheval du niveau supérieure.
    Si( "Chat"="Chien";"Autruche" ; Si(A1<B1;-1 ;1) )

    Et maintenant je peux compléter l’équation :
    Si( A1=B1 ;0 ; Si(A1<B1;-1 ;1) )
    Maintenant cette l’équation pourrait correspondre à nouveau à cheval
    Si( "Chat"="Chien";"Autruche" ; Si( A1=B1 ;0 ; Si(A1<B1;-1 ;1) ))

    Petit complément
    Si(A1=2;Si(B1=papa ou maman alors C1= 1 sinon rien)s
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    si A1=2 alors
    	si B1=papa ou B1=maman alors
    		1
    	sinon
    		""
    	fin si
    si non
    		""
    fin si
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Si(ou(B1="papa";B1="maman");"Autruche" ;"Cheval")
    Si(ou(B1="papa";B1="maman");1 ;"Cheval")
    Si(ou(B1="papa";B1="maman");1 ;"")
    Si( "Chat"="Chien";Si(ou(B1="papa";B1="maman");1 ;"") ;"Cheval")
    Si( "Chat"="Chien";Si(ou(B1="papa";B1="maman");1 ;"") ;"")
    Si( A1=2;Si(ou(B1="papa";B1="maman");1 ;"") ;"")
    pour ActiveSheet.range("C1").Formular1c1
    le même raisonnement fonctionne: =IF( RC[-2]=2,IF(OR(RC[-1]="papa",RC[-1]="maman"),1,""),"") c’est juste une question de syntaxe.
    Dernière modification par AlainTech ; 15/06/2013 à 13h50. Motif: Fusion de 2 messages

  5. #5
    Membre régulier
    Homme Profil pro
    sécurité
    Inscrit en
    Septembre 2012
    Messages
    197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : sécurité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2012
    Messages : 197
    Points : 100
    Points
    100
    Par défaut
    Bonjour Eric KERGRESSE, Theze, rdurupt

    Grand merci pour votre sympathie, pour vos réponses et toutes ces explications qui m'éclaircie beaucoup plus sur la fonction SI.

    Et en plus ça marche ,

    Merci encore et bientôt

    Cordialement

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

Discussions similaires

  1. Fonction ifelse "imbriqué"
    Par marpanh dans le forum R
    Réponses: 6
    Dernier message: 04/02/2011, 11h54
  2. [AC-2007] Fonction vraifaux() imbriqué
    Par Nounours1 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 22/07/2010, 19h46
  3. [AJAX] Fonctions ajax imbriquées
    Par dubitoph dans le forum AJAX
    Réponses: 1
    Dernier message: 15/10/2009, 15h21
  4. fonction Si imbriqué
    Par mimicrocro dans le forum Excel
    Réponses: 7
    Dernier message: 12/06/2007, 09h59
  5. Fonctions inline imbriquées
    Par pelotudo dans le forum MATLAB
    Réponses: 2
    Dernier message: 16/03/2007, 21h16

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