Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel
Excel Forum d'entraide sur Excel. Vos questions sur les fonctions, formules, manipulations, et tout sujet qui ne trouve pas sa place dans un sous-forum.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/07/2011, 12h46   #1
Nouveau Membre du Club
 
Inscription : mai 2007
Messages : 148
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 148
Points : 35
Points : 35
Par défaut Une étude de CASE sous Excel

Bonjour à tous !!

Il existe, dans certains langages de programmations, des fonctions du type CASE(...) qui évalue le contenu d'une variable et sortent des calculs en fonction de la valeur de cette variable; ce sont des sortes de fonction SI(...) améliorées puisqu'elles ne sont pas binaires.

Ce type de fonction existe-t-il sous Excel ?

Concrètement, est-il possible de réaliser plusieurs évaluation du contenu d'ne cellule sans imbriquer plusieurs fonctions SI les une dans les autres ?

Merci d'avance,
Yvanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 12h56   #2
Membre Expert
 
Inscription : novembre 2006
Messages : 1 464
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 1 464
Points : 1 410
Points : 1 410
essaye la formule choisir, c'est ce qu'il te faut
par exemple
=CHOISIR(A2;C1;D1;E1)
si tu entre 1;2 ou 3 dans A2, la formule renvoit la valeur de c1;d1 ou e1
elle peut prendre plusieur forme, notement en lui faisant choisir dans une liste
=CHOISIR(A2;"lapin";"veau";"vache"). si tu rentre 2 en A2, elle te renvoie veau
alsimbad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 14h19   #3
Nouveau Membre du Club
 
Inscription : mai 2007
Messages : 148
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 148
Points : 35
Points : 35
Oki. Merci pour cette proposition.

Y a-t-il un moyen de passer par d'autres termes que 1, 2, 3... comme critères de choix ?

Parce que cela oblige à associer les critères à une valeur numérique dans une seconde colonne.
Yvanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 14h45   #4
Membre régulier
 
Inscription : février 2009
Messages : 216
Détails du profil
Informations forums :
Inscription : février 2009
Messages : 216
Points : 95
Points : 95
Bonjour à vous, Il y a la fonction Select Case
Un exemple :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Private Sub Worksheet_Change(ByVal Target As Range) 
With ActiveCell 
 
Select Case UCase(.Value) 
Case Is = "" 
.Interior.ColorIndex = 2 
Case Is = "M" 
.Interior.ColorIndex = 4 
Case Is = "MW" 
.Interior.ColorIndex = 4 
Case Is = "S" 
.Interior.ColorIndex = 8 
Case Is = "SW" 
.Interior.ColorIndex = 8 
Case Is = "N" 
.Interior.ColorIndex = 6 
Case Is = "A" 
.Interior.ColorIndex = 7 
Case Is = "RPL" 
.Interior.ColorIndex = 7 
Case Is = "AST" 
.Interior.ColorIndex = 37 
 
End Select 
End With 
End Sub
__________________
La lumière repousse les ténèbres et non les ténèbres la lumière.
vieuxmonsieur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 16h14   #5
Nouveau Membre du Club
 
Inscription : mai 2007
Messages : 148
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 148
Points : 35
Points : 35
Bonjour vieuxmonsieur,

Merci pour votre suggestion mais je voulais justement éviter de passer par du VBA pour arriver à mes fins.
Yvanou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 18h58   #6
Membre Expert
 
Inscription : novembre 2006
Messages : 1 464
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 1 464
Points : 1 410
Points : 1 410
Citation:
Envoyé par yvanou
Parce que cela oblige à associer les critères à une valeur numérique dans une seconde colonne
surement, mais dis moi quel sont ces criteres et comment fonctionnent t'ils. s'ils ne sont pas dans une colonne, ou sont t'il ?
l'argument qui choisi est forcement numerique, mais il y a des façon détournées pour arriver a ce numerique, et notament la fonction equiv, qui renvoie le classement dans une liste. a ce stade, je ne peux pas en dire plus sans infos
alsimbad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2011, 19h07   #7
Expert Confirmé
 
Philippe Tulliez
Développeur et formateur VBA, Excel et Word.
Inscription : janvier 2010
Messages : 1 305
Détails du profil
Informations personnelles :
Nom : Philippe Tulliez
Localisation : Belgique

Informations professionnelles :
Activité : Développeur et formateur VBA, Excel et Word.

Informations forums :
Inscription : janvier 2010
Messages : 1 305
Points : 2 653
Points : 2 653
Bonjour,
Les fonctions d'Excel sont tellement riches, qu'il est possible de faire un tas de choses sans passer par le VBA.
Le tout est de les connaître et d'avoir un peu d'imagination pour en combiner les possibilités en les imbriquant.
Par exemple, avec la formule CHOISIR
=CHOISIR(2;"Janvier";"Février";"Mars";"Avril") va renvoyer Février
=CHOISIR(MOIS(A3);"Janvier";"Février";"Mars";"Avril") Va aussi renvoyer Février si le mois de la date qui se trouve en A3 est une date du mois de février.
=CHOISIR(MOIS(A2);SOMME(INDIRECT("Janvier"));SOMME(INDIRECT("Février"))) donnera la somme de la plage nommée Février si la date contenue en A2 est du mois de février et ainsi de suite.

Pour t'aider, il serait donc intéressant de savoir ce que tu cherches à faire exactement.
__________________
Philippe Tulliez
http://philippe.tulliez.be
Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)

Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
corona est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 15/07/2011, 09h11   #8
Membre chevronné
 
Inscription : octobre 2006
Messages : 541
Détails du profil
Informations personnelles :
Localisation : France, Ardèche (Rhône Alpes)

Informations forums :
Inscription : octobre 2006
Messages : 541
Points : 760
Points : 760
Bonjour,

peut-^tre plus long mais moins contraignant que la fonction "choisir"

Code :
=SI(A1="";"";INDEX({"zaza";"zeze";"zyzy";"zuzu"};EQUIV(A1;{"toto1";"toto2";"toto3";25};0)))
et si tu as une double entrée
Code :
=SI(OU(A1="";B1="");"";INDEX({"zaza"."zeze";"zyzy"."zuzu"};EQUIV(A1;{25;"toto2"};0);EQUIV(B1;{"toto3";"toto4"};0)))
note que dans index, le passage à à la "ligne" est le point virgule et les "colonnes" sont séparées par un point
ainsi si A1="toto2" ==> ligne2
et B1="toto3"==> colonne1
résultat="zyzy"
__________________
Michel_M
Michel_M est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/07/2011, 12h33   #9
Nouveau Membre du Club
 
Inscription : mai 2007
Messages : 148
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 148
Points : 35
Points : 35
Bonjour à tous!

Finalement, j'ai résolu mon problème sans trop me compliquer la vie.

J'ai créé une zone de choix de mes critères dans une feuille, associés à des valeurs 1, 2, 3...

Ensuite j'utilise la fonction CHOISIR(...) en faisant référence aux valeurs numériques citées plus haut pour faire les calculs.

C'est plus rudimentaire que les fonctions sophistiquées que vous m'avez fait partager mais ça fonctionne.

Merci encore!!
Yvanou est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h18.


 
 
 
 
Partenaires

Hébergement Web