Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 😡

Merci de votre aide.
 
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 😎
 
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;...)
 
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
 
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
 
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

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

Dernière édition:
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

Dernière édition:
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
 
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.
 
Re : Fonction SI

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

=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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
1 K
  • Question Question
XL 2013 Aide VBA
Réponses
4
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…