J'essaie de raisonner la structure d'une formule composée de fonctions
imbriquées. Prises individuellement ça va, mais je n'arrive pas à raisonner
l'ensemble.
La formule fonctionne très bien, il s'agit de former des groupes (table) de
huit individus, groupe 1, 2, 3,....20, en partant d'un tableau de
possiblement 160 individus.
La formule est :
=SI(LIGNES($1:1)<=NB.SI(table;$AC$1);INDEX(nom;PETITE.VALEUR(SI(table=$AC$1;LIGNE(INDIRECT("1:"&LIGNES(nom))));LIGNES($1:1)));"")
Quel est le raisonnement lors de la création d'une telle formule ?
Quelle est la formule de départ ?
La formule mentionnée ne fonctionne pas, mais est certainement plus courte rend #VALEUR!. J'ai de la difficulté à décortiquer la portion "(SI(table=$AC$1;LIGNE(INDIRECT("1:"&LIGNES(nom)))" Je comprend chaque fonction individuellement mais cet ensemble est abstrait.
Merci -- albertri-at-videotron.ca.invalid
Bonsoir Isabelle
Ci joint le fichier, tous les noms sont fictifs
http://cjoint.com/?ALmet6iBysK
"isabelle" <i@v.org> a écrit dans le message de
news:jc3orb$geu$2@speranza.aioe.org...
à tous hasard est que la formule suivant est plus parlante pour toi ?
La formule mentionnée ne fonctionne pas, mais est certainement plus courte
rend #VALEUR!.
J'ai de la difficulté à décortiquer la portion
"(SI(table=$AC$1;LIGNE(INDIRECT("1:"&LIGNES(nom)))"
Je comprend chaque fonction individuellement mais cet ensemble est abstrait.
La formule mentionnée ne fonctionne pas, mais est certainement plus courte rend #VALEUR!. J'ai de la difficulté à décortiquer la portion "(SI(table=$AC$1;LIGNE(INDIRECT("1:"&LIGNES(nom)))" Je comprend chaque fonction individuellement mais cet ensemble est abstrait.
les arguments de la fonction PETITE.VALEUR(matrice;k)
la matrice:
SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))))
k: LIGNES($1:1)
pour comprendre la matrice,
table=$T$1
est une matrice des valeurs de la plage "table", de FAUX et VRAI (0 1) selon si la valeur est égal à T1
pour l'exemple de la formule en K2 on obtient pour les 15 premières valeurs
001000000001000
pour k le rang de la donnée à renvoyer
LIGNES($1:1)
pourrait être remplacer par le chiffre 1 si on regarde la formule de la cellule K4 SI(LIGNES($1:3)<=NB.SI(table;$T$1);INDEX(nom;PETITE.VALEUR(SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))));LIGNES($1:3)));"") on peut remplacer LIGNES($1:3) par 3
voilà, j'espère que ces explications te seront utiles.
les arguments de la fonction PETITE.VALEUR(matrice;k)
la matrice:
SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))))
k:
LIGNES($1:1)
pour comprendre la matrice,
table=$T$1
est une matrice des valeurs de la plage "table", de FAUX et VRAI (0 1) selon si la valeur est égal à T1
pour l'exemple de la formule en K2 on obtient pour les 15 premières valeurs
001000000001000
pour k le rang de la donnée à renvoyer
LIGNES($1:1)
pourrait être remplacer par le chiffre 1
si on regarde la formule de la cellule K4
SI(LIGNES($1:3)<=NB.SI(table;$T$1);INDEX(nom;PETITE.VALEUR(SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))));LIGNES($1:3)));"")
on peut remplacer LIGNES($1:3) par 3
voilà, j'espère que ces explications te seront utiles.
les arguments de la fonction PETITE.VALEUR(matrice;k)
la matrice:
SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))))
k: LIGNES($1:1)
pour comprendre la matrice,
table=$T$1
est une matrice des valeurs de la plage "table", de FAUX et VRAI (0 1) selon si la valeur est égal à T1
pour l'exemple de la formule en K2 on obtient pour les 15 premières valeurs
001000000001000
pour k le rang de la donnée à renvoyer
LIGNES($1:1)
pourrait être remplacer par le chiffre 1 si on regarde la formule de la cellule K4 SI(LIGNES($1:3)<=NB.SI(table;$T$1);INDEX(nom;PETITE.VALEUR(SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))));LIGNES($1:3)));"") on peut remplacer LIGNES($1:3) par 3
voilà, j'espère que ces explications te seront utiles.
-- isabelle
isabelle
j'avais oublié de décrire cette partie,
SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))))
pour l'exemple de la formule en K2 on obtient pour les 15 premières valeurs de table=$T$1
0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 ....
et INDIRECT("1:"&LIGNES(nom))
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ....
les valeurs retournées sont
4 13 ...
on pourrait aussi écrire cette partie de formule SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(table)))) étant données que les plages table et nom ont le même nombre de ligne
la formule INDEX(nom;la formule qui retourne le bon numéro de ligne) détermine la valeur de la plage "nom" qui sera retournée
-- isabelle
j'avais oublié de décrire cette partie,
SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))))
pour l'exemple de la formule en K2 on obtient pour les 15 premières valeurs de
table=$T$1
0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 ....
et
INDIRECT("1:"&LIGNES(nom))
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ....
les valeurs retournées sont
4 13 ...
on pourrait aussi écrire cette partie de formule
SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(table))))
étant données que les plages table et nom ont le même nombre de ligne
la formule INDEX(nom;la formule qui retourne le bon numéro de ligne)
détermine la valeur de la plage "nom" qui sera retournée
pour l'exemple de la formule en K2 on obtient pour les 15 premières valeurs de table=$T$1
0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 ....
et INDIRECT("1:"&LIGNES(nom))
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ....
les valeurs retournées sont
4 13 ...
on pourrait aussi écrire cette partie de formule SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(table)))) étant données que les plages table et nom ont le même nombre de ligne
la formule INDEX(nom;la formule qui retourne le bon numéro de ligne) détermine la valeur de la plage "nom" qui sera retournée
-- isabelle
isabelle
correction,
les valeurs retournées sont 3 12 ...
pour t'en convaincre, sélectionne la plage U1:U8 copie la formule suivante sur la barre de formule =PETITE.VALEUR(SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))));LIGNE()) et valide avec crtl+maj+enter le résultat sera les numéros de lignes pour la Table No 1
-- isabelle
correction,
les valeurs retournées sont
3 12 ...
pour t'en convaincre,
sélectionne la plage U1:U8
copie la formule suivante sur la barre de formule
=PETITE.VALEUR(SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))));LIGNE())
et valide avec crtl+maj+enter
le résultat sera les numéros de lignes pour la Table No 1
pour t'en convaincre, sélectionne la plage U1:U8 copie la formule suivante sur la barre de formule =PETITE.VALEUR(SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))));LIGNE()) et valide avec crtl+maj+enter le résultat sera les numéros de lignes pour la Table No 1
-- isabelle
isabelle
désolé si je me suis emmêlé entre le no. des lignes de la feuille de calcul et ceux des plages nommées, il est temps pour moi d'aller en position horizontal.
a+ -- isabelle
désolé si je me suis emmêlé entre le no. des lignes de la feuille de calcul et ceux des plages nommées,
il est temps pour moi d'aller en position horizontal.
désolé si je me suis emmêlé entre le no. des lignes de la feuille de calcul et ceux des plages nommées, il est temps pour moi d'aller en position horizontal.
a+ -- isabelle
isabelle
j'ai refait le calcul d'une façon différente sur un deuxième onglet pour mieux visualiser la matrice.
http://cjoint.com/?ALmqZCsHwNc
-- isabelle
j'ai refait le calcul d'une façon différente sur un deuxième onglet
pour mieux visualiser la matrice.
j'ai refait le calcul d'une façon différente sur un deuxième onglet pour mieux visualiser la matrice.
http://cjoint.com/?ALmqZCsHwNc
-- isabelle
Albert
Bonjour Isabelle Il faut profiter du beau soleil aujourd'hui. "isabelle" a écrit dans le message de news:jc46u8$geu$
Notez que le fichier peut être trié différemment, trois boutons de macros en position O43:O50 permettent 3 tris, par Table, Par_nom et par No_de la colonne C. Donc les valeurs peuvent changer selon le tri.
pour t'en convaincre, sélectionne la plage U1:U8 copie la formule suivante sur la barre de formule =PETITE.VALEUR(SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))));LIGNE()) et valide avec crtl+maj+enter le résultat sera les numéros de lignes pour la Table No 1
Cela fonctionne parfaitement pour la Table 1 $T$1. Un tri par table donne dans U1:U8, 1,2,3,4,5,6,7,8, et un tri par Nom donne 3,12,22,59,72,73,74,80, alors que le tri par le No de la colonne C donne 7,9,11,19,20,21,22,61
Mais si je sélectionne la plage U11:U18 et choisi la (table2) $T$2 le résultat est #NOMBRES!, et pareillement U21:28 pour $T$3. Mais ca fonctionne bien si je sélectionne U1:U8, V1:V8 ainsi que W1:W8. Il faut que la plage sélectionnée soit sur les lignes 1 à 8 Quel autre paramètre doit etre modifié pour pouvoir placer la plage ailleurs sur la feuille ?
Les formules =SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom)))) et =SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(table)))) fonctionne bien partout sur la feuille, et MERCI cette partie est assez bien comprise, il me reste à la digérer complètement.
Un gros merci
-- albertri-at-videotron.ca.invalid
Bonjour Isabelle
Il faut profiter du beau soleil aujourd'hui.
"isabelle" <i@v.org> a écrit dans le message de
news:jc46u8$geu$6@speranza.aioe.org...
Notez que le fichier peut être trié différemment, trois boutons de macros
en position O43:O50 permettent 3 tris, par Table, Par_nom et par No_de la
colonne C. Donc les valeurs peuvent changer selon le tri.
pour t'en convaincre, sélectionne la plage U1:U8
copie la formule suivante sur la barre de formule
=PETITE.VALEUR(SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))));LIGNE())
et valide avec crtl+maj+enter
le résultat sera les numéros de lignes pour la Table No 1
Cela fonctionne parfaitement pour la Table 1 $T$1. Un tri par table donne
dans U1:U8, 1,2,3,4,5,6,7,8, et un tri par Nom donne 3,12,22,59,72,73,74,80,
alors que le tri par le No de la colonne C donne 7,9,11,19,20,21,22,61
Mais si je sélectionne la plage U11:U18 et choisi la (table2) $T$2 le
résultat est #NOMBRES!, et pareillement U21:28 pour $T$3.
Mais ca fonctionne bien si je sélectionne U1:U8, V1:V8 ainsi que W1:W8. Il
faut que la plage sélectionnée soit sur les lignes 1 à 8
Quel autre paramètre doit etre modifié pour pouvoir placer la plage ailleurs
sur la feuille ?
Les formules =SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom)))) et
=SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(table)))) fonctionne bien partout
sur la feuille, et MERCI cette partie est assez bien comprise, il me reste
à la digérer complètement.
Bonjour Isabelle Il faut profiter du beau soleil aujourd'hui. "isabelle" a écrit dans le message de news:jc46u8$geu$
Notez que le fichier peut être trié différemment, trois boutons de macros en position O43:O50 permettent 3 tris, par Table, Par_nom et par No_de la colonne C. Donc les valeurs peuvent changer selon le tri.
pour t'en convaincre, sélectionne la plage U1:U8 copie la formule suivante sur la barre de formule =PETITE.VALEUR(SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom))));LIGNE()) et valide avec crtl+maj+enter le résultat sera les numéros de lignes pour la Table No 1
Cela fonctionne parfaitement pour la Table 1 $T$1. Un tri par table donne dans U1:U8, 1,2,3,4,5,6,7,8, et un tri par Nom donne 3,12,22,59,72,73,74,80, alors que le tri par le No de la colonne C donne 7,9,11,19,20,21,22,61
Mais si je sélectionne la plage U11:U18 et choisi la (table2) $T$2 le résultat est #NOMBRES!, et pareillement U21:28 pour $T$3. Mais ca fonctionne bien si je sélectionne U1:U8, V1:V8 ainsi que W1:W8. Il faut que la plage sélectionnée soit sur les lignes 1 à 8 Quel autre paramètre doit etre modifié pour pouvoir placer la plage ailleurs sur la feuille ?
Les formules =SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(nom)))) et =SI(table=$T$1;LIGNE(INDIRECT("1:"&LIGNES(table)))) fonctionne bien partout sur la feuille, et MERCI cette partie est assez bien comprise, il me reste à la digérer complètement.
Un gros merci
-- albertri-at-videotron.ca.invalid
Albert
Bonsoir / Bonjour Isabelle "isabelle" a écrit dans le message de news:jc58bi$ov3$
j'ai refait le calcul d'une façon différente sur un deuxième onglet pour mieux visualiser la matrice. http://cjoint.com/?ALmqZCsHwNc
Je vous remercie pour cette présentation additionnellle, il va me falloir absorber dans ma tête que la valeur recherchée est dans la matrice et pas nécessairement apparente.
Mais pourquoi l'affichage se limite aux premières lignes au haut de la page ?
Bonne nuit et bonne journée
-- albertri-at-videotron.ca.invalid
Bonsoir / Bonjour Isabelle
"isabelle" <i@v.org> a écrit dans le message de
news:jc58bi$ov3$1@speranza.aioe.org...
j'ai refait le calcul d'une façon différente sur un deuxième onglet
pour mieux visualiser la matrice.
http://cjoint.com/?ALmqZCsHwNc
Je vous remercie pour cette présentation additionnellle, il va me falloir
absorber dans ma tête que la valeur recherchée est dans la matrice et pas
nécessairement apparente.
Mais pourquoi l'affichage se limite aux premières lignes au haut de la page
?
Bonsoir / Bonjour Isabelle "isabelle" a écrit dans le message de news:jc58bi$ov3$
j'ai refait le calcul d'une façon différente sur un deuxième onglet pour mieux visualiser la matrice. http://cjoint.com/?ALmqZCsHwNc
Je vous remercie pour cette présentation additionnellle, il va me falloir absorber dans ma tête que la valeur recherchée est dans la matrice et pas nécessairement apparente.
Mais pourquoi l'affichage se limite aux premières lignes au haut de la page ?
Bonne nuit et bonne journée
-- albertri-at-videotron.ca.invalid
isabelle
bonjour Albert,
le résultat est défini par k de la fonction PETITE.VALEUR(matrice;k) sur le 2ème onglet les formules sont mit en K2:K20 et j'ai utilisé Ligne()-1 pour l'argument k donc en cellule K2, k = 1 en cellule K3, k = 2 etc..
si les résultats devaient être mis en cellule K5: K14 l'argument k devrait être ligne()-4 pour obtenir la première petite valeur de la matrice
-- isabelle
Le 2011-12-12 22:25, Albert a écrit :
Bonsoir / Bonjour Isabelle "isabelle" a écrit dans le message de news:jc58bi$ov3$
j'ai refait le calcul d'une façon différente sur un deuxième onglet pour mieux visualiser la matrice. http://cjoint.com/?ALmqZCsHwNc
Je vous remercie pour cette présentation additionnellle, il va me falloir absorber dans ma tête
que la valeur recherchée est dans la matrice et pas nécessairement apparente.
Mais pourquoi l'affichage se limite aux premières lignes au haut de la page ?
Bonne nuit et bonne journée
bonjour Albert,
le résultat est défini par k de la fonction PETITE.VALEUR(matrice;k)
sur le 2ème onglet les formules sont mit en K2:K20
et j'ai utilisé Ligne()-1 pour l'argument k
donc en cellule K2, k = 1
en cellule K3, k = 2 etc..
si les résultats devaient être mis en cellule K5: K14
l'argument k devrait être ligne()-4 pour obtenir la première petite valeur de la matrice
--
isabelle
Le 2011-12-12 22:25, Albert a écrit :
Bonsoir / Bonjour Isabelle
"isabelle" <i@v.org> a écrit dans le message de news:jc58bi$ov3$1@speranza.aioe.org...
j'ai refait le calcul d'une façon différente sur un deuxième onglet
pour mieux visualiser la matrice.
http://cjoint.com/?ALmqZCsHwNc
Je vous remercie pour cette présentation additionnellle, il va me falloir absorber dans ma tête
que la valeur recherchée est dans la matrice et pas nécessairement apparente.
Mais pourquoi l'affichage se limite aux premières lignes au haut de la page ?
le résultat est défini par k de la fonction PETITE.VALEUR(matrice;k) sur le 2ème onglet les formules sont mit en K2:K20 et j'ai utilisé Ligne()-1 pour l'argument k donc en cellule K2, k = 1 en cellule K3, k = 2 etc..
si les résultats devaient être mis en cellule K5: K14 l'argument k devrait être ligne()-4 pour obtenir la première petite valeur de la matrice
-- isabelle
Le 2011-12-12 22:25, Albert a écrit :
Bonsoir / Bonjour Isabelle "isabelle" a écrit dans le message de news:jc58bi$ov3$
j'ai refait le calcul d'une façon différente sur un deuxième onglet pour mieux visualiser la matrice. http://cjoint.com/?ALmqZCsHwNc
Je vous remercie pour cette présentation additionnellle, il va me falloir absorber dans ma tête
que la valeur recherchée est dans la matrice et pas nécessairement apparente.
Mais pourquoi l'affichage se limite aux premières lignes au haut de la page ?