Valeur dans intervalle

Le
Pounet95
Bonjour à toutes et tous,
XL2000 sous XP ou Windows2000

Avant de me lancer dans l'écriture d'une fonction me permettant de
déterminer si un nombre est compris entre telle et telle valeur ( min et max
au hasard ! ) avec tout ce que cela comporte comme soucis de mises à
disposition pour les utilisateurs , pouvez-vous me dire s'il n'existe pas
déjà une fonction de base qui me permettrait de me 'reposer'.

Le but est de déterminer à partir de la plage de valeurs (min et max ) à
laquelle appartient une valeur, le 'code' de cette valeur.
Ex :
si 0 < valeur <= 100 alors code = A
si 101< valeur <= 200 alors code = B,
etc
les valeurs min, max et code étant stockées dans un tableau

Merci de vos suggestions.
Pounet95

PS : ai eu des pb pour visiter Excelabo ce matin ( machines et sites
différents ) ????
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Tatanka
Le #5068171
Salut Pounet,

Une suggestion :
Nomme ta plage contenant tes min, max et code
« table », colle cette Function dans un module standard
et entre la formule =codage(n) dans une cellule.
n étant l'adresse de la cellule contenant ton nombre.

Function codage(n)
Set t = [table]
For i = 1 To t.Rows.Count
If (n >= t(i, 1) And n <= t(i, 2)) Then
c = t(i, 3)
Exit For
End If
Next i
codage = c
End Function

Serge


"Pounet95"
Bonjour à toutes et tous,
XL2000 sous XP ou Windows2000

Avant de me lancer dans l'écriture d'une fonction me permettant de déterminer si un nombre est compris entre telle et telle valeur
( min et max au hasard ! ) avec tout ce que cela comporte comme soucis de mises à disposition pour les utilisateurs , pouvez-vous
me dire s'il n'existe pas déjà une fonction de base qui me permettrait de me 'reposer'.

Le but est de déterminer à partir de la plage de valeurs (min et max ) à laquelle appartient une valeur, le 'code' de cette
valeur.
Ex :
si 0 < valeur <= 100 alors code = A
si 101< valeur <= 200 alors code = B,
etc
les valeurs min, max et code étant stockées dans un tableau

Merci de vos suggestions.
Pounet95

PS : ai eu des pb pour visiter Excelabo ce matin ( machines et sites différents ) ????



Corto
Le #5068151
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
<title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Bonjour Pounet95,<br>
Tu peux cr&eacute;er un tableau comme suit et appliquer les noms aux colonnes<br>
<table x:str="" style="border-collapse: collapse; width: 201pt;"
border="0" cellpadding="0" cellspacing="0" width="267">
<col style="width: 67pt;" span="3" width="89"> <tbody>
<td class="xl24" style="height: 12.75pt; width: 67pt;" height="17"
width="89">Min</td>
<td class="xl24" style="width: 67pt;" width="89">Max</td>
<td class="xl24" style="width: 67pt;" width="89">Code</td>
</tr>
name="RANGE!A2:A11">1</a></td>
<td x:num="" align="right"><a name="RANGE!B2:B11">100</a></td>
<td><a name="RANGE!C2:C11">A</a></td>
</tr>
<td x:num="" align="right">200</td>
<td>B</td>
</tr>
<td style="height: 12.75pt;" x:num="" x:fmla="³+1" align="right"
height="17">201</td>
<td x:num="" x:fmla="¤+B3-A3" align="right">300</td>
<td>C</td>
</tr>
<td style="height: 12.75pt;" x:num="" x:fmla="´+1" align="right"
height="17">301</td>
<td x:num="" x:fmla="¥+B4-A4" align="right">400</td>
<td>D</td>
</tr>
<td style="height: 12.75pt;" x:num="" x:fmla="µ+1" align="right"
height="17">401</td>
<td x:num="" x:fmla="¦+B5-A5" align="right">500</td>
<td>E</td>
</tr>
<td style="height: 12.75pt;" x:num="" x:fmla="¶+1" align="right"
height="17">501</td>
<td x:num="" x:fmla="§+B6-A6" align="right">600</td>
<td>F</td>
</tr>
<td style="height: 12.75pt;" x:num="" x:fmla="·+1" align="right"
height="17">601</td>
<td x:num="" x:fmla="¨+B7-A7" align="right">700</td>
<td>G</td>
</tr>
<td style="height: 12.75pt;" x:num="" x:fmla="¸+1" align="right"
height="17">701</td>
<td x:num="" x:fmla="©+B8-A8" align="right">800</td>
<td>H</td>
</tr>
<td style="height: 12.75pt;" x:num="" x:fmla="¹+1" align="right"
height="17">801</td>
<td x:num="" x:fmla="¡0+B9-A9" align="right">900</td>
<td>I</td>
</tr>
<td style="height: 12.75pt;" x:num="" x:fmla="±0+1"
align="right" height="17">901</td>
<td x:num="" x:fmla="¡1+B10-A10" align="right">1000</td>
<td>J</td>
</tr>
</tbody>
</table>
<br>
en nommant la cellule de donn&eacute;e VAL la formule devient alors :<br>
=INDEX(CODE;SOMMEPROD((MIN&lt;=VAL)*(MAX&gt;=VAL)*LIGNE(CODE))-1)<br>
<br>
Corto<br>
<br>
Pounet95 a &eacute;crit&nbsp;:
<blockquote cite="mid:47441515$0$27381$"
type="cite">
<pre wrap="">Bonjour &agrave; toutes et tous,
XL2000 sous XP ou Windows2000

Avant de me lancer dans l'&eacute;criture d'une fonction me permettant de
d&eacute;terminer si un nombre est compris entre telle et telle valeur ( min et max
au hasard ! ) avec tout ce que cela comporte comme soucis de mises &agrave;
disposition pour les utilisateurs , pouvez-vous me dire s'il n'existe pas
d&eacute;j&agrave; une fonction de base qui me permettrait de me 'reposer'.

Le but est de d&eacute;terminer &agrave; partir de la plage de valeurs (min et max ) &agrave;
laquelle appartient une valeur, le 'code' de cette valeur.
Ex :
si 0 &lt; valeur &lt;= 100 alors code = A
si 101&lt; valeur &lt;= 200 alors code = B,
etc
les valeurs min, max et code &eacute;tant stock&eacute;es dans un tableau

Merci de vos suggestions.
Pounet95

PS : ai eu des pb pour visiter Excelabo ce matin ( machines et sites
diff&eacute;rents ) ????


</pre>
</blockquote>
</body>
</html>
Tatanka
Le #5068111
Salut Pounet,

Je n'avais pas remarqué
0 et <= 100
101 et <= 200
...


*
Mais alors si n = 0
ou
100 < n <1
200 < n < 1
...
ou
n est en dehors du tableau,
que veux-tu obtenir comme résultat ?
*
Pour ces cas-là, cette fonction personnalisée renvoie 0 :

Function codage(n)
Set t = [Table]
For i = 1 To t.Rows.Count
If (n > t(i, 1) And n <= t(i, 2)) Then
c = t(i, 3)
Exit For
End If
Next i
codage = c
End Function



"Pounet95"
Bonjour à toutes et tous,
XL2000 sous XP ou Windows2000

Avant de me lancer dans l'écriture d'une fonction me permettant de déterminer si un nombre est compris entre telle et telle valeur
( min et max au hasard ! ) avec tout ce que cela comporte comme soucis de mises à disposition pour les utilisateurs , pouvez-vous
me dire s'il n'existe pas déjà une fonction de base qui me permettrait de me 'reposer'.

Le but est de déterminer à partir de la plage de valeurs (min et max ) à laquelle appartient une valeur, le 'code' de cette
valeur.
Ex :
si 0 < valeur <= 100 alors code = A
si 101< valeur <= 200 alors code = B,
etc
les valeurs min, max et code étant stockées dans un tableau

Merci de vos suggestions.
Pounet95

PS : ai eu des pb pour visiter Excelabo ce matin ( machines et sites différents ) ????



Pounet95
Le #5068101
MERCI Tatanka, Corto
Je mets tout cela en oeuvre illico presto

Nota : ce forum est quand même super, non ?

"Pounet95" 47441515$0$27381$
Bonjour à toutes et tous,
XL2000 sous XP ou Windows2000

Avant de me lancer dans l'écriture d'une fonction me permettant de
déterminer si un nombre est compris entre telle et telle valeur ( min et
max au hasard ! ) avec tout ce que cela comporte comme soucis de mises à
disposition pour les utilisateurs , pouvez-vous me dire s'il n'existe pas
déjà une fonction de base qui me permettrait de me 'reposer'.

Le but est de déterminer à partir de la plage de valeurs (min et max ) à
laquelle appartient une valeur, le 'code' de cette valeur.
Ex :
si 0 < valeur <= 100 alors code = A
si 101< valeur <= 200 alors code = B,
etc
les valeurs min, max et code étant stockées dans un tableau

Merci de vos suggestions.
Pounet95

PS : ai eu des pb pour visiter Excelabo ce matin ( machines et sites
différents ) ????



Pounet95
Le #5068011
Merci du complément.Serge,
Je mets cette fonction 'au chaud' avec toutes celles 'piquées' sur ce forum
au gré des demandes.
Bonne soirée ? après-midi ? car ca = canada ?
Pounet95

"Tatanka"
Salut Pounet,

Je n'avais pas remarqué
0 et <= 100
101 et <= 200
...


*
Mais alors si n = 0
ou
100 < n <1
200 < n < 1
...
ou
n est en dehors du tableau,
que veux-tu obtenir comme résultat ?
*
Pour ces cas-là, cette fonction personnalisée renvoie 0 :

Function codage(n)
Set t = [Table]
For i = 1 To t.Rows.Count
If (n > t(i, 1) And n <= t(i, 2)) Then
c = t(i, 3)
Exit For
End If
Next i
codage = c
End Function



"Pounet95" 47441515$0$27381$
Bonjour à toutes et tous,
XL2000 sous XP ou Windows2000

Avant de me lancer dans l'écriture d'une fonction me permettant de
déterminer si un nombre est compris entre telle et telle valeur ( min et
max au hasard ! ) avec tout ce que cela comporte comme soucis de mises à
disposition pour les utilisateurs , pouvez-vous me dire s'il n'existe pas
déjà une fonction de base qui me permettrait de me 'reposer'.

Le but est de déterminer à partir de la plage de valeurs (min et max ) à
laquelle appartient une valeur, le 'code' de cette valeur.
Ex :
si 0 < valeur <= 100 alors code = A
si 101< valeur <= 200 alors code = B,
etc
les valeurs min, max et code étant stockées dans un tableau

Merci de vos suggestions.
Pounet95

PS : ai eu des pb pour visiter Excelabo ce matin ( machines et sites
différents ) ????







Tatanka
Le #5068001
M'est avis que la formule de Corto fonctionne
si le tableau (incluant les titres) commence sur la
première ligne de la feuille de calcul.
Si ton tableau est n'importe où sur la feuille, essaie
cette formule :
=INDEX(code;EQUIV(1;(val>=min)*(val<=max);0))
(valider par Ctrl+Maj+Entrée)

Serge



"Pounet95"
MERCI Tatanka, Corto
Je mets tout cela en oeuvre illico presto

Nota : ce forum est quand même super, non ?

"Pounet95"
Bonjour à toutes et tous,
XL2000 sous XP ou Windows2000

Avant de me lancer dans l'écriture d'une fonction me permettant de déterminer si un nombre est compris entre telle et telle
valeur ( min et max au hasard ! ) avec tout ce que cela comporte comme soucis de mises à disposition pour les utilisateurs ,
pouvez-vous me dire s'il n'existe pas déjà une fonction de base qui me permettrait de me 'reposer'.

Le but est de déterminer à partir de la plage de valeurs (min et max ) à laquelle appartient une valeur, le 'code' de cette
valeur.
Ex :
si 0 < valeur <= 100 alors code = A
si 101< valeur <= 200 alors code = B,
etc
les valeurs min, max et code étant stockées dans un tableau

Merci de vos suggestions.
Pounet95

PS : ai eu des pb pour visiter Excelabo ce matin ( machines et sites différents ) ????







Pounet95
Le #5067871
Re,
Oui ça fonctionne mais effectivement à condition de bien prendre en compte
où se trouve la 1ère ligne du tableau et l'inclure dans la formule de
calcul.
De même, par principe (ai-je tort ou raison ? ), j'évite de nommer des
plages de cellules avec un nom réservé( tel MAX, MIN )
Quant à ta formule, c'est celle ( ou du moins dans l'utilisation de INDEX et
EQUIV ) sur laquelle je butais depuis ce matin car plus habitué à utiliser
RECHERCHEV ....
Si ma mémoire est bonne, il y a eu de bons échanges 'mail' sur le sujet.
Quant à moi, j'en prends aussi bonne note.

Encore merci
Pounet95

"Tatanka"
M'est avis que la formule de Corto fonctionne
si le tableau (incluant les titres) commence sur la
première ligne de la feuille de calcul.
Si ton tableau est n'importe où sur la feuille, essaie
cette formule :
=INDEX(code;EQUIV(1;(val>=min)*(val<=max);0))
(valider par Ctrl+Maj+Entrée)

Serge



"Pounet95" 4744356b$0$25948$
MERCI Tatanka, Corto
Je mets tout cela en oeuvre illico presto

Nota : ce forum est quand même super, non ?

"Pounet95" 47441515$0$27381$
Bonjour à toutes et tous,
XL2000 sous XP ou Windows2000

Avant de me lancer dans l'écriture d'une fonction me permettant de
déterminer si un nombre est compris entre telle et telle valeur ( min et
max au hasard ! ) avec tout ce que cela comporte comme soucis de mises à
disposition pour les utilisateurs , pouvez-vous me dire s'il n'existe
pas déjà une fonction de base qui me permettrait de me 'reposer'.

Le but est de déterminer à partir de la plage de valeurs (min et max ) à
laquelle appartient une valeur, le 'code' de cette valeur.
Ex :
si 0 < valeur <= 100 alors code = A
si 101< valeur <= 200 alors code = B,
etc
les valeurs min, max et code étant stockées dans un tableau

Merci de vos suggestions.
Pounet95

PS : ai eu des pb pour visiter Excelabo ce matin ( machines et sites
différents ) ????











Publicité
Poster une réponse
Anonyme