SI imbriquées

Résolu/Fermé
nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016 - 19 juil. 2016 à 14:09
nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016 - 20 juil. 2016 à 12:27
Bonjour,

Je rencontres un problème sur un tableur excel.
L'idée est de mettre des notes en fonction d'intervalle :

Si une zone a un pourcentage de bati = 0 alors je lui mets la note de 0
Si une zone a un pourcentage de bati compris entre 0 et 5 alors je lui mets la note de 1
Si une zone a un pourcentage de bati compris entre 5 et 10 alors je lui mets la note de 2
Si une zone a un pourcentage de bati compris entre 10 et 15 alors je lui mets la note de 3
Si une zone a un pourcentage de bati compris entre 15 et 20 alors je lui mets la note de 4
Si une zone a un pourcentage de bati supérieur à 20 je lui mets la note de 5
Sinon je lui mets la note de "NUL" (car parfois je n'ai pas la donnée)

J'ai mis pour fonction : =(SI 'Données brutes'!I2=0;0; SI(ET('Données brutes'!I2>0;'Données brutes'!I2<=5%);1;SI(ET('Données brutes'!I2>5%;'Données brutes'!I2<=10%);2;SI(ET('Données brutes'!I2>10%;'Données brutes'!I2<=15%);3;SI(ET('Données brutes'!I2>15%;'Données brutes'!I2<=20%);4;SI(ET('Données brutes'!I2>20%);5;"NUL"))))))

Je ne comprends pas pourquoi cela ne fonctionne pas.

Pouvez vous m'aider ?

6 réponses

Raymond PENTIER Messages postés 58428 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 13 mai 2024 17 106
19 juil. 2016 à 15:48
Salut, Nana.

Si tu m'y autorises, voici quelques conseils, pour rendre ta formule plus légère et plus lisible :

1) Si tu remplaces le nom de feuille "Données brutes" par "Dat",
=(SI 'Données brutes'!I2=0;0;SI(ET('Données brutes'!I2>0;'Données brutes'!I2<=5%);1;SI(ET('Données brutes'!I2>5%;'Données brutes'!I2<=10%);2;SI(ET('Données brutes'!I2>10%;'Données brutes'!I2<=15%);3;SI(ET('Données brutes'!I2>15%;'Données brutes'!I2<=20%);4;SI(ET('Données brutes'!I2>20%);5;"NUL"))))))

devient
=(SI Dat!I2=0;0;SI(ET(Dat!I2>0;Dat!I2<=5%);1;SI(ET(Dat!I2>5%;Dat!I2<=10%);2;SI(ET(Dat!I2>10%;Dat!I2<=15%);3;SI(ET(Dat!I2>15%;Dat!I2<=20%);4;SI(ET(Dat!I2>20%);5;"NUL"))))))

2) Inutile de faire 2 fois le même test !
Quand tu as fait
=(SI Dat!I2=0;0;
il ne te reste plus à examiner que des nombres >0 ; alors pourquoi recommencer
SI(ET(Dat!I2>0;Dat!I2<=5%);
?
Ta formule doit logiquement s'écrire
=(SI Dat!I2=0;0;SI(Dat!I2<=5%;1;SI(Dat!I2<=10%;2;SI(Dat!I2<=15%;3;SI(Dat!I2<=20%;4;SI(Dat!I2>20%;5;"NUL"))))))

et bien entendu quand tu effectues la rectification signalée par Fahora, la formule correcte est finalement
=SI(Dat!I2=0;0;SI(Dat!I2<=5%;1;SI(Dat!I2<=10%;2;SI(Dat!I2<=15%;3;SI(Dat!I2<=20%;4;SI(Dat!I2>20%;5;"NUL"))))))

Cordialement.
2
nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016
19 juil. 2016 à 16:16
Merci c'est vrai que ça allèges mes lignes de calcul
0
Fahora Messages postés 814 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 2 janvier 2023 68
Modifié par Fahora le 19/07/2016 à 14:31
Bonjour ,

Pourquoi ne pas utiliser une formule mathématique ?
Si tes données sont des nombres :

=SI(ESTNUM('Données brutes'!I2);SI('Données brutes'!I2/5>4;5;arrondi.sup('Données brutes'!I2/5;0));"Nul")

Si tes données sont pourcentages : (0% ; 1% ...)
=SI(ESTNUM('Données brutes'!I2);SI('Données brutes'!I2/5>4;5;arrondi.sup('Données brutes'!I2*20;0));"Nul")

Si tu veux garder ta formule ,l'erreur vient certainement de la position de ton 1er "SI" , qui doit suivre directement le "="
Cordialement,
--
Nos seules limites sont celles que nous nous imposons nous-même.
La politesse et un merci ne tuent pas. Il existe un bouton pour "Résolu" pour confirmer que     votre problème n'en est plus un. Fahora
1
Raymond PENTIER Messages postés 58428 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 13 mai 2024 17 106
19 juil. 2016 à 14:52
Bonjour Fahora.

Astucieuse, ta méthode !
J'espère que Nana aura compris qu'il manque des % à la formule, qui s'écrit :
=SI(ESTNUM('Données brutes'!I2); SI('Données brutes'!I2/5>4
%
;5;ARRONDI.SUP('Données brutes'!I2/5
%
;0)); "Nul")
0
Fahora Messages postés 814 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 2 janvier 2023 68
19 juil. 2016 à 14:59
Il est vrai , Merci Raymond.
0
nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016
19 juil. 2016 à 14:59
Je ne comprends pas ta formule mathématique et surtout l'objectif ?
0
Fahora Messages postés 814 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 2 janvier 2023 68
19 juil. 2016 à 15:23
L'idée :

Simplement , tu as des valeurs numériques , et tu veux associer à une nouvelle valeur numérique.
Pour faire simple, tu souhaites que :

0% 0
1% 1
2% 1
3% 1
4% 1
5% 1
6% 2
7% 2
8% 2
9% 2
10% 2
11% 3
12% 3
13% 3
14% 3
15% 3
16% 4
17% 4
18% 4
19% 4
20% 4
21% 5

Il existe donc une formule mathématiques qui permet cette chose.
en multipliant par 20 (ce qui revient à diviser par 5%) et en arrondissant à l'unité supérieur.

L'objectif est le même que le tien, la formule mathématique permet juste de supprimer tout le charbia des SI imbriqués
0
nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016
19 juil. 2016 à 16:13
Merci je viens de comprendre, oui c'est pas bête
0
PHILOU10120 Messages postés 6371 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 5 mai 2024 798
19 juil. 2016 à 14:28
Bonjour nana22630

=SI(I2=0;0; SI(ET(I2>0;I2<=5%);1;SI(ET(I2>5%;I2<=10%);2;SI(ET(I2>10%;I2<=15%);3;SI(ET(I2>15%;I2<=20%);4;SI(ET(I2>20%);5;"NUL"))))))

Votre paramètre 'Données brutes a été enlevé n'ayant pas ce fichier,
La première parenthèse est mal placé
1
via55 Messages postés 14408 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 5 mai 2024 2 704
19 juil. 2016 à 14:35
Bonjour nana

Pas besoin des ET :

=SI('Données brutes'!I2="";"NUL";SI('Données brutes'!I2=0;0; SI('Données brutes'!I2<=5%;1;SI('Données brutes'!I2<=10%;2;SI('Données brutes'!I2<=15%;3;SI('Données brutes'!I2<=20%;4;5))))))

Cdlmnt
Via
1
nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016
19 juil. 2016 à 14:49
J'avais pas pensé que dès qu'une réponse était bonne, excel s'arrêtait d'"utiliser" la formule c'est pour ça que je faisais les ET
Merci beaucoup en tout cas ça marche parfaitement
0
nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016
19 juil. 2016 à 15:06
Je dois vraiment pas être douée car vos solutions m'ont beaucoup aidé je pensais avoir compris et lorsque je veux la faire pour une autre situation, c'est en fonction de l'ancienneté d'une zone, elle ne fonctionne pas il y a un truc que j'ai pas du pigé

=SI(2016-'Données brutes'!N13>40;0;SI(2016-'Données brutes'!N13>=30;1;SI(2016-'Données brutes'!N13>=20;2;SI(2016-'Données brutes'!N13>=10;3;SI(2016-'Données brutes'!N13>=5;4;SI(2016-'Données brutes'!N13<5;5;"NUL"))))))
0
Raymond PENTIER Messages postés 58428 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 13 mai 2024 17 106 > nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016
19 juil. 2016 à 17:08
Cette formule a pourtant l'air correcte ;
qu'est-ce qui te fait dire qu'elle ne fonctionne pas ?
0
nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016
20 juil. 2016 à 09:21
Je l'ai testé et vérifié ensuite et les résultats ne sont pas bons.
0
Fahora Messages postés 814 Date d'inscription jeudi 24 septembre 2015 Statut Membre Dernière intervention 2 janvier 2023 68
20 juil. 2016 à 09:45
Et si tu nous disais quels sont les résultats qui ne fonctionnent pas ?

Je crois que le plus simple serait aussi que tu nous proposes un fichier (complet ou allégés) avec les problèmes que tu rencontres, qu'on puisse jeter un coup d'oeil sur les formules.

Le site https://www.cjoint.com/ te permettra de poster ton fichier sur le forum.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016
19 juil. 2016 à 14:58
Je dois vraiment pas être douée car vos solutions m'ont beaucoup aidé je pensais avoir compris et lorsque je veux la faire pour une autre situation, c'est en fonction de l'ancienneté d'une zone, elle ne fonctionne pas il y a un truc que j'ai pas du pigé

=SI(2016-'Données brutes'!N13>40;0;SI(2016-'Données brutes'!N13>=30;1;SI(2016-'Données brutes'!N13>=20;2;SI(2016-'Données brutes'!N13>=10;3;SI(2016-'Données brutes'!N13>=5;4;SI(2016-'Données brutes'!N13<5;5;"NUL"))))))
0
nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016
19 juil. 2016 à 16:22
Je ne comprends pas pourquoi je n'y arrives pas avec cette formule !!
0
nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016
19 juil. 2016 à 16:27
=SI(P4="";"NUL";
SI(P4<=5;5;
SI(P4<=10;4;
SI(P4<=20;3;
SI(P4<=30;2;
SI(P4<=40;1;0))))))

Meme cette solution ne marche pas

J'ai dans une colonne l'année de création de zones.
Je veux les noter selon leur ancienneté d'où le 2016-P4... Vu que je n'y parviens j'ai ajouté une colonne où j'ai fais les calculs et après j'ai donc dans ma colonne P4 directement l'ancienneté des zones

Je veux les classer dans cet ordre :
moins de 5 ans = 5
Entre 5 et 10 ans = 4
Entre 10 et 20 ans = 3
Entre 20 et 30 ans = 2
Entre 30 et 40 ans = 1
Plus de 40 ans = 0
case vide = Nul
0
nana22630 Messages postés 15 Date d'inscription vendredi 27 septembre 2013 Statut Membre Dernière intervention 20 juillet 2016
19 juil. 2016 à 16:29
J'ai dans une colonne l'année de création de zones.
Je veux les noter selon leur ancienneté d'où le 2016-N...
=SI(2016-N13>40;0;SI(2016-N13>=30;1;SI(2016-N13>=20;2;SI(2016-N13>=10;3;SI(2016-N13>=5;4;SI(2016-N13<5;5;"NUL"))))))

Vu que je n'y parviens j'ai ajouté une colonne où j'ai fais les calculs et après j'ai donc dans ma colonne P4 directement l'ancienneté des zones

Je veux les classer dans cet ordre :
moins de 5 ans = 5
Entre 5 et 10 ans = 4
Entre 10 et 20 ans = 3
Entre 20 et 30 ans = 2
Entre 30 et 40 ans = 1
Plus de 40 ans = 0
case vide = Nul

J'utilises donc cette formules :
=SI(P4="";"NUL"; SI(P4<=5;5; SI(P4<=10;4; SI(P4<=20;3; SI(P4<=30;2; SI(P4<=40;1;0))))))

Mais ça ne fonctionne pas...
0