Fonction SI

bepaturej

XLDnaute Nouveau
bonjour a tous

Ayant fait une note de calcul pour calucler la section des conducteurs de protection,j'ai utilisé la fonction SI pour comparer le résultat et en afficher une section correspondante

Depuis hier, je me heurte à un refus de Excel si je rentre plus de 7 condtions SI les unes a la suite des autres.

Voila la formule que je devrais taper et qui est refusée par Excel



=SI(25>(I8*1000*RACINE(C7)/SI(C35="Cu";115;76));25;SI(35>(I8*1000*RACINE(C7)/SI(C35="Cu";115;76));35;SI(50>(I8*1000*RACINE(C7)/SI(C35="Cu";115;76));50;SI(70>(I8*1000*RACINE(C7)/SI(C35="Cu";115;76));70;SI(95>(I8*1000*RACINE(C7)/SI(C35="Cu";115;76));95;SI(120>(I8*1000*RACINE(C7)/SI(C35="Cu";115;76));120;SI(150>(I8*1000*RACINE(C7)/SI(C35="Cu";115;76));150;SI(185>(I8*1000*RACINE(C7)/SI(C35="Cu";115;76));185;SI(240>(I8*1000*RACINE(C7)/SI(C35="Cu";115;76));240;SI(300>(I8*1000*RACINE(C7)/SI(C35="Cu";115;76));300;SI(400>(I8*1000*RACINE(C7)/SI(C35="Cu";115;76));400)))))))))))


Pour précisions les sections normalisées sont indiquées juste après la fonction SI(25; 35; 50; 70; 95; 120; 150; 185; 240; 300; 400) hélas je suis bloqué à 150 :mad:

Merci de votre aide.
 

JNP

XLDnaute Barbatruc
Re : Fonction SI

Bonjour Bepaturej :),
Pourrais tu poster un fichier (sans données confidentielles), ce serait plus explicite ?
A vu de nez, le plus simple serait de faire un petit tableau des correspondances et utiliser un RECHERVEV ou RECHERCHEH pour déterminer la valeur à utiliser dans le calcul.
Une autre solution est de créer une fonction VBA en utilisant Select Case et en listant tes sections.
Bon courage et joyeuses fêtes :cool:
 

ERIC S

XLDnaute Barbatruc
Re : Fonction SI

Bonjour

pas plus de 7 SI imbriqués, c'est normal
il faut chercher une autre façon d'écrire

regarde , non testé, en additionnant et en utilisant choisir (il y a surement + simple mais là, je pars

=choisir((25>...)+(35>...)+...;25;35;50;...)
 

JeanMarie

XLDnaute Barbatruc
Re : Fonction SI

Bonjour

L'imbrication des fonctions dans Excel est limité à 7 niveaux.

Voici une solution pour résoudre ton problème.
En admettant que l'on place sur une autre feuille, une table de tes sections normalisées
Code:
  |     A      |                  B                   | 
--|------------|--------------------------------------|-
 1| Feuille Annexe pour Table des sections normalisées| 
 2|            |                                      | 
 3| Sections normalisées                              | 
 4|         25 |                                      | 
 5|         35 |                                      | 
 6|         50 |                                      | 
 7|         70 |                                      | 
 8|         95 |                                      | 
 9|        120 |                                      | 
10|        150 |                                      | 
11|        185 |                                      | 
12|        240 |                                      | 
13|        300 |                                      | 
14|        400 |                                      |

Avec la formule ci-dessous, tu obtiendras le résultat voulu
Code:
=INDEX(ScNormalisées!$A$3:$A$13;11-SOMMEPROD((ScNormalisées!$A$3:$A$13>(I7*1000*RACINE(C6)/SI(C34="Cu";115;76)))*1))

La "constante" 11 dans la formule est le nombre de sections normalisées plus 1.

@+Jean-Marie
 

JeanMarie

XLDnaute Barbatruc
Re : Fonction SI

Re...

Banzai, ayant aussi regardé une solution avec la fonction RECHERCHEV, j'en ai déduit qu'elle correspondait plus à est un comparateur ">=", qu'un comparateur ">", d'où la solution proposée, et tirée d' Eric S.

Bepaturej aura le choix.

@+Jean-Marie
 

bepaturej

XLDnaute Nouveau
Re : Fonction SI

Merci a Tous

JeanMarie, en pièce jointe un morceau de mon fichier zippé

La formule qui me pose problème est dans la cellule C19, les sections correspondantes sont dans l'onglet "Données tableaux" cellules J11 à T11

2 question ainsi que cela est marqué en commentaire quand tu te positionne sur la cellule C19 du premier onglet cette section varie en fonction de la nature de la canalisation (Cu ou Al) mais aussi en fonction du type de canalisation PVC ou PR-EPR
si tu peux me donner la soluce pour intégrer ces conditions supplémentaires dans ma formule.

Merci de ton aide
 

Pièces jointes

  • Calculs_Elec_Rév2.51.zip
    26 KB · Affichages: 27

JHA

XLDnaute Barbatruc
Re : Fonction SI

Bonjour à tous,

Ci joint un exemple avec equiv.
J'ai rajouté une petite table pour la recherche.

JHA
Je crois que j'ai oublié de rafraichir la formule en C19 suite à mes divers essais, ci-joint la formule allégée.
=SI(G8*1000*RACINE(C7)/SI(C20="Cu";115;76)>120;ARRONDI.SUP(G8*1000*RACINE(C7)/SI(C20="Cu";115;76);0);SI(C21="PVC";RECHERCHEV(EQUIV(G8*1000*RACINE(C7)/SI(C20="Cu";115;76);{120;95;70;50;35;25};-1);D23:E28;2);RECHERCHEV(EQUIV(G8*1000*RACINE(C7)/SI(C20="Cu";143;94);{120;95;70;50;35;25};-1);D23:E28;2)))
 

Pièces jointes

  • Calculs_Elec.zip
    26.7 KB · Affichages: 33
  • Calculs_Elec.zip
    26.7 KB · Affichages: 33
  • Calculs_Elec.zip
    26.7 KB · Affichages: 32
Dernière édition:

JeanMarie

XLDnaute Barbatruc
Re : Fonction SI

Bonjour tout le monde

Formule de la cellule C19, à valider par les touches Ctrl+Shift+Entrer
Code:
=INDEX('Données tableaux'!K11:U11;1;SOMMEPROD((TRANSPOSE('Données tableaux'!J11:T11)<=(G8*1000*RACINE(C7)/SI(C20="Cu";115;76)))*1))

Dans mon premier post, j'utilisais un tableau des sections normalisées sous forme verticale. Dans ton fichier elle est sous forme horizontale.
Ce qui implique de modifier les paramètres de la fonction INDEX.
INDEX(Plage;coordonnée_Verticale;coordonnée_horizontale), cette fonction retourne la valeur qui se trouve à l'intersection des deux coordonnées.

La fonction SOMMEPROD travaille aussi avec des plages verticales. Sans changer tes tableaux. il faut transformer la plage des sections normalisées, pour cela j'ai utilisé la fonction TRANSPOSE (qui a la même fonctionnalité que le collage spécial transposé).

Dans cette formule, la fonction TRANSPOSE oblige la validation de la formule par les touches Ctrl+Shift+Entrer

Pour ta deuxième question, si je l'ai bien compris
SI(C20="Cu";SI(C21="PVC";...;...);SI(C21="PVC";...;...))

Edit :
J'ai changé le type du comparateur, cela évite la soustraction et la constante dans la formule

Edit2 :
On peut aussi écrire la formule sous cette forme
Code:
=INDEX('Données tableaux'!J11:T11;1;EQUIV(FAUX();('Données tableaux'!J11:T11<=(G8*1000*RACINE(C7)/SI(C20="Cu";115;76)));-1))
mais cela ne supprime pas la validation par les touches Ctrl+Shift+Entrer.

@+Jean-Marie
 

Pièces jointes

  • Calculs_Elec_Rév2.52.zip
    26.3 KB · Affichages: 24
Dernière édition:

JHA

XLDnaute Barbatruc
Re : Fonction SI

Re bonjour Bepaturej, le forum,

je me suis permis de modifier les deux propositions comme suit pour prendre en compte tes exigences.

soit:
=SI(G8*1000*RACINE(C7)/SI(C21="PVC";SI(C20="Cu";115;76);SI(C20="Cu";143;94))>120;ARRONDI.SUP(G8*1000*RACINE(C7)/SI(C21="PVC";SI(C20="Cu";115;76);SI(C20="Cu";143;94));0);SI(C21="PVC";RECHERCHEV(EQUIV(G8*1000*RACINE(C7)/SI(C20="Cu";115;76);{120;95;70;50;35;25};-1);D23:E28;2);RECHERCHEV(EQUIV(G8*1000*RACINE(C7)/SI(C20="Cu";143;94);{120;95;70;50;35;25};-1);D23:E28;2)))
Quand >120, arrondi sup de la valeur calculée.

ou avec la proposition de Jean-Marie que je salue au passage:

=INDEX('Données tableaux'!K11:U11;1;SI(C21="PVC";SOMMEPROD((TRANSPOSE('Données tableaux'!J11:T11)<=(G8*1000*RACINE(C7)/SI(C20="Cu";115;76)))*1);SOMMEPROD((TRANSPOSE('Données tableaux'!J11:T11)<=(G8*1000*RACINE(C7)/SI(C20="Cu";143;94)))*1))).
Attention, si j'ai bien compris la formule de J-Marie, quand >120, la formule prend soit: 150;185;240;300;400 comme indiqué dans le tableau.

JHA
 

bepaturej

XLDnaute Nouveau
Re : Fonction SI

Pas eu le temps de consulter le deuxieme message JeanMarie j'ai obpté pour celui de JHA. Qui fonctionne a merveille j'ai bien entendu déroulé les valeurs dans mon tableau de données en vertical.

je vais essayé sur vos conseils de remettre mes valeurs de données en horizontal.

Merci a vous tous pour votre aide et Bon Noël.
 

bepaturej

XLDnaute Nouveau
Re : Fonction SI

Je n'arrive pas a rentrer la formule de JeanMarie qui est : :mad:

=INDEX('Données tableaux'!K11:U11;1;SI(C21="PVC";SOMMEPROD((TRANSP OSE('Données tableaux'!J11:T11)<=(G8*1000*RACINE(C7)/SI(C20="Cu";115;76)))*1);SOMMEPROD((TRANSPOSE('Don nées tableaux'!J11:T11)<=(G8*1000*RACINE(C7)/SI(C20="Cu";143;94)))*1)))

si vous pouvez jetter un oeil a mon fichier.

Merci d'avance
 

Pièces jointes

  • Calculs_Elec_Rév2.53.zip
    26 KB · Affichages: 21

Statistiques des forums

Discussions
312 446
Messages
2 088 491
Membres
103 870
dernier inscrit
didiexcel