Filtre, Tableau croisé, Tri ... Que faire ?

S

SaYaN

Guest
Bonjour à tous, le forum...


Sous Access on pourrait appeler cela une requête, facilement paramètrable selon ses souhaits.Mais sous Excel, je vois mais alors pas du tout comment faire !

Sur ma "feuil1" se trouvent 12 tableaux de formes identiques(1 par mois).Sur ma "feuil2" j'ai un tableau de 15 lignes reprenant 4 colonnes du tableau de la feuil1.
Je voudrais chercher dans mes 12 tableaux les 15 premières valeurs (enregistrements ou ligne) dans l'ordre décroissant répondant à 2 critères, le 1er porte sur une colonne où la valeur est supérieur ou égale à 4, c le critère principale, et ensuite trier les valeurs identiques trouvées avec le 1er critère avec les valeurs d'une deuxième colonne par ordre décroissant.
Pr finir, rentrer les enregistrements trouvés dans mon tableau de la feuil2.

Je ne c pas comment faire, si je dois passer par une fonction, un tri, un filtre, du code...ou plusieurs choses dans tout ca ... !

Je vous laisse le soin de me répondre, si vous avez besoin de précision n'hésitez pas je suis dans les parages ! lol

SaYaN
 
S

SaYaN

Guest
Re tout le monde,

Bon alors j'ai un peu avancé mais je doute ke la piste que j'emprunte ne soit la bonne ... enfin bon c mieux ke rien !

Avec la fonction "GrandeValeur" j'arrive à récupérer les valeurs les plus grandes pour ma 1ere colonne, et à les classer selon leur rang, ca d'accord.Ensuite je pense qu'en faisant un tri sur ma 2ème colonne, je devrais pouvoir y arriver seulement le problème, c'est que j'ai récupérer mes valeurs pr ma 1ere colonne , mais que les 3 autres colonnes ne font pas la correspondance avec les enregistrements.
Autrement dit, il faudrait que je puisse lorsque j'ai trouvé la valeur la plus grande inscrire dans les 3 colonnes restantes les valeurs correspondantes à l'enregistrement.

Et c'est là que je me dis que ma fonction n'est pas la bonne ...

Je vais manger, un peu d'aide siouplé ! lol

SaYaN
 
J

Jean-Marie

Guest
Bonjour SaYaN

Utilise la fonction RechercheV(), renseigne les 4 arguements, le 4ème est facultatif mais il vaut mieux le renseigner. Regarde l'aide en ligne pour en savoir plus sur cette fonction.

@+Jean-Marie
 
S

SaYaN

Guest
Re JM, le fil,

J'ai cherché avec RechercheV() et pas moyen de récupérer toutes mes infos.

J'ai fais un petit fichier pour que vous puissiez comprendre plus facilement mon problème, je pense que les solutions vont fuser !

Merci d'avance.

SaYaN
 

Pièces jointes

  • ListeSaYaN.xls
    19.5 KB · Affichages: 66
J

Jean-Marie

Guest
Bonsoir, ou Bonjour

Regarde le fichier c'est dans la cellule de la colonne B que la valeur est déterminer, la colonne C permet de savoir où ce trouve l'info.

Tu as un fichier de démo qui te donnera de plus amples explications, d'ailleurs le principe de la colonne B est tiré de ce fichier.

Bonne journée

@+Jean-Marie
 

Pièces jointes

  • ListeSaYaN.zip
    4.8 KB · Affichages: 27
  • ListeSaYaN.zip
    4.8 KB · Affichages: 19
  • ListeSaYaN.zip
    4.8 KB · Affichages: 27
J

Jean-Marie

Guest
Bonjour

Celeda m'a envoyé un email pour me dire qu'il y a une erreur, de correspondance entre les valeurs et les autres données.
Ah! absolue quand tu n'es pas fixé, tu fait tourné les têtes. lol

Voilà le fichier corrigé.

@+Jean-Marie
 
S

SaYaN

Guest
Bjr Jean Marie, Thierry, le forum,

Je pense que Jean Marie à oublier de joindre le fichier corrigé (lol). Pourquoi le corrigé, je crois qu'il marche très bien ! ? !

Je suis entrain d'esayer de comprendre ce que tu as fait JM, dans l'ensemble ca va je capte, un truc bizar que j'ai pu observer c que lorsque je vais dans une des formules grandevaleur et que j'en ressort sans rien changer, le résultat change ... pas compris ...

J'aimerais comprendre aussi pourquoi dans les lignes:
=GRANDE.VALEUR...+((LIGNE(Feuil1!C5:C30)-3)/10000000000);A6)
Pourquoi après (ligne(feuil1!C5:C30) tu enlèves 3 à chaque fois ?

Une erreur de correspondance, ca signifit que tu récupères pas le même enregistrement , genre pour la 1ere société tu récupères les infos de la 3ème un truc ds le style ?

Vous m'avez bien aidé, y a encore 1 ou 2 zones d'ombre, merci de me les expliquer et merci tout court, en tout cas je peux vous assurer que tout seul j'aurais jamais trouvé ca ...

A tte, SaYaN
 
J

Jean-Marie

Guest
Re...

SaYaN, la formule B5 est une formule matricielle, validée par Ctrl+Shift+entrer

Concernant la valeur - 3 :
* la fonction ligne retourne le numéro de la ligne de la cellule C5; C6; C7 etc, cette valeur est liée à feuille entière et non-pas à ton tableau, cette valeur de ligne va servir à la fonction INDEX qui a comme référence ton tableau.
Exemple Ligne(C5) retourne 5, la valeur contenue dans la cellule Feuil1!C5 est 50, si je prends index(Feuil1!C$4:C$29;5;1) elle retourne 132.

Mais pourquoi 3 et pas 4, dans ton exemple l'entête de ton tableau des données se trouve sur la cette ligne. Si tu déplaces ton tableau des données dans ta feuille, il faudra changer la valeur de cette constante, ou la remplacer par Ligne(Feuil1!$c$3), mais ça rallonge les temps de calcul.

=GRANDE.VALEUR(Feuil1!C$4:C$29+(Feuil1!D$4:D$29/100000)+((LIGNE(Feuil1!C$4:C$29)-Ligne(Feuil1!$c$3))/10000000000);A5)

Autre chose récupère le fichier de ce message, je me suis aperçu que je n'avais pas corrigé l'absolue de cette fonction.

Si tu as d'autres soucis, n'hésite pas.

Encore bonne journée

@+Jean-Marie
 

Pièces jointes

  • ListeSaYaN.zip
    4.6 KB · Affichages: 22
  • ListeSaYaN.zip
    4.6 KB · Affichages: 24
  • ListeSaYaN.zip
    4.6 KB · Affichages: 18
S

SaYaN

Guest
Re ...

C ok pour moi, j'ai tout compris du moins je pense ;)

Etant donné que dans mon fichier il y a pleins de choses qui diffèrent de l'exemple, je préfère bien comprendre le cheminement , déjà pour moi et ensuite pour pouvoir faire la meme chose plus facilement.

Merci pour ces informations précieuses, tu m'a été d'un grand secours JM, et aussi je tiens à remercier les développeurs du site ainsi que ceux qui le font vivre chaque jour, sans vous il y aurait, je pense, beaucoup de monde qui finierait par se passer une corde autour du cou ! lol

@+ les Xl-ent.

SaYaN
 
S

SaYaN

Guest
Me revoilà, re le forum...

J'ai comme qui dierait un petit problème.

Je voudrais dans la fonction Grande.Valeur indiquer des matrices plutot que des plages de données, sinon je dépasse le nombre maxi de caractères autorisé ...

Pourriez-vous ou pourrais-tu JM me dire si la syntaxe est bonne:

=GRANDE.VALEUR(NomMatrice+(NomMatrice2/100000)+((LIGNE(NomMatrice)-6)/10000000000);Y25)

J'ai essayé en ne prenant qu'une plage de cellule et ca a marché le résultat était bon, par contre quand j'ai réessayé avec mes matrices, il m'a indiqué "#Valeur" , c pa bon hein ? lol

Je vé manger , on reprend tout ca à 13h ! lol

PS: Dézolé d'abuzer !

SaYaN
 
S

SaYaN

Guest
C re-re moi,

J'avé pa vu le msg de monik, alor du coup je suis pas encore parti manger !

Je pense que je vais rester sur la méthode de JM qui à mon avis sera déjà bien suffisante quand elle marchera lol.
J'ai rien contre toi monik, seulement j'ai déjà eut du mal à comprendre le truc à JM, mais alors ton exemple il me fait peur malgrè le fait que les méthodes restent quasiment a peu près dans le meme genre.

Promis quand j'ai réussit à faire avec la méthode à JM j'essaierai avec la tienne ! Ce qui m'intéresse dans la méthode à JM c qu'il n'y a pa besoin d'énormement de cellules et que le code est presk simple à comprendre, bref je suis à fond dedans depuis ce matin, ton exemple m'a un peu embrouillé ! lol

G f1 , à tt à l'heur !

SaYaN
 
J

Jean-Marie

Guest
Re ...

Ce n'est déjà pas un problème de longueur différentes de lignes entre les matrices, le message d'erreur aurait été #NA

Pour ton message #Valeur, je pense plutôt à une valeur alphanumérique, j'ai essayé de mettre une cellule vide, mais ça ne génère pas de défaut (elle considérée égale à 0).

Tient moi au courant.

@+Jean-Marie
 

Discussions similaires

Réponses
40
Affichages
1 K
Réponses
18
Affichages
698

Membres actuellement en ligne

Statistiques des forums

Discussions
312 756
Messages
2 091 735
Membres
105 060
dernier inscrit
DEDJAN Gaston