Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2011, 16h20   #1
Invité de passage
 
Inscription : novembre 2011
Messages : 1
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 1
Points : 0
Points : 0
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
sbastitou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 16h43   #2
Membre actif
 
Homme
Ressources humaines
Inscription : janvier 2011
Messages : 172
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Ressources humaines
Secteur : Bâtiment

Informations forums :
Inscription : janvier 2011
Messages : 172
Points : 166
Points : 166
bonjour,

il n y'a pas que la formule si, essaye avec index et equiv :
Code :
=SIERREUR(INDEX(A1:B20;EQUIV($F$1;B1:B20;-1);1);"")
la cellule F1= oui ou non.

Cordialement

Gestionnaire_rh
Gestionnaire_rh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2011, 21h50   #3
Membre expérimenté
 
Homme
Enseignant
Inscription : novembre 2009
Messages : 350
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Algérie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : novembre 2009
Messages : 350
Points : 500
Points : 500
Bonjour à tous,

Essayes la formule matricielle suivante:
Code :
=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
hben1961 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2011, 09h21   #4
Membre du Club
 
Homme
Inscription : novembre 2011
Messages : 37
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : novembre 2011
Messages : 37
Points : 45
Points : 45
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.
grard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2011, 15h40   #5
Membre Expert
 
Homme
Retraité
Inscription : avril 2011
Messages : 696
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Retraité

Informations forums :
Inscription : avril 2011
Messages : 696
Points : 1 448
Points : 1 448
Bonjour,

Tu peux également opter pour une procédure VBA
Code :
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
Type de fichier : xls OuiNon.xls (42,5 Ko, 1 affichages)
gFZT82 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 28/11/2011, 09h46   #6
Invité régulier
 
Inscription : novembre 2011
Messages : 8
Détails du profil
Informations forums :
Inscription : novembre 2011
Messages : 8
Points : 5
Points : 5
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
tetardapatte est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h27.


 
 
 
 
Partenaires

Hébergement Web