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 :

Imbrication de IF limité à 7 maximum?


Sujet :

Excel

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2011
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 4
    Points : 4
    Points
    4
    Par défaut Imbrication de IF limité à 7 maximum?
    Bonjour,

    Je souhaitais savoir comment contourner la limite d'imbrication de IF limité à 7.

    Je m'explique, j'ai dans feuil1 une liste de 20 personnes avec en face un menu déroulant pour choisir pour chaque personne "oui" ou "non".

    dans feuil2 je cherche à afficher dans 2 tableaux séparés, la liste des personnes qui sont en "non" dans un tableau, et la liste des personnes en "oui" dans un deuxième.

    J'ai donc voulu faire ça à base de SI imbriqué, dans la 1ere case du tableau:
    =SI(personne1="oui"; nom personne1; SI(personne2="oui"; nom personne2; [...] etc jusqu’à personne 20.

    puis à la ligne 2, faire pareil mais en démarrant directement à personne2 jusqu’à 20, et ainsi de suite.

    Le problème est que l'on peut imbriquer que 7 SI dans la même équation, et moi il m'en faut 20...

    Pensez vous qu'il est possible de contourner le problème ou de faire avec une fonction intégrée qui ferait la même chose?

    Merci pour votre temps

  2. #2
    Membre actif
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Janvier 2011
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2011
    Messages : 202
    Points : 276
    Points
    276
    Par défaut
    bonjour,

    il n y'a pas que la formule si, essaye avec index et equiv :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SIERREUR(INDEX(A1:B20;EQUIV($F$1;B1:B20;-1);1);"")
    la cellule F1= oui ou non.

    Cordialement

    Gestionnaire_rh

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2009
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2009
    Messages : 461
    Points : 707
    Points
    707
    Par défaut
    Bonjour à tous,

    Essayes la formule matricielle suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(NB.SI(Feuil1!$B$1:$B$1000;"OUI")<LIGNE(A1);"";INDEX(Feuil1!$A$1:$A$1000;PETITE.VALEUR(SI(Feuil1!$B$1:$B$1000="OUI";LIGNE(Feuil1!$B$1:$B$1000));LIGNE(A1))))
    Pour l'autre calcul remplaces dans la formule le mot OUI par le mot NON...
    Avec en plage Feuil1!$A$1:$A$1000 les noms et en plage Feuil1!$B$1:$B$1000 les choix OUI ou NON

    Cordialement

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 53
    Points : 64
    Points
    64
    Par défaut
    Citation Envoyé par sbastitou Voir le message
    Je souhaitais savoir comment contourner la limite d'imbrication de IF limité à 7.
    Bonjour,

    Si une solution proposée ne fonctionne pas tu peux alors découper la formule et procéder par renvoi des découpes après les avoir nommées.

    Bonne journée.

  5. #5
    Membre expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Points : 3 974
    Points
    3 974
    Par défaut
    Bonjour,

    Tu peux également opter pour une procédure VBA
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Option Explicit
    Private Sub Trier_Click()
    Dim Ws1 As Worksheet 'feuille "Liste"
    Dim Ws2 As Worksheet 'feuille "Recapitulatif"
    Dim DerLig As Long
    Dim cel As Range
    Dim Compteur As Long
    Dim NomOui As New Collection 'Collection des OUI
    Dim NomNon As New Collection 'Collection des NON
    Dim Indetermine As New Collection 'Collection des Indéterminés
     
        Set Ws1 = Worksheets("Liste")
        Set Ws2 = Worksheets("Recapitulatif")
        'Recherche de la dernière ligne renseignée de la colonne A - feuille "Liste"
        DerLig = Ws1.Range("A" & Ws1.Rows.Count).End(xlUp).Row
        'Répartition des données dans les 3 collections
        For Each cel In Ws1.Range("B2:B" & DerLig)
            Select Case cel
            Case "NON"
                NomNon.Add cel.Offset(0, -1).Value
            Case "OUI"
                NomOui.Add cel.Offset(0, -1).Value
            Case Else
                Indetermine.Add cel.Offset(0, -1).Value
            End Select
        Next
        'Effacement des données de la feuille "Recapitulatif"
        Ws2.Range("A:C").ClearContents
        'Copie des collections dans la feuille "Recapitulatif"
        Ws2.Range("A1") = "Liste des OUI"
        For Compteur = 1 To NomOui.Count
            Ws2.Range("A" & Compteur + 1) = NomOui(Compteur)
        Next
        Ws2.Range("B1") = "Liste des NON"
        For Compteur = 1 To NomNon.Count
            Ws2.Range("B" & Compteur + 1) = NomNon(Compteur)
        Next
        Ws2.Range("C1") = "Liste des INDETERMINES"
        For Compteur = 1 To Indetermine.Count
            Ws2.Range("C" & Compteur + 1) = Indetermine(Compteur)
        Next
     
        Set Ws1 = Nothing
        Set Ws2 = Nothing
    End Sub
    Cordialement.
    Fichiers attachés Fichiers attachés

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2011
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Novembre 2011
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bonjour,
    Dans la feuille 2, tu recopies tes données en utilisant la touche =nom de la cellule
    ensuite tu fais un simple filtre
    et c'est fait en 30 secondes

Discussions similaires

  1. limiter montant maximum saisi dans un input
    Par tib0 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/03/2010, 05h27
  2. [AC-2007] Imbrication sous-formulaires - Limites ?
    Par AlainL dans le forum IHM
    Réponses: 6
    Dernier message: 22/01/2010, 15h06
  3. Limites d'imbrication ?
    Par koala01 dans le forum C++
    Réponses: 5
    Dernier message: 03/03/2008, 16h32
  4. Limite longueur Maximum dans méthode objetXmlHttpRequest.send(params) ?
    Par jmacdev dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 30/08/2006, 18h00
  5. Changer la limite maximum de la taille d'un fichier
    Par Ickou dans le forum Applications et environnements graphiques
    Réponses: 6
    Dernier message: 23/03/2006, 14h35

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