SI imbriquées
Résolu
nana22630
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
-
nana22630 Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
nana22630 Messages postés 15 Date d'inscription Statut Membre Dernière intervention -
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 ?
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
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",
devient
2) Inutile de faire 2 fois le même test !
Quand tu as fait
Ta formule doit logiquement s'écrire
et bien entendu quand tu effectues la rectification signalée par Fahora, la formule correcte est finalement
Cordialement.
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.
nana22630
Messages postés
15
Date d'inscription
Statut
Membre
Dernière intervention
Merci c'est vrai que ça allèges mes lignes de calcul
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
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
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
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
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é
=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é
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
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
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"))))))
=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"))))))
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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"))))))
=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"))))))
=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
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
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...
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...