SI plus de 64 imbrications

3 réponses
Avatar
bilal.bekim
Bonjour,=20

J'ai trouv=C3=A9 comment avoir mes r=C3=A9sultats avec des SI imbriqu=C3=A9=
mais comme il y en a plus de 64 il me bloque.

Comment je peux faire?

Voici une partie de ma formule actuelle :
=3DSI(ET(OU(G76=3D1449;G76=3D1448);OU(ET(F76>=3D760;F76<=3D769)));"75";
SI(ET(OU(G76=3D1449;G76=3D1448);OU(ET(F76>=3D770;F76<=3D781)));"60";
SI(ET(OU(G76=3D1449;G76=3D1448);OU(ET(F76>=3D782;F76<=3D796)));"45";
SI(ET(OU(G76=3D1449;G76=3D1448);OU(ET(F76>=3D797;F76<=3D811)));"30";

SI(ET(OU(G76=3D1447;G76=3D1446);OU(ET(F76>=3D760;F76<=3D769)));"75";
SI(ET(OU(G76=3D1447;G76=3D1446);OU(ET(F76>=3D770;F76<=3D782)));"60";
SI(ET(OU(G76=3D1447;G76=3D1446);OU(ET(F76>=3D783;F76<=3D797)));"45";
SI(ET(OU(G76=3D1447;G76=3D1446);OU(ET(F76>=3D798;F76<=3D812)));"30";

SI(ET(OU(G76=3D1445;G76=3D1444);OU(ET(F76>=3D760;F76<=3D769)));"75";
SI(ET(OU(G76=3D1445;G76=3D1444);OU(ET(F76>=3D770;F76<=3D783)));"60";
SI(ET(OU(G76=3D1445;G76=3D1444);OU(ET(F76>=3D784;F76<=3D798)));"45";
SI(ET(OU(G76=3D1445;G76=3D1444);OU(ET(F76>=3D799;F76<=3D813)));"30";

.
.
.
.


"Faux"))))))))))))))))))))))))))))))))))))))))

Je fais un contr=C3=B4le de la valeur G76 et de la valeur F76 et d'apr=C3=
=A8s le chiffre qui est dans ces 2 cases, je dois avoir le r=C3=A9sultat : =
75, 60, 45, 30 et si r=C3=A9sultat faux : "Faux".

Une fois que cela fonctionnera, j'aimerais que le G76 ne soit pas fixe, qu'=
il me prenne la derni=C3=A8re valeur sur la colonne G (selon une plage que =
j'aurais d=C3=A9fini genre entre la G20 et la G90). Car la F76 je la rempli=
s sur chaque ligne mais la G uniquement quand j'ai besoin pour pas r=C3=A9p=
=C3=A9ter 15 fois le m=C3=AAme chiffres car il ne change pas souvent.

Merci pour votre aide.

3 réponses

Avatar
isabelle
bonjour,
tu pourrais faire une table de condition pour voir l'ensemble,
par exemple j'ai fais la table suivante suivant les 2 premier groupes,
F76 F76 G76 G76 Résultat
770 781 1448 1449 60
782 796 1448 1449 45
797 811 1448 1449 30
760 769 1446 1447 75
770 782 1446 1447 60
783 797 1446 1447 45
798 812 1446 1447 30
et j'ai trié la table par la colonne Résultat
F76 F76 G76 G76 Résultat
797 811 1448 1449 30
798 812 1446 1447 30
782 796 1448 1449 45
783 797 1446 1447 45
770 781 1448 1449 60
770 782 1446 1447 60
760 769 1446 1447 75
on voie mieux qu'il y a un autre regroupement à faire
c'est à dire:
F76 F76 G76 G76 Résultat
797 à 812 1146 à 1449 30
782 à 797 1146 à 1449 45
770 à 782 1146 à 1449 60
760 à 769 1446 à 1447 75
une fois la table créé, la formule sera beaucoup plus légère
isabelle
Avatar
News.aioe.org
Bonjour,
Voici une approche qui te permettra de créer AUTANT de conditions que tu
désires, il n'y a aucune restriction.
Pour ce faire, il faut créer une fonction personnalisée en VBA.
A ) Ouvrir VBA Raccourci clavier : Alt + F11
B ) Insérer un "Module" - barre des menus - insertion - Module
C ) Copie dans ce module, la fonction suivante - tu peux remplacer
son nom "test" par ce que tu veux...
Dans la cellule qui doit afficher le résultat, tu inscris la formule
suivante :
=test(G2;F2)
Dans la procédure suivante : Plg représente la cellule G6
Rg représente la cellule F6
La présente fonction introduit seulement les 2 premiers
groupements que tu as présentés. En observant ce qui a
été fait, tu peux allonger la séquence des Select Case selon
tes besoins. Tu peux toujours regarder dans l'aide d'Excel
les commentaires que l'on fait sur cette méthode!
À chaque fois que tu modifieras manuellement le contenu des
cellules G6 ou F6, la fonction se mettra à jour.
'-------------------------------------------------------------
Function Test(Plg As Range, Rg As Range)
Select Case Plg
Case 1449, 1448
Select Case Rg
Case 760 To 769
x = 75
Case 770 To 781
x = 60
Case 782 To 796
x = 45
Case 797 To 811
x = 30
End Select
Case 1447, 1446
Select Case Rg
Case 760 To 769
x = 75
Case 770 To 785
x = 60
Case 783 To 797
x = 45
Case 798 To 812
x = 30
End Select
Case 1445, 1444
'case ...
'.../etc
End Select
Test = x
End Function
'-------------------------------------------------------------
MichD
Avatar
isabelle
si tu fais une table des conditions sur la Feuil2 et que les données à vérifier
sont par exemple
en cellule
A1 = 1447
et
B1 = 771
la formule sur la feuille principal sera
=SOMMEPROD((Feuil2!A:A<¡)*(Feuil2!B:B>¡)*(Feuil2!C:C<±)*(Feuil2!D:D>±)*(Feuil2!F:F))
A B C D E F
1446 1447 798 812 = 30
1448 1449 797 811 = 30
1446 1447 783 797 = 45
1448 1449 782 796 = 45
1446 1447 770 782 = 60
1448 1449 770 781 = 60
1448 1449 760 769 = 75
isabelle