XL 2016 Concatener avecPetitesValeurs en matriciel mais sans doublons

Etxezarreta

XLDnaute Nouveau
Rebonjour,
Je souhaite concatener dans une cellule les valeurs de cellules qui satisfont une condition:
la condition est en cellule G2 et le résultat retourné en H2 du fichier joint.
Cela fonctionne, mais je souhaiterait ne pas prendre en compte les valeurs en doublon. La formule est la suivante: {=SIERREUR(INDEX(tabTableConges[Identificacion];PETITE.VALEUR(SI(tabTableConges[Semana]=$G$2;LIGNE(tabTableConges[Semana]);"");1)-1)&"/";"")&SIERREUR(INDEX(tabTableConges[Identificacion];PETITE.VALEUR(SI(tabTableConges[Semana]=$G$2;LIGNE(tabTableConges[Semana]);"");2)-1)&"/";"")&SIERREUR(INDEX(tabTableConges[Identificacion];PETITE.VALEUR(SI(tabTableConges[Semana]=$G$2;LIGNE(tabTableConges[Semana]);"");3)-1)&"/";"")&SIERREUR(INDEX(tabTableConges[Identificacion];PETITE.VALEUR(SI(tabTableConges[Semana]=$G$2;LIGNE(tabTableConges[Semana]);"");4)-1)&"/";"")}

Il faudrait que je teste chaque valeur avec un NB.SI en matriciel ou qq chose comme cela peut-être? Si NB.SI( cellules precedentes;valeur testee) des cellules precedentes >0 then "" ..Mais ca rallongerait enormemente je pense.
Merci d'avance!
Etxe.
 

Fichiers joints

chris

XLDnaute Barbatruc
Bonjour

Un formuliste va surement passer par là : en général on combine avec l'ajout dans la formule d'un pouillème aux valeurs.

Puisque tu as 2016, je propose une solution PowerQuery qui pourrait même classer le résultat par ordre alpha...
 

Fichiers joints

Etxezarreta

XLDnaute Nouveau
Chris bonsoir,
C'est une idée extrêmement intéressante, pour mon application cependant je ne vois pas comment le gérer: en effet j'aurai à multiplier les cellules "cibles" et donc les requettes n'est ce pas? 52 par ans X 5 ans=260 requetes : or je ne peux pas créer ttes les requettes à l'avance, donc il me semble qu'il faudrait les créer par VBA lors de la création d'une semaine, puis passer les valeurs des cellules de référence qui servent au tri (Choix) en paramètre de la formule de langage M non?
= Table.SelectRows(#"Lignes filtrées3", each ([Semana] = Choix)): je ne sais pas comment affecter des valeurs différentes au paramètre "Choix", c'est à dire G2 puis la semaine après G3 et ainsi de suite jusqu'a faire les 260 lignes.

Je te joins le fichier que tu m'as envoyé, au cas ou!
En tout cas un grand merci pour ton idée, et bonne soirée.
Etxe.
 

Fichiers joints

chris

XLDnaute Barbatruc
RE
  1. Soit tu veux requêter une semaine à la fois et il suffit de choisir la semaine dans la cellule Choix puis d'actualiser
  2. soit tu veux un tableau de résultat qui traite automatiquement toutes les semaines présentes et qui s'enrichira dont au fil du temps.
    Résultat que tu peux filtrer, éventuellement avec un segment, si tu ne veux pas tout voir...
  3. soit tu veux un tableau de résultat qui traite une liste limitée de semaines et c'est un mix entre les 2 solutions

2ème solution ajoutée au classeur ci-joint
 

Fichiers joints

Etxezarreta

XLDnaute Nouveau
Bonjour Chris,
Très belle solution, je suis en train de le faire, mais je ne parviens pas à indiquer Etat0 comme une source de données pour fusionner les requêtes.
Pourrais-tu m'aider?
Merci encore.
Etxe.
 

chris

XLDnaute Barbatruc
RE

En fait on pourrait couper le requête là et travailler avec deux requêtes.

Mais sinon on nomme donc l'étape Etat0 pour faire court, on demande une fusion de la requête avec elle-même et, aussitôt dans la barre de formule, on change les deux références à la requête pour remplacer par Etat0. Puis on enchaîne.
 

chris

XLDnaute Barbatruc
RE

Super cette solution. C'est effectivement direct et simple.

Merci à toi de cet échange fructueux.
 

Discussions similaires


Haut Bas