Probléme avec une formule Index et Si

  • Initiateur de la discussion Initiateur de la discussion ETMANU
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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
 
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
 
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
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

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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
679
Retour