Probléme avec une formule Index et Si

ETMANU

XLDnaute Nouveau
Bonjour,

merci tout d'abord pour l'aide que vous voudrez bien m'apporter.

Je me bat avec cette formule que j'arrive à faire que sur un fichier simple. ::

Le but est de pouvoir reporter uniquement les valeur des cellules remplies d un tableau à un autre sur la même feuille en les rangeant du plus petit au plus grand
ma formule est la suivant: =SI(LIGNES(B$419:B419)>NB.SI($B$601:$B$728;"<>"&"");"";INDEX($B$601:$B728;PETITE.VALEUR(SI($B$601:$B$728<>"";LIGNE($B$601:$B$728));LIGNES(B$419:B419))))

Merci
 

Pièces jointes

  • test.xlsm
    567.8 KB · Affichages: 8

djidji59430

XLDnaute Barbatruc
Bonjour,
=Sierreur(INDEX($B$601:$B728;PETITE.VALEUR(SI($B$601:$B$728<>"";LIGNE($B$601:$B$728)-600);LIGNES($1:1)));"")
C'est une formule matricielle, donc a valider par
Maj+Ctrl+Entrée (les 3 doigts en même temps) pour faire apparaitre les accolades !

Crdlmt
 

ETMANU

XLDnaute Nouveau
Bonjour

Je suis d'accord avec vous pour la validation.
J'ai réussi à faire cette formule sur des données simples mais je n'y arrive pas à sur mon tableau.
Il y a-t-il un nombre maximum de lignes de recherche?

De plus je pense que j'ai fait une erreur car les données avec la valeur 0 ne m'intéresse pas.

Merci
 

djidji59430

XLDnaute Barbatruc
Re
là,ta formule est limitée a LIGNE($B$601:$B$728) soit 728-601 +1 =128 lignes, mais c'est normal, vu que c'est la plage de recherche !!
Si tu veux changer de condition , tu mets SI($B$601:$B$728<>0 ;
et si tu veux les deux SI(($B$601:$B$728<>"" )* ($B$601:$B$728<>0);


Crdlmt
 

ETMANU

XLDnaute Nouveau
Re
là,ta formule est limitée a LIGNE($B$601:$B$728) soit 728-601 +1 =128 lignes, mais c'est normal, vu que c'est la plage de recherche !!
Si tu veux changer de condition , tu mets SI($B$601:$B$728<>0 ;
et si tu veux les deux SI(($B$601:$B$728<>"" )* ($B$601:$B$728<>0);


Crdlmt

Re

bon j ai l'impression de te faire perdre ton temps mais je n'arrive pas au résultat que je souhaites.
Je vais essayer de reprendre ce que je souhaites faire.

La formule =SIERREUR(INDEX($B$602:$B729;PETITE.VALEUR(SI($B$601:$B$728<>"";LIGNE($B$601:$B$728)-600);LIGNES($1:1)));"") me reporte bien les valeurs du tableau mais elle reporte aussi les valeurs à zéro. (colonne C C421)

La formule SI(($B$601:$B$728<>"" )*($B$601:$B$728<>0) ne me reporte que des valeurs à 0 5 Colonne B)

Au final je souhaiterais que la formule ne me reporte que 8 cellules avec le chiffre 50.

Merci j'en ai mal aux crânes mais je veux pas lacher
 

Pièces jointes

  • TEST.xlsm
    563 KB · Affichages: 2

djidji59430

XLDnaute Barbatruc
Re
j'ai appliqué la formule que je t'ai donnée dans le post, mais sans tes erreurs et avec tes nouvelles conditions

=SIERREUR(INDEX(A$602:A$729;PETITE.VALEUR(SI(A$602:A$729>0;LIGNE(A$602:A$729)-601);LIGNES($1:1)));"")

ta formule melange les 602 et les 601, et ensuite tu voulais les valeurs positives d' ou la condition A$602:A$729>0

Une fois en a421, on s’étale a droite et on descend
Par contre, elle ne sont pas rangées. Il faut le faire en triant


Crdlmt
 

Discussions similaires

Réponses
6
Affichages
552

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi