Matching selon Filter, textjoin et Cie

• Faire apparaître les références qui sont dans "TENDANCE", mais pas du tout dans "STOCK" (en gros, c'est tendance et c'est pas du tout dans le stock. C'est peut-être le plus important, c'est le côté "non matching" du truc). ça par contre je bloque. KO

mais alors là ce n'est plus du tout la même chose !

la base a été construite sur la présence des références en STOCK

cette fois-ci il faut faire l'inverse, partie de TENDANCE

=query(arrayformula({TENDANCE!U2:U\TENDANCE!T2:T\iferror(match(TENDANCE!U2:U;STOCK!F:F;0);0)});"select Col1,Col2 where Col3=0 ")

Yes nickel pour la Not Null j'avais trouvé effectivement en me basant sur l'absence de "notes".

Pour la seconde condition, merci pour le tips. Y a-t-il un moyen (en scratch ci dessous) de le mettre en queue de la précédente query (à la suite donc), et d'y aggréger le numéro de rayon (qui devrait passer si je comprends bien de "1 - OPEL" à "1") ? SI proche du but 😍

image

Comme il faut que le nombre de colonnes soit identique, je joue avec des colonnes vierges (R et S)

={query( {Base!A:V} ;"select Col5, Col1, Col2, Col3, Col8 where Col9 is not null";1);query(arrayformula({regexextract(TENDANCE!B2:B;"\d+")\TENDANCE!R2:U\iferror(match(TENDANCE!U2:U;STOCK!F:F;0);0)});"select Col1,Col5,Col4,Col3,Col2 where Col6=0 ")}

Nickel, merci, ok je ferai attention pour respecter avec la données finale des colonnes vides en R et S. Je peux y ajouter la dimension note à nouveau sur cette TENDANCE ? Un peu comme la première partie Query, uniquement si note supérieure à X ou X. Si j'ai compris je suis à rebours en terme de comptage de colonne (je pars de la droite vers la gauche ?)

image

Si j'ai compris je suis à rebours en terme de comptage de colonne (je pars de la droite vers la gauche ?)

non, il faut juste respecter l'ordre des données

comme j'ai pris

TENDANCE!B2:B;"\d+") 
puis TENDANCE!R2:U 
puis la recherche qui si elle n'aboutit pas donne 0

je mets dans l'ordre voulu la

  • B (Col1) uniquement le chiffre,
  • puis la S (Col5) et U (Col4) qui sont vides juste pour respecter le nombre de colonnes
  • puis U qui est la référence
  • puis T qui est la désignation

Merci pour cet éclairage. Donc pour remonter aux notes, je :

• ne change pas TENDANCE!B2:B;"\d+") puisque ça c'est ok (ça me donne le rayon et c'et considéré comme Col1)

• change TENDANCE!R2:U puisque je dois appeler des colonnes "plus à gauche", TENDANCE!H2:U par exemple ? et finis par un where de ce type :

where (Col6=0 and ColX>=9)"}

Par contre je dois changer la numérotation des Col du coup ?

where (Col6=0 and ColX>=9)"}

pourquoi >=9 puisque dans cette seconde partie il n'y pas pas de note !

Non en fait c'est la partie de la query qui dit pas de stock, mais tendance (donc une note).

C'est bon ! J'ai trouvé la dimension TENDANCE!R2:U qui était à étendre (ex : TENDANCE!G2:U) pour pouvoir récupérer les notes. J'ai testé, pas à pas, les Col pour saisir les colonnes qui m'intéressent.
Ça marche séparément :

=query(arrayformula({regexextract(TENDANCE!B2:B;"\d+")\TENDANCE!G2:U\SIERREUR(EQUIV(TENDANCE!U2:U;STOCK!F:F;0);0)});"select Col1, Col16,Col15 where (Col17=0 and Col8>=9)")

image

Par contre quand je l'accole comme avant ça ne marche plus 😓 :

={query( {Base!A:V} ;"select Col5, Col1, Col2, Col3, Col8 where (((Col8=1 and Col3<=3 and Col4 Is Null) or (Col8=2 and Col3<=3 and Col4 Is Null) or (Col8=2 and Col3<=3 and Col4 Is Not Null) or (Col8=2 and Col3>=3 and Col4 Is Null) or (Col8=2 and Col3>=3 and Col4 Is Not Null)) and Col15>=9)";1);query(arrayformula({regexextract(TENDANCE!B2:B;"\d+")\TENDANCE!G2:U\SIERREUR(EQUIV(TENDANCE!U2:U;STOCK!F:F;0);0)});"select Col1, Col16,Col15 where (Col17=0 and Col8>=9)")}

image

Parce que la première partie donne 5 colonnes

select Col5, Col1, Col2, Col3, Col8

et la secondes seulement 3

select Col1, Col16,Col15

... il faut ajouter 2 colonnes à cette seconde partie (voilà pourquoi j'utilisais 2 colonnes vierges)

Merci pour ces retours :-)

Par contre j'ai une erreur dans le données produite. En effet l'onglet "base" m'agrège des tendances à des références qui n'en sont pas une. Exemple avec Cochon, qui un certes une problématique de stock mais qui n'est pas TENDANCE pour autant. Cela fausse par conséquent le résultat. Une idée ?

https://docs.google.com/spreadsheets/d/1BuQDnozu5oWEn2TwPIpLfQfQqipxKfBwCh6d5Ka_fds/copy

Pour moi, base est "carrée"

image

avec TENDANCE

image

et STOCK

image

Par contre, je ne comprends pas les colonnes de droite (T et U) de TENDANCE.

Si cela n'a rien à voir avec la ligne, il faut les mettre ailleurs (sinon en cas de tri ou de suppression cela affecte les 2 tableaux)

Argh jeune padawan que je suis, j'aurais du le préciser (et être plus clair). En fait le point de comparaison se fait la dessus : entre T et U de TENDANCE et F et G de STOCK. Fet U sont les Références (le matching se fait la dessus), et T et G la Désignation.

En fait B et C de TENDANCE sont un peu les dimensions des Références. On pourrait dire par exemple : Ref 8989889 (F ou U donc), Pêche (désignation), qui appartient au Rayon Frais et au Sous-Rayon fruit. Ce qui est tendance et à comparer serait donc la référence (les pêches sont de saison) mais pas vraiment le rayon et le sous rayon.
Désolé pour ma maladresse de départ, j'aurais dû te faire un use case plus clair.

Pourquoi d'un côté on a ceci

10 - LADA    48 - LCD    CABLE    403239

et de l'autre

7    24    403239    Cable

De toute façon, tu as les cartes en main, on a vu :

  • comment extraire avec regexextract et \d+ une donnée numérique
  • comment concaténer 2 données pour utiliser dans une recherchev (ou vlookup) avec &"~"&
  • comment juxtaposer des colonnes avec \
  • comment consolider les données des 2 tables avec arrayformula et vlookup en utilisant un identifiant concaténé
  • comment effectuer une query avec ColX

Bon courage pour la suite...

Rechercher des sujets similaires à "matching filter textjoin cie"