Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

générer plage dynamique à partir d'une plage, avec critère

40 réponses
Avatar
smr78
Bonjour,

Je calcule la droite linéaire sur une série venant d'une plage A1:Ax par
exemple afin d'en calculer la pente par la formule
=INDEX(DROITEREG(A1:Ax);1)
(Ax vaut A170 dans mon cas, mais ça peut varier, je saurai remplacer par un
nom de plage)

Le problème est que la plage contient pas mal de valeurs vides qui influent
beaucoup sur la pente.

Comment pourrai-je générer une matrice, un ensemble de valeurs ou une plage
qui serait la plage d'origine sans les valeurs inférieures à un critère (de
préférence situé dans une cellule B1 par ex.)

j'ai essayé qqchose comme

=INDEX(DROITEREG(A1:A170>0);1) mais ça plante évidemment

Je pense à utiliser la fameuse fonction DECALER, mais je n'ai pas trouvé
d'exemple sur le Net pour extraire les valeurs non nulles ou supérieure à un
critère!

Merci par avance

Cordialement

10 réponses

1 2 3 4
Avatar
Fredo P
Bonsoir
Est ce que par hasard, puisque complètement incompétent dans les pente et
descente,
=INDEX(DROITEREG(SI(A1:A170>0;A1:A170));1) ne ferait pas l'affaire? (à
condition que les cases "" soient remplacées par des 0.)
"smr78" a écrit dans le message de news:

Bonjour,

Je calcule la droite linéaire sur une série venant d'une plage A1:Ax par
exemple afin d'en calculer la pente par la formule
=INDEX(DROITEREG(A1:Ax);1)
(Ax vaut A170 dans mon cas, mais ça peut varier, je saurai remplacer par
un
nom de plage)

Le problème est que la plage contient pas mal de valeurs vides qui
influent
beaucoup sur la pente.

Comment pourrai-je générer une matrice, un ensemble de valeurs ou une
plage
qui serait la plage d'origine sans les valeurs inférieures à un critère
(de
préférence situé dans une cellule B1 par ex.)

j'ai essayé qqchose comme

=INDEX(DROITEREG(A1:A170>0);1) mais ça plante évidemment

Je pense à utiliser la fameuse fonction DECALER, mais je n'ai pas trouvé
d'exemple sur le Net pour extraire les valeurs non nulles ou supérieure à
un
critère!

Merci par avance

Cordialement


Avatar
smr78
Bonsoir,
Merci pour la réponse express, une bonne idée mais ça ne fait ni chaud ni
froid, même résultat, pas bon pour la pente...
j'ai essayé de rentrer en formule matricielle, là ça donne #Valeur!
Cordialement

"Fredo P" a écrit :

Bonsoir
Est ce que par hasard, puisque complètement incompétent dans les pente et
descente,
=INDEX(DROITEREG(SI(A1:A170>0;A1:A170));1) ne ferait pas l'affaire? (à
condition que les cases "" soient remplacées par des 0.)
"smr78" a écrit dans le message de news:

> Bonjour,
>
> Je calcule la droite linéaire sur une série venant d'une plage A1:Ax par
> exemple afin d'en calculer la pente par la formule
> =INDEX(DROITEREG(A1:Ax);1)
> (Ax vaut A170 dans mon cas, mais ça peut varier, je saurai remplacer par
> un
> nom de plage)
>
> Le problème est que la plage contient pas mal de valeurs vides qui
> influent
> beaucoup sur la pente.
>
> Comment pourrai-je générer une matrice, un ensemble de valeurs ou une
> plage
> qui serait la plage d'origine sans les valeurs inférieures à un critère
> (de
> préférence situé dans une cellule B1 par ex.)
>
> j'ai essayé qqchose comme
>
> =INDEX(DROITEREG(A1:A170>0);1) mais ça plante évidemment
>
> Je pense à utiliser la fameuse fonction DECALER, mais je n'ai pas trouvé
> d'exemple sur le Net pour extraire les valeurs non nulles ou supérieure à
> un
> critère!
>
> Merci par avance
>
> Cordialement





Avatar
Misange
Bonsoir
si tu as des valeurs vides dans tes données, il te suffit de trier le
tableau.
Tu définis ensuite tes séries x et y avec Þcaler(A1;;;nbval($A:$A))
mais cela ne fonctionne que si tes cellules vides sont vraiment vides et
pas avec les valeurs d'erreur.
mais avec une formule sans passer par un tableau intermédiaire, je ne
vois pas comment. PEut être d'autres formulistes aguerris y parviendront.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

smr78 a écrit :
Bonjour,

Je calcule la droite linéaire sur une série venant d'une plage A1:Ax par
exemple afin d'en calculer la pente par la formule
=INDEX(DROITEREG(A1:Ax);1)
(Ax vaut A170 dans mon cas, mais ça peut varier, je saurai remplacer par un
nom de plage)

Le problème est que la plage contient pas mal de valeurs vides qui influent
beaucoup sur la pente.

Comment pourrai-je générer une matrice, un ensemble de valeurs ou une plage
qui serait la plage d'origine sans les valeurs inférieures à un critère (de
préférence situé dans une cellule B1 par ex.)

j'ai essayé qqchose comme

=INDEX(DROITEREG(A1:A170>0);1) mais ça plante évidemment

Je pense à utiliser la fameuse fonction DECALER, mais je n'ai pas trouvé
d'exemple sur le Net pour extraire les valeurs non nulles ou supérieure à un
critère!

Merci par avance

Cordialement


Avatar
smr78
Bonsoir,
Woaaouh, si Miss ange sèche, pas la peine que je cherche plus loin.
Je suis déçu (d'Excel, pas de Misange).
Il va falloir que je fasse un tri dynamique car les valeurs sont
susceptibles de changer tous les jours et je ne veux pas demander à
l'utilisateur de faire un tri manuel, au risque de tout casser.
Merci encore
Cordialement

"Misange" a écrit :

Bonsoir
si tu as des valeurs vides dans tes données, il te suffit de trier le
tableau.
Tu définis ensuite tes séries x et y avec Þcaler(A1;;;nbval($A:$A))
mais cela ne fonctionne que si tes cellules vides sont vraiment vides et
pas avec les valeurs d'erreur.
mais avec une formule sans passer par un tableau intermédiaire, je ne
vois pas comment. PEut être d'autres formulistes aguerris y parviendront.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

smr78 a écrit :
> Bonjour,
>
> Je calcule la droite linéaire sur une série venant d'une plage A1:Ax par
> exemple afin d'en calculer la pente par la formule
> =INDEX(DROITEREG(A1:Ax);1)
> (Ax vaut A170 dans mon cas, mais ça peut varier, je saurai remplacer par un
> nom de plage)
>
> Le problème est que la plage contient pas mal de valeurs vides qui influent
> beaucoup sur la pente.
>
> Comment pourrai-je générer une matrice, un ensemble de valeurs ou une plage
> qui serait la plage d'origine sans les valeurs inférieures à un critère (de
> préférence situé dans une cellule B1 par ex.)
>
> j'ai essayé qqchose comme
>
> =INDEX(DROITEREG(A1:A170>0);1) mais ça plante évidemment
>
> Je pense à utiliser la fameuse fonction DECALER, mais je n'ai pas trouvé
> d'exemple sur le Net pour extraire les valeurs non nulles ou supérieure à un
> critère!
>
> Merci par avance
>
> Cordialement



Avatar
Fredo P
D'Après l'aide Excel
Calcule les statistiques pour une droite par la méthode des moindres carrés,
afin de calculer une droite qui s'ajuste au plus près à vos données, puis
renvoie une matrice décrivant cette droite. Dans la mesure où cette fonction
renvoie une matrice de valeurs, elle doit être tapée sous forme de formule
matricielle.

"smr78" a écrit dans le message de news:

Bonsoir,
Woaaouh, si Miss ange sèche, pas la peine que je cherche plus loin.
Je suis déçu (d'Excel, pas de Misange).
Il va falloir que je fasse un tri dynamique car les valeurs sont
susceptibles de changer tous les jours et je ne veux pas demander à
l'utilisateur de faire un tri manuel, au risque de tout casser.
Merci encore
Cordialement

"Misange" a écrit :

Bonsoir
si tu as des valeurs vides dans tes données, il te suffit de trier le
tableau.
Tu définis ensuite tes séries x et y avec Þcaler(A1;;;nbval($A:$A))
mais cela ne fonctionne que si tes cellules vides sont vraiment vides et
pas avec les valeurs d'erreur.
mais avec une formule sans passer par un tableau intermédiaire, je ne
vois pas comment. PEut être d'autres formulistes aguerris y parviendront.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

smr78 a écrit :
> Bonjour,
>
> Je calcule la droite linéaire sur une série venant d'une plage A1:Ax
> par
> exemple afin d'en calculer la pente par la formule
> =INDEX(DROITEREG(A1:Ax);1)
> (Ax vaut A170 dans mon cas, mais ça peut varier, je saurai remplacer
> par un
> nom de plage)
>
> Le problème est que la plage contient pas mal de valeurs vides qui
> influent
> beaucoup sur la pente.
>
> Comment pourrai-je générer une matrice, un ensemble de valeurs ou une
> plage
> qui serait la plage d'origine sans les valeurs inférieures à un critère
> (de
> préférence situé dans une cellule B1 par ex.)
>
> j'ai essayé qqchose comme
>
> =INDEX(DROITEREG(A1:A170>0);1) mais ça plante évidemment
>
> Je pense à utiliser la fameuse fonction DECALER, mais je n'ai pas
> trouvé
> d'exemple sur le Net pour extraire les valeurs non nulles ou supérieure
> à un
> critère!
>
> Merci par avance
>
> Cordialement





Avatar
Misange
tu me flattes mais détrompes toi, les formules ne me viennent pas ni
facilement ni rapidement ! la logique macro m'a toujours semblée plus
facile à suivre même si les formules sont plus rapides.
donc si un AV, un ChrisV notamment parmi bien d'autres passent par là,
tu auras une chance de plus ;-)
tu peux assez facilement faire une macro qui se déclenche au changement
d'une des cellules de tes deux colonnes de sorte que le tri se fasse
tout seul
reviens au besoin mais là je décroche !
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

smr78 a écrit :
Bonsoir,
Woaaouh, si Miss ange sèche, pas la peine que je cherche plus loin.
Je suis déçu (d'Excel, pas de Misange).
Il va falloir que je fasse un tri dynamique car les valeurs sont
susceptibles de changer tous les jours et je ne veux pas demander à
l'utilisateur de faire un tri manuel, au risque de tout casser.
Merci encore
Cordialement

"Misange" a écrit :

Bonsoir
si tu as des valeurs vides dans tes données, il te suffit de trier le
tableau.
Tu définis ensuite tes séries x et y avec Þcaler(A1;;;nbval($A:$A))
mais cela ne fonctionne que si tes cellules vides sont vraiment vides et
pas avec les valeurs d'erreur.
mais avec une formule sans passer par un tableau intermédiaire, je ne
vois pas comment. PEut être d'autres formulistes aguerris y parviendront.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

smr78 a écrit :
Bonjour,

Je calcule la droite linéaire sur une série venant d'une plage A1:Ax par
exemple afin d'en calculer la pente par la formule
=INDEX(DROITEREG(A1:Ax);1)
(Ax vaut A170 dans mon cas, mais ça peut varier, je saurai remplacer par un
nom de plage)

Le problème est que la plage contient pas mal de valeurs vides qui influent
beaucoup sur la pente.

Comment pourrai-je générer une matrice, un ensemble de valeurs ou une plage
qui serait la plage d'origine sans les valeurs inférieures à un critère (de
préférence situé dans une cellule B1 par ex.)

j'ai essayé qqchose comme

=INDEX(DROITEREG(A1:A170>0);1) mais ça plante évidemment

Je pense à utiliser la fameuse fonction DECALER, mais je n'ai pas trouvé
d'exemple sur le Net pour extraire les valeurs non nulles ou supérieure à un
critère!

Merci par avance

Cordialement






Avatar
smr78
comme dit snoopy, les compliments n'ont jamais fait de mal.

d'accord, les macros peuvent tout faire, je fais pas mal de VBA et VB, mais
je préfère les formules car les utilsateurs sont en général affolés de voir
le message d'alerte au chargement "accepter les macros?"

Pour Fredo P, plus bas dans l'aide il est écrit :

Pente :
=INDEX(DROITEREG(y_connus; x_connus); 1)

je me sers donc de cette formule
Ok la formule renvoie une matice, mais c'est une matrice de résultats, pas
une matrice de données d'entrée

Merci encore

"Misange" a écrit :

tu me flattes mais détrompes toi, les formules ne me viennent pas ni
facilement ni rapidement ! la logique macro m'a toujours semblée plus
facile à suivre même si les formules sont plus rapides.
donc si un AV, un ChrisV notamment parmi bien d'autres passent par là,
tu auras une chance de plus ;-)
tu peux assez facilement faire une macro qui se déclenche au changement
d'une des cellules de tes deux colonnes de sorte que le tri se fasse
tout seul
reviens au besoin mais là je décroche !
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

smr78 a écrit :
> Bonsoir,
> Woaaouh, si Miss ange sèche, pas la peine que je cherche plus loin.
> Je suis déçu (d'Excel, pas de Misange).
> Il va falloir que je fasse un tri dynamique car les valeurs sont
> susceptibles de changer tous les jours et je ne veux pas demander à
> l'utilisateur de faire un tri manuel, au risque de tout casser.
> Merci encore
> Cordialement
>
> "Misange" a écrit :
>
>> Bonsoir
>> si tu as des valeurs vides dans tes données, il te suffit de trier le
>> tableau.
>> Tu définis ensuite tes séries x et y avec Þcaler(A1;;;nbval($A:$A))
>> mais cela ne fonctionne que si tes cellules vides sont vraiment vides et
>> pas avec les valeurs d'erreur.
>> mais avec une formule sans passer par un tableau intermédiaire, je ne
>> vois pas comment. PEut être d'autres formulistes aguerris y parviendront.
>> Misange migrateuse
>> XlWiki : Participez à un travail collaboratif sur excel !
>> http://xlwiki.free.fr/wiki
>> http://www.excelabo.net
>>
>> smr78 a écrit :
>>> Bonjour,
>>>
>>> Je calcule la droite linéaire sur une série venant d'une plage A1:Ax par
>>> exemple afin d'en calculer la pente par la formule
>>> =INDEX(DROITEREG(A1:Ax);1)
>>> (Ax vaut A170 dans mon cas, mais ça peut varier, je saurai remplacer par un
>>> nom de plage)
>>>
>>> Le problème est que la plage contient pas mal de valeurs vides qui influent
>>> beaucoup sur la pente.
>>>
>>> Comment pourrai-je générer une matrice, un ensemble de valeurs ou une plage
>>> qui serait la plage d'origine sans les valeurs inférieures à un critère (de
>>> préférence situé dans une cellule B1 par ex.)
>>>
>>> j'ai essayé qqchose comme
>>>
>>> =INDEX(DROITEREG(A1:A170>0);1) mais ça plante évidemment
>>>
>>> Je pense à utiliser la fameuse fonction DECALER, mais je n'ai pas trouvé
>>> d'exemple sur le Net pour extraire les valeurs non nulles ou supérieure à un
>>> critère!
>>>
>>> Merci par avance
>>>
>>> Cordialement



Avatar
Fredo P
ReB smr78
Celle-ci ne mets plus "Valeurs", reste à contrôler le résultat
=DROITEREG((A1:A170>0)*A1:A170;(B1:B170>0)*B1:B170;1;1)
"smr78" a écrit dans le message de news:

comme dit snoopy, les compliments n'ont jamais fait de mal.

d'accord, les macros peuvent tout faire, je fais pas mal de VBA et VB,
mais
je préfère les formules car les utilsateurs sont en général affolés de
voir
le message d'alerte au chargement "accepter les macros?"

Pour Fredo P, plus bas dans l'aide il est écrit :

Pente :
=INDEX(DROITEREG(y_connus; x_connus); 1)

je me sers donc de cette formule
Ok la formule renvoie une matice, mais c'est une matrice de résultats, pas
une matrice de données d'entrée

Merci encore

"Misange" a écrit :

tu me flattes mais détrompes toi, les formules ne me viennent pas ni
facilement ni rapidement ! la logique macro m'a toujours semblée plus
facile à suivre même si les formules sont plus rapides.
donc si un AV, un ChrisV notamment parmi bien d'autres passent par là,
tu auras une chance de plus ;-)
tu peux assez facilement faire une macro qui se déclenche au changement
d'une des cellules de tes deux colonnes de sorte que le tri se fasse
tout seul
reviens au besoin mais là je décroche !
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

smr78 a écrit :
> Bonsoir,
> Woaaouh, si Miss ange sèche, pas la peine que je cherche plus loin.
> Je suis déçu (d'Excel, pas de Misange).
> Il va falloir que je fasse un tri dynamique car les valeurs sont
> susceptibles de changer tous les jours et je ne veux pas demander à
> l'utilisateur de faire un tri manuel, au risque de tout casser.
> Merci encore
> Cordialement
>
> "Misange" a écrit :
>
>> Bonsoir
>> si tu as des valeurs vides dans tes données, il te suffit de trier le
>> tableau.
>> Tu définis ensuite tes séries x et y avec Þcaler(A1;;;nbval($A:$A))
>> mais cela ne fonctionne que si tes cellules vides sont vraiment vides
>> et
>> pas avec les valeurs d'erreur.
>> mais avec une formule sans passer par un tableau intermédiaire, je ne
>> vois pas comment. PEut être d'autres formulistes aguerris y
>> parviendront.
>> Misange migrateuse
>> XlWiki : Participez à un travail collaboratif sur excel !
>> http://xlwiki.free.fr/wiki
>> http://www.excelabo.net
>>
>> smr78 a écrit :
>>> Bonjour,
>>>
>>> Je calcule la droite linéaire sur une série venant d'une plage A1:Ax
>>> par
>>> exemple afin d'en calculer la pente par la formule
>>> =INDEX(DROITEREG(A1:Ax);1)
>>> (Ax vaut A170 dans mon cas, mais ça peut varier, je saurai remplacer
>>> par un
>>> nom de plage)
>>>
>>> Le problème est que la plage contient pas mal de valeurs vides qui
>>> influent
>>> beaucoup sur la pente.
>>>
>>> Comment pourrai-je générer une matrice, un ensemble de valeurs ou une
>>> plage
>>> qui serait la plage d'origine sans les valeurs inférieures à un
>>> critère (de
>>> préférence situé dans une cellule B1 par ex.)
>>>
>>> j'ai essayé qqchose comme
>>>
>>> =INDEX(DROITEREG(A1:A170>0);1) mais ça plante évidemment
>>>
>>> Je pense à utiliser la fameuse fonction DECALER, mais je n'ai pas
>>> trouvé
>>> d'exemple sur le Net pour extraire les valeurs non nulles ou
>>> supérieure à un
>>> critère!
>>>
>>> Merci par avance
>>>
>>> Cordialement





Avatar
Misange
Bonjour
Ta formule "fonctionne" dans le sens qu'elle renvoie une valeur. Mais
cette valeur est fausse.
Construis le simple exemple suivant : en colonne A 1, 2 3 4, en colonne
B 1, 2 3 4
La pente de la droite est 1.
Admettons que je n'aie pas encore la valeur de y pour x= 3. La pente de
la droite ne doit pas changer. Avec toute formule qui ne modifie que la
plage des y pour ne prendre en compte que les valeurs non nulles ou qui
ne sont pas en erreur, et qui n'ajuste pas la plage des x
correspondante, le résultat renvoyé sera faux.

Droitereg est en fait une fonction matricielle.
Si on l'écrit sous sa forme complète
=droitereg(plageY;plageX;0;1)
elle renvoie une matrice qui contient toutes les valeurs statistiques
décrivant cette droite de régression.
Pour récupérer ces valeurs il faut saisir une plage de 6 cellules avant
de saisir la formule.
Si on la rentre dans une seule cellule, la formule renvoie la valeur
contenue dans l'angle supérieur gauche de la matrice, ce qui dans le cas
présent nous arrange bien puisque c'est la pente de la droite. Cela dit,
cette fonction reste une fonction matricielle même si on ne la saisit
pas avec ctrl+maj+ent puisqu'elle travaille avec des plages comme arguments.


La difficulté ici ce n'est pas d'exclure dans les valeurs de Y celles
qui sont en erreur ou vides (0 est une valeur tout à fait acceptable
dans une droite de reg !!). C'est d'exclure en même temps la valeur de X
correspondante. Ca revient à évaluer des matrices à l'intérieur d'une
matrice. Ca je sais pas faire.



Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Fredo P a écrit :
ReB smr78
Celle-ci ne mets plus "Valeurs", reste à contrôler le résultat
=DROITEREG((A1:A170>0)*A1:A170;(B1:B170>0)*B1:B170;1;1)
"smr78" a écrit dans le message de news:

comme dit snoopy, les compliments n'ont jamais fait de mal.

d'accord, les macros peuvent tout faire, je fais pas mal de VBA et VB,
mais
je préfère les formules car les utilsateurs sont en général affolés de
voir
le message d'alerte au chargement "accepter les macros?"

Pour Fredo P, plus bas dans l'aide il est écrit :

Pente :
=INDEX(DROITEREG(y_connus; x_connus); 1)

je me sers donc de cette formule
Ok la formule renvoie une matice, mais c'est une matrice de résultats, pas
une matrice de données d'entrée

Merci encore

"Misange" a écrit :

tu me flattes mais détrompes toi, les formules ne me viennent pas ni
facilement ni rapidement ! la logique macro m'a toujours semblée plus
facile à suivre même si les formules sont plus rapides.
donc si un AV, un ChrisV notamment parmi bien d'autres passent par là,
tu auras une chance de plus ;-)
tu peux assez facilement faire une macro qui se déclenche au changement
d'une des cellules de tes deux colonnes de sorte que le tri se fasse
tout seul
reviens au besoin mais là je décroche !
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

smr78 a écrit :
Bonsoir,
Woaaouh, si Miss ange sèche, pas la peine que je cherche plus loin.
Je suis déçu (d'Excel, pas de Misange).
Il va falloir que je fasse un tri dynamique car les valeurs sont
susceptibles de changer tous les jours et je ne veux pas demander à
l'utilisateur de faire un tri manuel, au risque de tout casser.
Merci encore
Cordialement

"Misange" a écrit :

Bonsoir
si tu as des valeurs vides dans tes données, il te suffit de trier le
tableau.
Tu définis ensuite tes séries x et y avec Þcaler(A1;;;nbval($A:$A))
mais cela ne fonctionne que si tes cellules vides sont vraiment vides
et
pas avec les valeurs d'erreur.
mais avec une formule sans passer par un tableau intermédiaire, je ne
vois pas comment. PEut être d'autres formulistes aguerris y
parviendront.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

smr78 a écrit :
Bonjour,

Je calcule la droite linéaire sur une série venant d'une plage A1:Ax
par
exemple afin d'en calculer la pente par la formule
=INDEX(DROITEREG(A1:Ax);1)
(Ax vaut A170 dans mon cas, mais ça peut varier, je saurai remplacer
par un
nom de plage)

Le problème est que la plage contient pas mal de valeurs vides qui
influent
beaucoup sur la pente.

Comment pourrai-je générer une matrice, un ensemble de valeurs ou une
plage
qui serait la plage d'origine sans les valeurs inférieures à un
critère (de
préférence situé dans une cellule B1 par ex.)

j'ai essayé qqchose comme

=INDEX(DROITEREG(A1:A170>0);1) mais ça plante évidemment

Je pense à utiliser la fameuse fonction DECALER, mais je n'ai pas
trouvé
d'exemple sur le Net pour extraire les valeurs non nulles ou
supérieure à un
critère!

Merci par avance

Cordialement














Avatar
Misange
smr78 a écrit :
comme dit snoopy, les compliments n'ont jamais fait de mal.


:-)
J'ai eu longtemps sur la porte de mon labo un poster de snoopy avec
cette phrase précisément, façon claire de dire à mon patron de l'époque
qu'il ne lui était pas interdit de dire quand il était satisfait
puisqu'il ne se privait jamais de dire quand il ne l'était pas...


d'accord, les macros peuvent tout faire, je fais pas mal de VBA et VB, mais
je préfère les formules car les utilsateurs sont en général affolés de voir
le message d'alerte au chargement "accepter les macros?"



Certes mais il faut aussi expliquer aux utilisateurs que les macros ce
n'est pas des virus. Que pour accéder à des fonctions évoluées, il faut
aussi évoluer soi même et s'éduquer.


Pour Fredo P, plus bas dans l'aide il est écrit :

Pente :
=INDEX(DROITEREG(y_connus; x_connus); 1)

je me sers donc de cette formule
Ok la formule renvoie une matice, mais c'est une matrice de résultats, pas
une matrice de données d'entrée



droitereg(plageY;plageX) renvoie directement la pente que tu cherches,
nul besoin dans le cas présent de passer par une recherche avec index de
la position de la pente dans la matrice de résultat. Ceci n'est vrai que
parce que la pente est la première valeur renvoyée par la matrice.

En revanche si tu veux l'ordonnée à l'origine, ou le coeff de
régression, la tu as absolument besoin soit de saisir plusuers cellules
et de valider en matricielle, soit de récupérer avec index la position
de ces deux paramètres dans la matrice de résultats.

J'ai fait un classeur exemple que tu trouveras sur excelabo
(fc-regression). Mais il ne traite pas de ce que tu cherches, à savoir
éliminer les valeurs non encore renseignées ou fausses dans les données.



Merci encore

"Misange" a écrit :

tu me flattes mais détrompes toi, les formules ne me viennent pas ni
facilement ni rapidement ! la logique macro m'a toujours semblée plus
facile à suivre même si les formules sont plus rapides.
donc si un AV, un ChrisV notamment parmi bien d'autres passent par là,
tu auras une chance de plus ;-)
tu peux assez facilement faire une macro qui se déclenche au changement
d'une des cellules de tes deux colonnes de sorte que le tri se fasse
tout seul
reviens au besoin mais là je décroche !
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

smr78 a écrit :
Bonsoir,
Woaaouh, si Miss ange sèche, pas la peine que je cherche plus loin.
Je suis déçu (d'Excel, pas de Misange).
Il va falloir que je fasse un tri dynamique car les valeurs sont
susceptibles de changer tous les jours et je ne veux pas demander à
l'utilisateur de faire un tri manuel, au risque de tout casser.
Merci encore
Cordialement

"Misange" a écrit :

Bonsoir
si tu as des valeurs vides dans tes données, il te suffit de trier le
tableau.
Tu définis ensuite tes séries x et y avec Þcaler(A1;;;nbval($A:$A))
mais cela ne fonctionne que si tes cellules vides sont vraiment vides et
pas avec les valeurs d'erreur.
mais avec une formule sans passer par un tableau intermédiaire, je ne
vois pas comment. PEut être d'autres formulistes aguerris y parviendront.
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

smr78 a écrit :
Bonjour,

Je calcule la droite linéaire sur une série venant d'une plage A1:Ax par
exemple afin d'en calculer la pente par la formule
=INDEX(DROITEREG(A1:Ax);1)
(Ax vaut A170 dans mon cas, mais ça peut varier, je saurai remplacer par un
nom de plage)

Le problème est que la plage contient pas mal de valeurs vides qui influent
beaucoup sur la pente.

Comment pourrai-je générer une matrice, un ensemble de valeurs ou une plage
qui serait la plage d'origine sans les valeurs inférieures à un critère (de
préférence situé dans une cellule B1 par ex.)

j'ai essayé qqchose comme

=INDEX(DROITEREG(A1:A170>0);1) mais ça plante évidemment

Je pense à utiliser la fameuse fonction DECALER, mais je n'ai pas trouvé
d'exemple sur le Net pour extraire les valeurs non nulles ou supérieure à un
critère!

Merci par avance

Cordialement










1 2 3 4