Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

  • Initiateur de la discussion Initiateur de la discussion Fusky
  • 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 !

F

Fusky

Guest
Bonjour,

J'essaie sans resultat de prendre des infos dans un tableau en discriminant par date, sachant que les dates ne sont pas dans l'ordre (et ne le doivent pas) et au'il y a parfois plusieurs reponses.

Ci-joint mon exemple


Si vous pouvez y jeter un oeil, ca m'aiderai surement.

Merci
 

Pièces jointes

Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

Bonjour,

Je te transmet ton fichier avec une tite macro.
J'espère que tu n'auras pas de soucis, je suis sur 2007.

Jean-Pierre
 

Pièces jointes

Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

Bonjour,

Par formule

Formule matricielle, à valider en appuyant simultanément sur ctrl, maj et entrée

Index(A6:K6, n° colonne)
N° colonne est obtenu par :
Min(Si(Condition1 : date ; si(Condition2 : valeur non déjà retournée ; colonne()))
 

Pièces jointes

Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

J'ai commence a regarder vos fichiers, ca m'a l'air bien complique tout ca (en fait complexe).
Mais avant cela j'ai besoin de la syntaxe correcte pour demander a ma macro de faire une action en fonction d'un resultat logique. Quelque chose comme : si A1>0 alors copier B2 en B3 sinon nerien faire.
En fonction c'est la simplissime fonction SI, mais sous VBA je ne sais pas l'ecrire.
 
Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

J'ai commence a etudier (maudit clavier qwerty ! dsl pour les accent ...) vos reponses et la formule matricielle en premier lieu.

Dans ta formule :
Code:
=INDEX($A$6:$K$6,MIN(IF(MONTH($C$8:$K$8)=MONTH($D$3),IF(COUNTIF(C$20:C20,$C$6:$K$6)=0,COLUMN($C$6:$K$6)))))&""
Comment marche la fonction COUNTIF(C$20:C22,$C$6:$K$6) ?
j'ai du mal a comprendre ...


En tout cas merci, car je ne soupconnais pas qu'on puisse ecrire un truc pareil ! (j'ai fait la meme en une page de calcul !)
 
Dernière modification par un modérateur:
Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

Bonjour,

Index(A6:K6, n° colonne)
Si tu tapes =INDEX(A6:K6;4)
tu obtiens "Voiture 2", c'est le contenu de la colonne 4 de la plage A6:K6 (D6)

N° colonne est obtenu par
Min(Si(Condition1 : date ;si(Condition2 : valeur non déjà retournée ;colonne()))

=INDEX($A$6:$K$6;MIN(SI(MOIS($C$8:$K$8)=MOIS($D$3);SI(NB.SI(C$20:C20;$C$6:$K$6)=0;COLONNE($C$6:$K$6)))))&""

Min(
Si(Condition1 : date
SI(MOIS($C$8:$K$8)=MOIS($D$3)
Si(Condition2 : valeur non déjà retournée
SI(NB.SI(C$20:C20;$C$6:$K$6)=0

Si ces 2 conditions sont remplies,
la formule renvoie le n° de la colonne où les 2 conditions sont remplies,
mais pas n'importe quelle colonne :
la1ère à partir de la gauche (la Min) remplissant les conditions

NB.SI(C$20:C20;$C$6:$K$6) compte le nb de fois où l'on a une valeur appartenat ) C6:K6 dans les cellules du dessus (C20:C20 puis C20:C21 etc)

Le &"", c'est pour ne pas avoir 0 quand la série est épuisée
Quand la liste est épuisée, Min(Colonne()) renvoie 0 et la colonne 0 n'existe pas
Index(A6:K6;0) renvoie le contenu de A6 donc 0 puisque A6 est vide
Index(A6:K6;0)&"" renvoie ""
 
Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

Je bloaue avec NB.SI ...

Pourquoi la formule =NB.SI(D$20😀21,$C$10:$K$10) renvoie la reponse 0 et non pas 1 ?

Dans les cellules D20 a D21 on a bien 1 valeur identique a celles de la page $C$10:$K$10 (en l'occurence Gggg en D21).
 
Dernière modification par un modérateur:
Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

Bonjour,

Regarde ici le message de 13h21 et le fichier de 13h56, hier le 11-07-07, c'est la même chose :
http://www.excel-downloads.com/forum/78288-probleme-dequivalences.html#post424430

et cette page avec des explications sur les formules matricielles :
Ce lien n'existe plus

NB.SI(D$20 : D21,$C$10:$K$10) n'égale pas 0, ce morceau de formule est une condition
Si une cellule de la plage C10:K10 contient une valeur de D20 : D21,
la formule ne la prend pas en compte

Tu tapes cette formule et tu valides par ctrl, maj et entrée
=MIN(SI(NB.SI(D$20 : D21;$C$10:$K$10)=0;COLONNE($C$6:$K$6)))

Puis ce morceau seulement :
=SI(NB.SI(D$20 : D21;$C$10:$K$10)=0;COLONNE($C$6:$K$6))

La formule matricielle se crée pour elle toute seule ce tableau :
SI(NB.SI({"Pilote";"Gggg"};{"Aaaa"."Gggg"."Hhhh"."Llll"."Pppp"."Uuuu"."Wwww".0.0})=0;COLONNE($C$6:$K$6))

Elle fait ce calcul où VRAI équivaut à 1 et FAUX à 0 :
=SI({VRAI.FAUX.VRAI.VRAI.VRAI.VRAI.VRAI.VRAI.VRAI};COLONNE($C$6:$K$6))

Résultat = 3
MIN({3.FAUX.5.6.7.8.9.10.11})

La formule qui est en D22, en entier :
=INDEX($A$10:$K$10;MIN(SI(MOIS($C$8:$K$8)=MOIS($D$3);SI(NB.SI(D$20 : D21;$C$10:$K$10)=0;COLONNE($C$6:$K$6)))))&""

Calculée en partie :
=INDEX($A$10:$K$10;MIN(SI({FAUX.VRAI.FAUX.FAUX.VRAI.FAUX.FAUX.FAUX.FAUX};{3.FAUX.5.6.7.8.9.10.11})))&""

Calculée un peu plus
=INDEX($A$10:$K$10;MIN({FAUX.FAUX.FAUX.FAUX.7.FAUX.FAUX.FAUX.FAUX}))&""

Et à la fin, elle donne :
=INDEX($A$10:$K$10;7)&""

Edit - Enlever les espaces dans les "D$20 : D21"
 
Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

WhaOoo !
Je suis en trqin de redecouvrir excel ...

J'ai un peu lutte, mais je comprend a peu pres comment ca marche.
J'ai reussi a l'adapter a mon fichier, mais je decouvre un nouveaux probleme. En effet, j'ai certains mois plusieurs "voiture" qui porte le meme nom (mais ave des chauffeurs differents), et du fait de la fonction NB.SI elles n'apparaissent qu'une seule fois dans mon recapitulitif, ca decale le reste de la liste, et je n'ai plus rien de coherent ...

Demonstration jointe

Comment faire ?
Si je ne m'abuse il faudrait changer la facon d'exprimer la 2eme condition.
Pour l'instant on discrimine sur le contenu de la cellule uniquement, ne pourrait-on pas discriminer sur le contenu de la cellule associee a son numero de colonne ?
 

Pièces jointes

Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

Bonjour,

Index(A6:K6, n° colonne)

N° de colonne est obtenu cette fois-ci par Petite.Valeur() et non par Min()
=Petite.Valeur(n° de colonne ;1 puis 2 puis 3)
renvoie les n° de colonne mais il faut une condition de date
=Petite.Valeur(Si(Condition : date ; n° de colonne) ;1 puis 2 puis 3)
Les 1 puis 2 puis 3 (1ère, 2ème, 3ème petites valeurs) sont obtenus par Lignes()

=INDEX($A$6:$K$6;PETITE.VALEUR(SI(MOIS($C$8:$K$8)=MOIS($D$3);COLONNE($C$6:$K$6));LIGNES(C$21:C21)))

Ensuite, il faut une condition sur le nb de fois où la condition est respectée :
SI(SOMME((MOIS($C$8:$K$8)=MOIS($D$3))*1)<LIGNES(C$21:C21);"";sinon formule)
 

Pièces jointes

Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

Impeccable !

Mais ca ne serait pas marrant si il n'y avait plus rien a faire : j'ai simplifie dans mon exemple, mais j'ai en fait plus d'une annee qui est couverte.
J'ai donc plusieurs mois de janvier etc ...
Il me faut donc discriminer par mois et par annee.
J'ai encore besoin de votre aide (j'ai essaye de bidouiller, en vain)
 
Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

Bonjour,

La condition à ajouter dans les deux formules :
SI(ANNEE($C$8:$K$8)=$D$4
avec les parenthèses au bon endroit

D4 contient les n° des années, au format standard et non au format aaaa
 

Pièces jointes

Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

J'ai fait le meme procede pour recuperer les dates de depart des voitures mais je n'arrive pas a avoir un resultat convenable : j'ai la date en chiffre (qqch comme 38554) et meme changer le format de la cellule n'y fait rien.
Pourquoi la for;ule ne ramene que du texte (et pas une date)?
 
Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

Re,

C'est à cause du &""
&"" pour ne pas avoir 0 si le mois est renseigné, sans voiture ou sans pilote
Mais ça renvoie du texte
Tu l'enlèves
Et tu mets un format de date suivi de ;; (2 points virgules)
 
Re : Piocher dans un tableau (discrimination par date, non classees,ac plusieurs reponses)

J'ai le meme probleme aund la fonction recupere des nombres : ca sort en texte ... le coup des points virgule je n'ai pas reussit cette fois
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…