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

rassembler des infos dans une liste

  • Initiateur de la discussion pphilippe
  • Date de début
P

pphilippe

Guest
Bonjour,
Bravo à tous les experts! J'ai un souci ( sinon je ne serai pas là )
J'ai ( par exemple) dans la colonne C5 une liste de numéro non consécutifs

exemple l2c5=120; l10c5=121;l40c5=122 etc...
comment puis je retrouver ces valeurs et les afficher ( je continue sur le même exemple : L2C1=120;L3C1=121;L4C1=122 etc...) sans passer par du code VBA ?



merci d'avance
 
P

pphilippe

Guest
Oui c'est bien le cas, désolé !
je teste, je teste, pas facile parce qu'il y a toujours des bricoles auxquelles je ne pense pas à temps. du genre " éviter les doublons dans le regroupement borné de date à date...

QUESTION : est ce que toutes les formules non matricielles peuvent être transformées en formules matricielles ?
Si la réponse est non, comment savoir celles qui le peuvent ? Existe 'il un répertoire, ou une méthode pour le savoir ?

pphilippe
 
M

Monique

Guest
Bonjour,

à la question sur les formules matricielles, la réponse est oui (ouf)
Mais ça ne sert à rien, sauf à compliquer la validation.
Une vraie matricielle validée de façon classique donnera des résultats faux, ou bien un signal d'erreur.
Une simple somme calculant sur une matrice n'a pas besoin d'être validée en matriciel, mais on peut le faire, le résultat sera identique.
=SOMME(G1:G8) a le même résultat que {=SOMME(H1:H8)}
Sommeprod, qui calcule sur des matrices, n'a pas besoin de la validation en matriciel.
Ces deux-ci font la même chose, la 1ère est à valider de façon classique, l'autre non.
=SOMMEPROD((B3:B9>E2)*((A3:A9=D2)))
=SOMME((B3:B9>E2)*((A3:A9=D2)))
Celles-ci sont à valider en matriciel :
=SOMMEPROD(SI(I2>0;(G2:G6=H2:H6)*1;0))
=SOMMEPROD(SI(((B12:AF12)=plageA)*((B7:AF7)=1);plageB))
Pas celle-ci
=SOMMEPROD(NB.SI(B12:AF13;plageA)*(plageB))
 
P

pphilippe

Guest
Bonsoir,
Merci pour le cours sur les matrices, j'use de la bande passante mais je progresse

Maintenant pour ce qui est de mon problème en fait il faudrait que je croise la formule qui se trouvait dans "report_nombreV5" à savoir :

{=SI(MIN(SI Code>E3;Code))=0;"";MIN(SI(Code>E3;Code)))}

Elle me donnait satisfaction sauf qu'il faudrait la borner sur les cellules
F1 & F2 de "report_datesV1"

Je tourne autour mais je n'arrive pas à conclure, en fait trouver la solution des problèmes c'est avant tout poser les bonnes questions non ?

Maintenant il faut me dire quand j'abuse sinon je n'oserai plus en poser des questions !! merci merci

pphilippe
 
P

pphilippe

Guest
Et mais est ce la dernière question ?

Je trouve les formules matricielles "fragiles" en ce sens que dès qu'on les sélectionne elle perde rapidement leur caractère matriciel ( caractérisé par {} et se transforment en vulgaires formules et à ce moment là plus moyen de les re-rendre matricielles, on peut toujours appuyer sur contrôle, majeur, entrée , c'est fini, faut faire "contrôle z "

Y a t'il un truc pour les bloquer en matricielle ?

pphilippe
 
M

Monique

Guest
Bonsoir,

Tu as de la chance, j'étais en plein dans le sujet.
Tant que tu as une réponse, c'est que tu n'abuses pas.
Mais je ne suis pas encore sûre d'avoir compris.
La 1ère formule te donnait des nombres sans doublons.
La deuxième te donnait les dates avec les doublons et entre 2 bornes

Dans le fichier joint, tu n'as que des dates, comprises entre 2 bornes.
Une formule te les donne avec doublons, l'autre sans doublons.
 

Pièces jointes

  • ReportDatesBornesV1.zip
    6.2 KB · Affichages: 38
M

Monique

Guest
Re,

Je n'avais pas vu le message de 22:56
Si, il y a moyen de les re-rendre matricielles.
Ctrl et z, c'est déjà pas mal et c'est (assez) rapide.
Sinon, tu mets ton curseur n'importe où dans la barre de formule et tu valides par crtl, maj et entrée. (c'est moins rapide)
Les bloquer, je ne sais pas.
 
P

pphilippe

Guest
Je ne sais pas si l'explication qui suit va t'éclairer :
Voilà je dois faire à intervalle régulier une déclaration ( donc récupérer des numéros dans une liste ) ces numéros correspondent chacun à une commande de marchandise ( donc il peut y avoir plusieurs marchandises pour le même numéro, un peu comme un bon de livraison si tu veux )

donc le formulaire ne doit comporter QUE les numéros correspondant aux sorties du mois ( colonne A par exemple)+ la date ( colonne B par exemple ) les volumes* correspondant à ces sorties ( colonne C par exemple ) toutes ces données sont enregistrées en ordre totalement aléatoire dans une base de donnée classique où il faut les récupérer
par contre
un numéro = un jour = plusieurs marchandises = un montant total ou un volume *

voili voilou
je ne sais pas si c'est plus clair ?
pphilippe
merci pour tout
 
M

Monique

Guest
Re,

Résumé de ce que j'ai compris et de ce que fait le fichier. (après, je dors)

Dans le fichier que je viens de poster, la colonne C, intitulée "Code", correspond à ce que tu appelles "numéro"
Ces codes ne sont pas forcément des nombres, on peut mettre n'importe quoi.
Si on retrouve le même code à des dates différentes, ce n'est pas gênant, on peut changer.
La colonne B, intitulée "N°", ne sert qu'à compter le nombres de fois où une même date apparaît en colonne A
"Ne sert que" mais c'est avec cette colonne que tu réussis à récupérer toutes tes données mensuelles.
En colonne F, tu as le report de toutes les dates d'un mois choisi.
En colonne G, re-intitulée "N°", on compte le nombre de fois où une même date apparaît en colonne F
Colonnes B et G ont les mêmes résultats pour les mêmes dates. (heureusement)
La colonne H récupère, dans la plage des codes, le code qui correspond et à la date et au N° de la date
La colonne I fait le même genre de récupération, mais dans la plage des produits.

Si tu as plusieurs fois le même jour, plusieurs fois le même code, plusieurs fois le même code pour le même jour, tu récupères toutes ces plusieurs fois dans les colonnes F G H et I.
Et ces colonnes F G H et I n'ont que les données du mois choisi.

C'est ça ou c'est autre chose ?
 
P

pphilippe

Guest
C'est tout à fait cela Monique,
Même que je viens d'adapter les formules dans mon fichier de travail et que cela renvoie un message du style #N/A mais à mon avis c'est plus les quelques neurones que j'avais porté avec moi qui me lachent que les formules qui m'ont l'air très astucieuses )
j'essaierai demain, serais peut être plus frais
merci pour tout, c'est un nouvel horizon qui s'ouvre
pphilippe

à propos je me demandais si tu dormais un peu, j'ai ( un début) de réponse
Bonne nuit
 
P

pphilippe

Guest
Non je n'ai pas tout à fait fini et je ne suis pas tout à fait au résultat, mais j'en suis très proche et j'ai maintenant plus d'outils.
et je devais rendre ma copie avant le 10 du mois.
Merci surtout à Monique pour son aide précieuse )
pphilippe
 
P

pphilippe

Guest
Il ose encore demander ...
dans le fichier "report_nombreV5"
si je veux borner la colonne E2:E9 entre deux dates ?
Ca c'est pour Monique si elle n'en a pas encore assez !!
merci
pphilippe
 

Pièces jointes

  • Report_nombresV5.zip
    5.7 KB · Affichages: 21
  • Report_nombresV5.zip
    5.7 KB · Affichages: 22
  • Report_nombresV5.zip
    5.7 KB · Affichages: 23
M

Monique

Guest
Bonsoir,

Je ne vois pas pourquoi faire dans ce sens-là, ça me paraît être un raisonnement à l'envers.
Bref, je réussis à sortir les codes entre 2 dates sans doublons mais, avec doublons, je ne réussis pas, ce qui fait qu'il va te manquer des données de la plage "produits"
Et j'ose supposer que tu veux les codes avec doublons...
 
P

pphilippe

Guest
Et bien non !!
Parce que , grace à tes formules, j'ai réussi à sortir une liste qui donne tous les codes et les articles qui vont avec ( grace à l'astuce
{index(liste;equiv(code1&code&;liste1&liste2;0)} ) en matriciel et ça marche, mais ce n'est pas borné par les dates, donc j'ai toute la liste des codes, mais ce n'est pas grave, au contraire.

Mais au final, et pour ma déclaration, je dois, tous les mois récapituler tous les codes DU MOIS :
Je rappelle que :
un code = une expédition = un jour
il peut y avoir deux expéditions par jour

donc j'ai besoin de la liste des codes mais sans les doublons, puis un simple "index_équiv" ou "recherchev" me donnera les jours correspondant


Qu'est ce qui est le plus élégant ou moins gourmand en mémoire ?
"recherchev" ou " index_equiv ?"

merci pphilippe
 
M

Monique

Guest
Re,

Ci-joint les codes sans doublons avec des bornes de dates.
=SI(MIN(SI(Code>E7;SI(MOIS(Date)=ref;Code)))=0;"";MIN(SI(Code>E7;SI(MOIS(Date)=ref;Code))))
(formule matricielle, pour changer)

Je ne sais pas si index_equiv est plus gourmand que recherchev, mais il est plus pratique.
On n'est pas obligé de partir de la colonne de gauche.
Par contre, tu ne remplaceras pas cette formule (gourmande, elle)
{index(liste;equiv(code1&code&;liste1&liste2;0)} par recherchev
 

Pièces jointes

  • Report_nombresV8.zip
    5.5 KB · Affichages: 40

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…