Je dois extraire les 3 plus petites valeurs d'un tableau qui comporte
plusieurs valeurs à "0" et des cellules vides (" ").
Ma cellule de formule ne me renvoit rien, quelque soit la valeur mise pour
"k" !
Ca marche très bien avec "grande.valeur" !
Ex :
si j'ai comme plage (ie) :
0
5
2
9
0
0
4
""
2
2
avec =petite.valeur(plage;3) je devrais avoir 4 comme résultat, non ?
Mystère !
Je sens que je vais encore poser une question bête, mais bon ...
En fait, j'ai l'impression que cette "formidable" formule ralentit l'exécution de mes macros ! Penses-tu que je puisse l'appliquer une seule fois par un test conditionnel
par exemple ? Ex : si "A1" = 1 alors la formule s'exécute ! Je n'y crois pas
trop, mais bon... Par ailleurs, dans le cas d'une formule matricielle, je ne
sais pas comment on peut la faire précéder d'un test, et même si c'est possible.
J'ai bien pensé à une macro, qui m'inscrirait les valeurs dans les cellules
et qui ne s'exécuterait qu'une fois, mais là encore j'ignore si je peux faire un enregistrement automatique avec la saisie d'une formule matricielle
???
A+ ?
JP
docm wrote:
EQUIV(Vals;Vals;0) donne N/A s'il y a une cellule vide et qu'aucune cellule ne contient la valeur 0.
Voici qui accepte les cellules vides d'après AV ( d'après Daniel M):
Merci pour toutes ces explications détaillées. J'ai (je crois !) suivi scrupuleusement tes conseils, et le résultat qui s'affiche dans les 3 cellules est "#N/A". J'ai l'habitude de traîter ces fameux "#N/A" lorsque j'utilise la fonction "RECHERCHEV" mais même si j'en comprends la nécessité, les formules matricielles ne me sont pas d'une grande limpidité (doux euphémisme...). Dans le cas présent, je suis incapable de corriger l'erreur car la formule est trop complexe pour moi.
A+ ? ;-)
Amicalement,
JP
wrote:
1. Copie la formule donnée par le grand maître AV. 2.Sélectionne la plage contenant toutes les valeurs et nomme-la Vals (écris Vals au-dessus de la colonne A et p`se sur Entrée) 3. Sélectionne les 3 cellules où tu veux voir les 3 plus petites valeurs. Ces 3 cellules étant sélectionnées, colle la formule de AV dans la barre de formule. 4. Confirme que c'est une formule matricielle en pesant sur CTRL-MAJ Entrée - c-à-d Pèse sur la touche Entrée en maintenant enfoncées les touches CTRL et MAJ.
Amicalement
docm
"j-pascal" wrote in message news:
Bonsoir AV,
Ouahhh, c'est plus compliqué que je croyais !!!! En fait, je ne veux pas le résultat sous forme de "série", je veux une valeur dans chaque cellule (donc 3 cellules avec un résultat). En fait je veux récupérer ces valeurs pour les mettre dans une liste déroulante afin d'en sélectionner une. Suis-au obligé de recopier manuellement la formule ? Si je fais un "copié/collé" je ne vois pas comment faire CTRL MAJ ENT ! A+ ? Merci encore, JP
wrote:
La série de valeurs : 0;5;2;9;0;0;4;"";2;2
avec =petite.valeur(plage;3) je devrais avoir 4 comme résultat, non ?
Ben non car, même en excluant les zéros, la 3° petite.valeur des tes données est bien 2 !
Pour avoir les 3 plus petites valeurs en excluant les zéros et les doublons et donc, pour ta série de données, obtenir comme résultat : 2;4;5 Avec la plage des valeurs nommées "Vals", tu sélectionnes 3 lignes consécutives --> dans la barre de formule :
"j-pascal" <nospam-j-pascal@free.fr> wrote in message
news:Ox0eotKlGHA.4080@TK2MSFTNGP03.phx.gbl...
Re,
En fait, j'ai l'impression que cette "formidable" formule ralentit
l'exécution de mes macros !
Penses-tu que je puisse l'appliquer une seule fois par un test
conditionnel
par exemple ? Ex : si "A1" = 1 alors la formule s'exécute ! Je n'y crois
pas
trop, mais bon... Par ailleurs, dans le cas d'une formule matricielle, je
ne
sais pas comment on peut la faire précéder d'un test, et même si c'est
possible.
J'ai bien pensé à une macro, qui m'inscrirait les valeurs dans les
cellules
et qui ne s'exécuterait qu'une fois, mais là encore j'ignore si je peux
faire un enregistrement automatique avec la saisie d'une formule
matricielle
???
A+ ?
JP
docm wrote:
EQUIV(Vals;Vals;0) donne N/A s'il y a une cellule vide et qu'aucune
cellule ne contient la valeur 0.
Voici qui accepte les cellules vides
d'après AV ( d'après Daniel M):
"j-pascal" <nospam-j-pascal@free.fr> wrote in message
news:u#KPtUDlGHA.1244@TK2MSFTNGP05.phx.gbl...
Bonjour docm,
Merci pour toutes ces explications détaillées. J'ai (je crois !)
suivi scrupuleusement tes conseils, et le résultat qui s'affiche
dans les 3 cellules est "#N/A". J'ai l'habitude de traîter ces
fameux "#N/A" lorsque j'utilise la fonction "RECHERCHEV" mais même
si j'en comprends la nécessité, les formules matricielles ne me sont
pas d'une grande limpidité (doux euphémisme...). Dans le cas
présent, je suis incapable de corriger l'erreur car la formule est
trop complexe pour moi.
A+ ? ;-)
Amicalement,
JP
wrote:
1. Copie la formule donnée par le grand maître AV.
2.Sélectionne la plage contenant toutes les valeurs et nomme-la Vals
(écris Vals au-dessus de la colonne A et p`se sur Entrée)
3. Sélectionne les 3 cellules où tu veux voir les 3 plus petites
valeurs. Ces 3 cellules étant sélectionnées, colle la formule de AV
dans la barre de formule.
4. Confirme que c'est une formule matricielle en pesant sur CTRL-MAJ
Entrée - c-à-d Pèse sur la touche Entrée en maintenant enfoncées les
touches CTRL et MAJ.
Amicalement
docm
"j-pascal" <nospam-j-pascal@free.fr> wrote in message
news:O8NojL8kGHA.1244@TK2MSFTNGP05.phx.gbl...
Bonsoir AV,
Ouahhh, c'est plus compliqué que je croyais !!!!
En fait, je ne veux pas le résultat sous forme de "série", je veux
une valeur dans chaque cellule (donc 3 cellules avec un résultat).
En fait je veux récupérer ces valeurs pour les mettre dans une
liste déroulante afin d'en sélectionner une.
Suis-au obligé de recopier manuellement la formule ? Si je fais un
"copié/collé" je ne vois pas comment faire CTRL MAJ ENT !
A+ ?
Merci encore,
JP
wrote:
La série de valeurs : 0;5;2;9;0;0;4;"";2;2
avec =petite.valeur(plage;3) je devrais avoir 4 comme résultat,
non ?
Ben non car, même en excluant les zéros, la 3° petite.valeur des
tes données est
bien 2 !
Pour avoir les 3 plus petites valeurs en excluant les zéros et les
doublons et
donc, pour ta série de données, obtenir comme résultat : 2;4;5
Avec la plage des valeurs nommées "Vals", tu sélectionnes 3 lignes
consécutives --> dans la barre de formule :
En fait, j'ai l'impression que cette "formidable" formule ralentit l'exécution de mes macros ! Penses-tu que je puisse l'appliquer une seule fois par un test conditionnel
par exemple ? Ex : si "A1" = 1 alors la formule s'exécute ! Je n'y crois pas
trop, mais bon... Par ailleurs, dans le cas d'une formule matricielle, je ne
sais pas comment on peut la faire précéder d'un test, et même si c'est possible.
J'ai bien pensé à une macro, qui m'inscrirait les valeurs dans les cellules
et qui ne s'exécuterait qu'une fois, mais là encore j'ignore si je peux faire un enregistrement automatique avec la saisie d'une formule matricielle
???
A+ ?
JP
docm wrote:
EQUIV(Vals;Vals;0) donne N/A s'il y a une cellule vide et qu'aucune cellule ne contient la valeur 0.
Voici qui accepte les cellules vides d'après AV ( d'après Daniel M):
Merci pour toutes ces explications détaillées. J'ai (je crois !) suivi scrupuleusement tes conseils, et le résultat qui s'affiche dans les 3 cellules est "#N/A". J'ai l'habitude de traîter ces fameux "#N/A" lorsque j'utilise la fonction "RECHERCHEV" mais même si j'en comprends la nécessité, les formules matricielles ne me sont pas d'une grande limpidité (doux euphémisme...). Dans le cas présent, je suis incapable de corriger l'erreur car la formule est trop complexe pour moi.
A+ ? ;-)
Amicalement,
JP
wrote:
1. Copie la formule donnée par le grand maître AV. 2.Sélectionne la plage contenant toutes les valeurs et nomme-la Vals (écris Vals au-dessus de la colonne A et p`se sur Entrée) 3. Sélectionne les 3 cellules où tu veux voir les 3 plus petites valeurs. Ces 3 cellules étant sélectionnées, colle la formule de AV dans la barre de formule. 4. Confirme que c'est une formule matricielle en pesant sur CTRL-MAJ Entrée - c-à-d Pèse sur la touche Entrée en maintenant enfoncées les touches CTRL et MAJ.
Amicalement
docm
"j-pascal" wrote in message news:
Bonsoir AV,
Ouahhh, c'est plus compliqué que je croyais !!!! En fait, je ne veux pas le résultat sous forme de "série", je veux une valeur dans chaque cellule (donc 3 cellules avec un résultat). En fait je veux récupérer ces valeurs pour les mettre dans une liste déroulante afin d'en sélectionner une. Suis-au obligé de recopier manuellement la formule ? Si je fais un "copié/collé" je ne vois pas comment faire CTRL MAJ ENT ! A+ ? Merci encore, JP
wrote:
La série de valeurs : 0;5;2;9;0;0;4;"";2;2
avec =petite.valeur(plage;3) je devrais avoir 4 comme résultat, non ?
Ben non car, même en excluant les zéros, la 3° petite.valeur des tes données est bien 2 !
Pour avoir les 3 plus petites valeurs en excluant les zéros et les doublons et donc, pour ta série de données, obtenir comme résultat : 2;4;5 Avec la plage des valeurs nommées "Vals", tu sélectionnes 3 lignes consécutives --> dans la barre de formule :
Merci pour cette précision. Docm m'avait mis sur la voie. Je pars bosser et je regarde vos formules respectives "dans le détail" ce soir...
Comme je l'avais dit à docm, je crains que cette formule matricielle soit responsable du ralentissement de mes autres macros (la zone Vals est importante). Je me demande comment je peux momentanément désactiver cette formule car en fait je n'ai besoin des résultats qu'à l'ouverture du fichier ou de certaines mises à jours. J'essayerai peut-être avec un test conditionnel (!!) ou même une macro qui me recopierait lesdits résultat en "valeurs" ...
Merci pour cette précision. Docm m'avait mis sur la voie. Je pars bosser et
je regarde vos formules respectives "dans le détail" ce soir...
Comme je l'avais dit à docm, je crains que cette formule matricielle soit
responsable du ralentissement de mes autres macros (la zone Vals est
importante). Je me demande comment je peux momentanément désactiver cette
formule car en fait je n'ai besoin des résultats qu'à l'ouverture du fichier
ou de certaines mises à jours. J'essayerai peut-être avec un test
conditionnel (!!) ou même une macro qui me recopierait lesdits résultat en
"valeurs" ...
Merci pour cette précision. Docm m'avait mis sur la voie. Je pars bosser et je regarde vos formules respectives "dans le détail" ce soir...
Comme je l'avais dit à docm, je crains que cette formule matricielle soit responsable du ralentissement de mes autres macros (la zone Vals est importante). Je me demande comment je peux momentanément désactiver cette formule car en fait je n'ai besoin des résultats qu'à l'ouverture du fichier ou de certaines mises à jours. J'essayerai peut-être avec un test conditionnel (!!) ou même une macro qui me recopierait lesdits résultat en "valeurs" ...