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

Microsoft 365 Prendre les 10 1ère valeur d'une plage en fonction de 2 critères

Merlin258413

XLDnaute Occasionnel
Bonjour le Forum,

Je viens solliciter votre aide car j'ai une problématique que je n'arrive pas à régler.

Dans le fichier que je vous ai mis en PJ, je dois tous les mois après ma période de clôture indiquer les 10 premiers clients du mois pour chaque secteur.
Dans notre exemple, dans 'l'onglet FA, j'ai le secteur en cellule A10 = 1361 et le mois cellule A1.
Donc j'ai déjà 2 critères le mois et le secteur. Ici nous avons déjà une problématique sur le mois ca je mois que je dois utiliser dans l'onglet FA cellule A1 est sous la forme JJ/mm/aaaa et dans mon état (issu de notre ERP) la date est sous le format aaaamm.

Jusqu'à maintenant je réalisais un TCD (cf. l'onglet) issu de base qui se trouve dans l'onglet SUIVI EXPLOIT je sélectionnais mon mois et mon secteur. je trier ma colonne du mois du plus grand au plus petit; et je copiais en valeur dans l'onglet FA pour chaque secteur. cf. onglet FA ligne 20 à 30.

Ma question :

Est-il possible svp de rendre cette tâche automatique sans passer par un TCD et de travailler directement par l'onglet SUIVI EXPLOIT ?
C'est à dire qu'en fonction du mois indiqué en cellule A1 et du code secteur se trouvant en A10, A38, A62...
je trouve les 10 1er clients du mois.

Vous avez dans la plage E21 à F30 le résultat attendu pour le mois d'aout et le secteur 1361.
Le résultat doit apparaitre dans la plage A21:C30.

De plus il arrive parfois que dans les 10 1er client j'obtienne le nom (vide). ce qui signifie dans notre entreprise que c'est un client interne.
Donc est-il possible que si dans les 10 1er résultats j'ai le client (vide) alors je le remplace par clients internes.


J'espère avoir été assez clair dans mes explications et je vous remercie par avance pour votre aide.
 

Pièces jointes

  • Fiche ANALYSE.xlsm
    616.6 KB · Affichages: 19
Solution
Vous vous êtes trompé, vous avez écrit :
VB:
For Each secteur In [A258,A286,A324,A353,A381]
alors qu'il faut :
VB:
For Each secteur In [A258,A286,A324,A352,A380]
Je rappelle que le code élimine les valeurs zéro.

merinos-BernardEtang

XLDnaute Accro
Bonjour @Merlin258413 ,

J'ai essayé 2 piste.

LE QUERY PUR... pas top: il va faloir en faire un jeu pour chaque secteur/ mois

Des Formules matricielle (nouvelles dans 365) que j'encapsule dans des fonctions LAMBDA.
Elles prennent leurs données sur une table query (voir feuille TCD)

j'ai mis des LAMBDA qui prennent comme parametres les codes secteurs (1361) et codes mois (202308)



A+


Merinos
 

Pièces jointes

  • Fiche ANALYSE.xlsx
    541 KB · Affichages: 4

Merlin258413

XLDnaute Occasionnel
Bonjour tout d'abord merci pour votre réponse très rapide. Voici mes commentaires :
1- si je comprends bien je dois saisir 2 dates une date en A1 pour le remplissage de tout mon fichier et une date en E1 ==> est ce qu'il n'y a pas moyen d'utiliser que la date en A1 sous la forme de 01/mm/aaaa.
2- je suis obligé de passer par un TCD est ce qu'il a pas moyen de travailler directement par l'onglet SUIVI EXPLOIT.
3- je ne comprends pas les formules sont grisées et il met pas possible de les consulter de les copiers sans voir la formule s'effacer.
Encore merci
 

merinos-BernardEtang

XLDnaute Accro
non:

les query qui assemble les données: il me faut avoir le total par client /secteur/mois
(cela permet aussi de se lier à une source extérieure)

Les formules matricielles sont des formules qui sont dans UNE cellule mais qui peuvent repondre dans plusieurs cellules (grises) .
J'en ai mis en VERT.

Le tout est compatible SharePoint...

Tu peux évidement former 202308 a partir d'une date...
Par exemple avc une LAMBA(madate; YEAR(madate)& RIGHT("0"& MONTH(madate;2))
 

Merlin258413

XLDnaute Occasionnel
je vous remercie pour tous vos efforts mais je n'arrive pas à exploiter les données. Les 2 dates et surtout mettre les formules par exemple A49:C58.
Est ce que par hasard il y aurait un moyen en VBA

 

ALS35

XLDnaute Impliqué
Bonjour à tous,
Un essai en B21, formule unique et dynamique pour Excel 365 :
VB:
=LET(u;SUBSTITUE(UNIQUE(Base[[ Nom client]]);0;"");
s;BYROW(u;LAMBDA(p;SOMME.SI.ENS(Base[Production];Base[[ Code secteur]];A10;Base[ [ Mois AAAAMM] ];CNUM(C3&TEXTE(A1;"mm"));Base[[ Nom client]];p)));
PRENDRE(TRIER(ASSEMB.H(SI(u="";"Clients internes";u);s);2;-1);10))

Et j'ai été obligé de supprimer les parenthèses du titre de la colonne Mois :
Mois (AAAAMM) devient Mois AAAAMM
Cordialement
 

Pièces jointes

  • Fiche ANALYSE Modifié.xlsm
    617.3 KB · Affichages: 10

Merlin258413

XLDnaute Occasionnel
Merci ALS35 je peux toujours pas exploiter cette formule car je n'arrive pas à la recopier pour les autres secteurs par exemple A49:C58.

"Et j'ai été obligé de supprimer les parenthèses du titre de la colonne Mois :
Mois (AAAAMM) devient Mois AAAAMM" malheureusement lorsque je vais éditer le mois prochains les données à fin septembre je vais écraser l'entête je préconise donc à la place si pas d'autres solutions de créer une colonne
 

Discussions similaires

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