Formule - GRANDE.VALEUR & DECALER, Top 10 des récurrences

Hello le forum,

J'ai besoin d'un peu d'aide sur une formule.

Dans un fichier, je fais un top 10 des réccurences d'article que je trouves dans ma BDD.
Dans la BDD, j'ai une colonne Occurences avec une simple formule NB.SI, puis je viens afficher avec la formule GRANDE.VALEUR les 10 plus haute valeur (avec un filtre sur l'année).

Mon problème étant que dans la colonne de gauche des plus grandes valeur, j'aimerais y rapporter ma référence.
J'ai donc essayé d'utiliser la formule DECALER pour avoir le résultat, mais malheureusement je n'y arrive pas car l'argument ref de la formule DECALER doit être une cellule et non une plage de cellule.

J'aimerais donc, une formule pour pouvoir afficher la référence à côté du nombre d'occurence, actuellement je le fait avec une RECHERCHEX, mais ce n'est évidemment pas fiable.

J'espère que mon message est assez clair, vous trouverez ci-dessous un fichier exemple.

Merci d'avance,
Kilian

bonjour

un essai avec une vieille recette

cordialement

19kilian1906.xlsx (13.69 Ko)

Bonjour,
Une autre proposition !?
Cdlt.

Hello,

Merci à vous deux pour vos retours.

Ils m'ont tous deux l'air de bien fonctionné, je vais essayer de les adaptés à mon fichier d'origine et clôturé le sujet une fois qu'il fonctionne correctement !
Je ne connaissais pas la fonction LET et suis très heureux de désormais la connaître (du moins de nom).

Encore merci,
Kilian

Hello,

@tulipe_4 après avoir essayer ta formule sur mon fichier original, je remarque que ce n'est pas le bon résultat qui est renvoyé.
En évaluant la formule, je vois que la première SOMMEPROD ne trouves pas le bon résultat...

image



@Jean-Eric après avoir essayer la tienne, j'ai une erreur, je penses que je l'adapte mal.
Je penses que ceci doit provenir des colonnes, car ma base de données contient 55 colonnes.
La référence étant dans la colonne 21 et l'année dans la colonne 53.

Voici la formule adapté :

=LET(yr;$B$17;n;10;tbl;data;pn;FILTRE(PRENDRE(tbl;;21);PRENDRE(tbl;;53)=yr);w;UNIQUE(pn);x;PRENDRE(FREQUENCE(pn;w);LIGNES(w););y;PRENDRE(TRIERPAR(ASSEMB.H(w;x);x;-1;w;1);n;);SI.NON.DISP(ASSEMB.H(SEQUENCE(n);y);""))

Mais petite question, pourquoi utilisé :

FILTRE(PRENDRE(tbl;;21);PRENDRE(tbl;;53)=yr)

Plutôt que :

FILTRE(data[Référence];data[Année]=yr)

Merci d'avance,
Kilian

re

j'espère que tu as remarqué que j'avais modifié la formule de la colonne nbd'occurences (la B)

Bonjour,
C'est une alternative !?
Maintenant le souci doit être autre.
Un fichier représentatif, peut-être ?
Cdlt.

Bonsoir à tous !

La fonction PRENDRE renvoie un nombre déterminé de lignes ou de colonnes à partir du début ou la fin d'un tableau.

PRENDRE(tbl;;1) retournera UNE colonne à partir du début du tableau.
PRENDRE(tbl;;-1) retournera une colonne à partir de la fin du tableau.

PRENDRE(tbl;;21) retournera 21 colonnes (à partir du début du tableau) !

Pour extraire une plage particulière, la fonction CHOISIRCOLS devrait pouvoir vous permettre de sélectionner la colonne 21 :

CHOISIRCOLS(tbl;21)

Bonjour à tous,
@JFL,
Nous avons perdu Killian1906 !
Cdlt.

Bonjour à tous !

@Jean-Eric : Compte tenu des messages vides répétitifs de notre ami, il se peut que vous ayez raison.....

Hello,

Je suis bien là, mais journée chargée

J'ai des petits problèmes d'affichages des messages... Survenu après l'ajout d'un fichier.

Du coup, je réécris ce message pour la troisième fois en espérant que ça marche ...

@JBL, merci pour ces informations, j'avais en effet mal compris la formule PRENDRE.

@Jean-Eric @ tulipe-4

Si je le peux, je vous joint un fichier avec un échantillion plus représentatif de ma base de données.

Dans mon cas, j'aurais deux utilisations de cette fonction :

- Pour afficher un top10 des récurrences

- Pour afficher un top10 des plus grandes valeurs (Colonne différence en valeur), ou je viens ramener différentes informations provenant de plusieurs colonnes.

EDIT : Je viens de comprendre mon problème d'affiche, le forum n'aime pas les emoticone de windows (Windows & .)...

Merci d'avance pour votre investissement,
Kilian

Bonjour à tous,

ça serait sympa et productif quand vous proposez un fichier d'expliquer en quelques mots la solution utilisée.
Ca éviterait de devoir ouvrir tous les fichiers pour voir si l'idée qu'on a est déjà proposée
Et si c'est une formule la mettre dans le post aussi.
Bonne journée à tous
eric

Bonjour à tous !

La fonction FREQUENCE utilisée dans la proposition de Jean-Eric ne traitant que des valeurs numériques, je vous soumets une légère adaptation :

=LET(
yr;B2;
n;C2;
tbl;data;
pn;FILTRE(CHOISIRCOLS(tbl;21);CHOISIRCOLS(tbl;53)=yr);
w;UNIQUE(pn);
x;BYROW(w;LAMBDA(r;NBVAL(FILTRE(pn;pn=r))));
y;PRENDRE(TRIERPAR(ASSEMB.H(w;x);x;-1;w;1);n;);

SI.NON.DISP(ASSEMB.H(SEQUENCE(n);y);"")
)

Hello tout le monde,

De eriiic :

ça serait sympa et productif quand vous proposez un fichier d'expliquer en quelques mots la solution utilisée.

Effectivement, j'en prend bonne note, j'avais de meilleur explication dans mes trois messages vides, mais par manque de temps j'ai négligé ceci sur le suivant.

De JFL :

La fonction FREQUENCE utilisée dans la proposition de Jean-Eric ne traitant que des valeurs numériques, je vous soumets une légère adaptation

Super merci, effectivement ça fonctionne très bien.

Maintenant, si je comprend bien, pour adapter cette formule à un autre tableau contenant plus de colonne, je dois créer les variables, affecter les colonnes puis assembler le tout avec ASSEMB.H ?

Merci à tous pour vos réponses,
Kilian

Bonjour à tous de nouveau !

Maintenant, si je comprend bien, pour adapter cette formule à un autre tableau contenant plus de colonne, je dois créer les variables, affecter les colonnes puis assembler le tout avec ASSEMB.H ?

C'est absolument l'esprit de la fonction LET.

Remarque : Si le dénombrement des occurrences porte sur des valeurs numériques, il serait judicieux, car plus véloce je pense, d'utiliser la fonction FREQUENCE comme le proposait initialement Jean-Eric.

C'était plus pour les cracks de passage ici
Toi tu as bien décrit et ajouté un fichier de travail, pas de soucis

Hello tout le monde,

Après avoir essayer plusieurs formules selon vos propositions, je n'arrive pas à trouver la bonne synthaxe pour réussir à avoir le résultat que j'aimerais.
J'ai donc à nouveau besoin de vos sciences

Ci-joint vous trouverez un fichier avec le layout original, se sera nettement plus parlant.
Il y a donc trois "Sections" :

Section 1 - Dans celle-ci j'aimerais retrouver le top 10 des plus grandes valeurs négatives (les plus petites valeurs en soit).
Section 2 - Ici j'aimerais avoir le top 10 des plus grandes valeurs positives.
Section 3 - Top 10 des réccurences des références (rien à faire, solution proposé par JFL et Jean-Eric fonctionne très bien)

Pour les sections 1 et 2, j'ai ajouté les colonnes de la feuille data à renvoyer (en note), ma difficulté ici, c'est que les résultats renvoyés doivent tenir compte de l'année (Cellule C17) et le type d'inventaire (Cellule C14), qui sont tout deux une donnée dans la feuille data.

D'avance merci pour votre précieuse aide,
Kilian

Bonjour à tous !

Une proposition ?

Top 10 des valeurs négatives pour une année donnée :

=LET(
yr;C17;
n;10;
t_;data;

tbl;FILTRE(t_;CHOISIRCOLS(t_;53)=yr);
PRENDRE(TRIER(CHOISIRCOLS(tbl;42;1;7;6;21;30;33);7;1);n)

)

Top 10 des valeurs positives pour une année donnée :

=LET(
yr;C17;
n;10;
t_;data;

tbl;FILTRE(t_;CHOISIRCOLS(t_;53)=yr);
PRENDRE(TRIER(CHOISIRCOLS(tbl;42;1;7;6;21;30;33);7;-1);n)

)

Hello,

C'était si simple... Je n'ai pas du tout fait attention aux arguments de CHOISIRCOLS et n'ai pas penser à ajouter mes colonnes à afficher...

Merci pour tout !

J'ai du coup simplement ajouter le type d'inventaire également à ce top, donc la formule finale donne :

=LET(
yr;B17;
ti;B14;
n;10;
t_;data;

tbl;FILTRE(t_;(CHOISIRCOLS(t_;53)=yr)*(CHOISIRCOLS(t_;51)=ti));
PRENDRE(TRIER(CHOISIRCOLS(tbl;42;1;7;6;21;30;33);7;1);n)

)

Merci à tous pour votre aide et belle journée !
Kilian

Bonjour à tous de nouveau !

Ces formules matricielles dynamiques sont exceptionnelles n'est-ce pas ?

Je vous remercie de ce retour.

Rechercher des sujets similaires à "formule grande valeur decaler top recurrences"