Indexer des cellules en fonction d'un paramètre [Resolu en bidouillant]

Loutch

XLDnaute Nouveau
Bonjour,

J'ai un problème pour lequel je pense que la fonction index est la plus à proprié mais j'ai du mal à l'utiliser.
J'utilise la formule qui est dans l'encadré du fichier joint et j'ai nommé les listes pourcentage, carte et string en dynamique.
Je souhaite (le rêve) trier directement mes cartes par ordre croissant et string par ordre croissant pour des valeurs de pourcentage comprise entre 0 et -20.
Sinon uniquement les regrouper, je pense pouvoir les trier par ordre assez facilement avec une autre fonction. J'aurais juste aimé regrouper le tout en une fonction.

Merci pour l'aide que vous allez pouvoir m'apporter, toute piste est bonne à prendre pour l'instant j'ai essayé tout ce qui me passé par la tête ...

PS : Sujet présent sur http://forum.excel-pratique.com/post281570.html?sid=cad94278cdf0a2eb26dc20638da1a893#p281570
 

Pièces jointes

  • aidepouruntri.xlsx
    37.2 KB · Affichages: 36
  • aidepouruntri.xlsx
    37.2 KB · Affichages: 29
  • aidepouruntri.xlsx
    37.2 KB · Affichages: 34
Dernière édition:

Loutch

XLDnaute Nouveau
Re : Indexer des cellules en fonction d'un paramètre d'autres cellules

J'ai développer un pour trouver d'où venez l'erreur et elle vient de EQUIV, j'utile la formule
Code:
=NB.SI(pourcentagetrie;"<-80")
elle me donne bien 9 résultats.
Par contre quand je veux récupérer la position de ces 9 valeurs avec EQUIV ça ne fonctionne pas...

Une idée ?
 

Staple1600

XLDnaute Barbatruc
Re : Indexer des cellules en fonction d'un paramètre d'autres cellules

Bonjour à tous

Loutch
j'ai nommé les listes pourcentage, carte et string en dynamique.
Je ne vois pas trace de plages nommées dans ton fichier

Sinon pourrais-tu être moins avare en explications, stp?
Par exemple nous expliquer quel est le contexte d'utilisation de ton classeur?
Qu'entends-tu par carte, string etc...?

Bref éclaire un peu plus notre lanterne pour faciliter nos tentatives de résolution de ton souci. ;)
 

Loutch

XLDnaute Nouveau
Re : Indexer des cellules en fonction d'un paramètre d'autres cellules

Bonjour Staple,
En effet j'étais fatigué et j'ai oublié que mon copié collé ne copié pas ça (nommations dynamiques et formules).
J'ai remis le fichier.
Alors oui le contexte :
En gros je prend ces mesures sur internet c'est des mesures de production.
Sur une carte (de mesure) j'ai 8 strings, ces 8 strings ils arrivent que certains ont des problèmes ou même toute la carte.
C'est pourquoi je fais ce programme car au total je dois a voir près de 1000 strings.
Je souhaiterai utiliser le moins de formule possible c'est pour ça que tu verras dans mon nouveau fichier que je préfère éviter les colonnes string defectueux et pourcentage (les 2 dernières), qui n'était qu'une façon détourné de récupérer les valeurs en question (se trouvant en 0 et -20) et après de les lister en supprimant les 0, cependant je n'y arrive pas non plus ...

Je souhaite donc si possible trouver un moyen de lister mes strings défaillant en fonction de 2 paramètres =ET( <0; >-20), le problème c'est que je n'y arrive pas je bloque sur la fonction EQUIV.

J'espère que c'est plus clair, n'hésite pas si il te faut plus de détails.

PS : Pour ce qui est de la colonne somme elle vient d'une autre page que je n'ai pas juger utile de mettre pour ne pas alourdir mon fichier.
 

Pièces jointes

  • aidepouruntri.xlsx
    37.2 KB · Affichages: 40
  • aidepouruntri.xlsx
    37.2 KB · Affichages: 36
  • aidepouruntri.xlsx
    37.2 KB · Affichages: 31

Staple1600

XLDnaute Barbatruc
Re : Indexer des cellules en fonction d'un paramètre d'autres cellules

Bonsoir à tous

Loutch
J'espère que c'est plus clair, n'hésite pas si il te faut plus de détails.
Ce n'est pas plus clair pour moi ;)
Mais d'autres passeront surement dans ton fil.
Alors n'hésites à ajouter d'autres explication ou à mettre des exemples de résultats à obtenir
(en les faisant manuellement pour 4 ou cinq lignes)
 

Loutch

XLDnaute Nouveau
Re : Indexer des cellules en fonction d'un paramètre d'autres cellules

D'accord je vais donner un exemple plus simple de compréhension et en tachant d'être plus clair.
Dans mon fichier j'ai 2 colonnes : Nom et Note
Je souhaite automatiser le regroupement des Noms en fonction de leur Notes : Si il se trouve entre 0 - 5 son nom va être lister dans la colonne 0 - 5, si il est entre 5 - 10 il va être dans la suivante ...
Pour cela j'ai créé des listes de noms dynamique : "Prénom" et "Note"
Je pensais utiliser cette fonction :
'=INDEX(Prénom;EQUIV(PETITE.VALEUR(NB.SI(Note;OU(<5:>0);LIGNE()-1);0)))'
Pour lister mes prénoms dont les notes sont entre 0 et 5 dans la colonne souhaité et ajouter la même formule à coté pour les autres groupes de notes.
Cependant je n'arrive pas à faire fonctionné cette formule :/
 

Pièces jointes

  • Exemple pour le tri.xlsx
    10.5 KB · Affichages: 31

Staple1600

XLDnaute Barbatruc
Re : Indexer des cellules en fonction d'un paramètre d'autres cellules

Re

Voila une possibilité pas macro, en attendant les formulistes ;)
Code:
Sub a()
Dim ENTET, Bornes, i, x, y
ENTET = Array("[0-5]", "[5-10]", "[10-15]", "[15-20]")
Bornes = Array([{0,5}], [{5,10}], [{10,15}], [{15,20}])
Application.ScreenUpdating = False
For i = 0 To UBound(Bornes)
x = Bornes(i)(1): y = Bornes(i)(2)
Range("C2").FormulaR1C1 = "=AND(RC[-1]>" & x & ",RC[-1]<=" & y & ")"
Range("A1:B11").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
        "C1:C2"), CopyToRange:=Range("E1").Offset(, i * 2), Unique:=False
       
Next
[F:F,H:H,J:J,L:L].Delete -4159: [E1:H1] = ENTET: [C2].Clear
End Sub
 

Loutch

XLDnaute Nouveau
Re : Indexer des cellules en fonction d'un paramètre d'autres cellules

C'est sympa de ta part mais il y a plusieurs problèmes.
Je n'y connais rien au VBA (pour l'instant je peux pas me permettre de prendre du temps pour l'apprendre) donc je n'arriverais pas à l'adapter ...
De plus c'est souvent source de problème et ce programme va être utiliser par des gens qui ne connaissent pas forcement excel donc si un problème survient le programme sera fichu :-/
Mais merci pour ton aide j'espère qu'un formuliste m'aidera mais vu le temps que le sujet a je sais pas si quelqu'un va se pointer maintenant, je pense essayer d'autre forum ...
Si je trouve je posterai la solution ça pourra aider quelqu'un ;)
 

Staple1600

XLDnaute Barbatruc
Re : Indexer des cellules en fonction d'un paramètre d'autres cellules

Re

Ta question n'est vieille que de 3 jours ... :rolleyes:
Et ici c'est un forum de bénévoles
(donc non soumis à une quelconque obligation de résultat, ni de délai de résolution)

Sois un peu patient ;)

Merci en tout cas, si tu postes sur un autre forum de prévenir par un lien que ta question est déjà postée ici.
Merci également de revenir si tu as trouvé une solution par formule ;)

NB:
ce programme va être utiliser par des gens qui ne connaissent pas forcement excel donc si un problème survient le programme sera fichu :-/
Il est plus facile pour un novice de "destroyer" une formule (surtout si elle est complexe ou matricielle) qu'un code VBA exécuté par un clic sur un bouton par exemple ;)
Enfin c'est ta question, donc c'est toi qui vois midi à ta porte ;)
En gros je prend ces mesures sur internet c'est des mesures de production.
Sinon uniquement les regrouper, je pense pouvoir les trier par ordre assez facilement avec une autre fonction. J'aurais juste aimé regrouper le tout en une fonction.
Donc finalement je c'est eux, les gens...:rolleyes:

De plus c'est souvent source de problème
Comment un novice en VBA peut affirmer cela ? ;)
 
Dernière édition:

Loutch

XLDnaute Nouveau
Re : Indexer des cellules en fonction d'un paramètre d'autres cellules

Ahah c'est vrai que je suis novice en VBA mais les peu de fois ou j'ai tenté d'utiliser des codes et des macros (rien qu'une simple macro supprimer une champs de données) elles ont fonctionnaient un jour et après fermeture du fichier fini ... Ou alors quelques jours plus tard. J'ai aussi eu d'autres échos de ce genre de problème, mais je ne doute pas que quand on maitriste le VBA c'est un outil bien puissant.
Sinon le je est pour moi pour l'instant et par la suite d'autre personne car je suis en stage et je vais leur laisser ce programme.
Sinon non impossible de modifier les formules je vais les bloquer, en gros au final quand on ouvre le fichier on arrive sur la premiere page ou on fait un collé des données puis on va sur la page résultat et on voit ce qui nous intéresse. Les pages de calculs sont bloqués et masqués donc pas de risque (à mon avis).

Pour l'instant je pense avoir trouver une solution mais je dois la mettre au claire.
C'est un peu lourd car je passe par plusieurs formules et bidouilles dans plusieurs colonnes mais j'arrive à mes fins je pense. Disons que c'est moins élégant et du coup ça alourdi le calcul ^^ mais bon tant pis au moins le résultat devrait être là.

PS : j'ai précisé que le sujet était présent sur un autre forum dans l'explication du sujet.
Sinon je ne voulais pas insinué que personne ne m'aidé ou ne faisait pas son travail je disais juste que les gens qui aurait pu avoir une idée ont du regardé sans avoir de réponse donc ils sont passé à un autre sujet sans encombrer celui là avec des réponses vides ce que je comprend, et je me dis qu'avec le flux de questions celle ci va finir par disparaitre ^^ voilà ce que j'ai voulu dire je ne remettais pas en cause l'implication des gens qui nous aident.
 
Dernière édition:

Loutch

XLDnaute Nouveau
Re : Indexer des cellules en fonction d'un paramètre d'autres cellules

[Resolu en bidouille]

Ce que j'ai fais c'est que dans ma liste de résultat compris entre tel et tel valeur j'ai dis :
=SI(ET(E3>-80;E3<=-20);D3;"")
Du coup j'obtiens une colonne composée des valeurs qui m'intéressent et de cases vides, j'appel cette colonne cs_defaillant.
Le tout étant trier au préalable je n'ai plus qu'à tout rassembler.

Pour rassembler le tout j'ai utilisé cette fonction :
=INDEX(cs_defaillant_SF;EQUIV(GRANDE.VALEUR(NB.SI(cs_defaillant_SF;">="&cs_defaillant_SF);LIGNE(INDIRECT("1:"&LIGNES(cs_defaillant_SF))));NB.SI(cs_defaillant_SF;">="&cs_defaillant_SF);0))
Qui regarde dans ma colonne et supprime les cellules vides pour les remplacer par les cellules où il y a mes valeurs.

Donc au final je me retrouve avec ce qu'il me faut soit une colonne trié avec des valeurs comprises entre 2 bornes.
C'est moins élégant qu'une seule formule qui fait le tout mais peut être plus simple à faire.
  • Trier selon l'ordre voulu
  • Sélectionner les cellules voulues
  • Regrouper les cellules dans une colonne
 

Statistiques des forums

Discussions
313 091
Messages
2 095 179
Membres
106 201
dernier inscrit
toglozin