Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Dans une première table, j'ai un regroupement de code article en famille articles pour calculer les consommations de matières.
Dans une seconde table, j'ai les quantités de stocks par articles et non pas par famille.
Pour faire des rapprochements cela n'est pas simple pour réaliser un tableau. Je souhaiterai avoir un champs me donnant les quantités de stock par familles mais sans perdre l'info du code article.
vous trouvez ci-joint une appli test avec un tableau simple permettant de comprendre.
Pour info, j'ai essayé la formule Mapping et Applymap, mais c'est très flou pour moi
Merci de votre aide
Fabien
Bonjour
essaye ceci
FAIT:
LOAD art,
qte,
typeln
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is [bdd]);
ART:
LOAD art,
LIB
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is art);
Join(ART)
LOAD art,
// si cellule > 0 reprend la valeur de la cellule si non prend la valeur du champ art :
if(len(trim(categ))>0,categ,art) as categ
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is categ);
Bonjour
essaye ce script ci dessous
plutôt que applymap ou mapping j epense que ce que tu cherches a faire c'est joindre tes tables entre elles pour en avoir qu'une seule et non 4 tables avec pour clé le champ ART
Pour cela tu peux utiliser la fonction join
il existe aussi les fonctions leftjoin et rightjoin
///////////////
final:
LOAD art,
qte_stk
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is [bdd stk]);
conso:
join(final)
LOAD art,
qte_conso
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is [bdd conso]);
drop table conso;
categ:
join(final)
LOAD art,
categ
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is categ);
drop table categ;
lib:
join(final)
LOAD art,
LIB
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is art);
drop table lib;
Bonjour,
j'ai essayé le script, mais ça ne répond pas tout à fait à ma demande. dans mon appli, j'ai déjà regroupé les infos stk+conso.
le problème c'est qu'il me manque l'info catégorie de famille dans la table stock ou articles
cdlt
Bonjour
Est ce que vous pouvez envoyer en exemple le fichier excel de test ? je regarderai
Bonjour,
merci du coup de main
ci joint le fichier excel + l'appli.
j'ai finalement fait un join entre ma table art et categ. puis un "if" dans ma dimension. ça à l'air de fonctionner.
Cependant, s'il y a quelque chose de plus propre faire dans le script je suis preneur !
cdlt
Bonjour
essaye ceci
FAIT:
LOAD art,
qte,
typeln
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is [bdd]);
ART:
LOAD art,
LIB
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is art);
Join(ART)
LOAD art,
// si cellule > 0 reprend la valeur de la cellule si non prend la valeur du champ art :
if(len(trim(categ))>0,categ,art) as categ
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is categ);
Bonjour,
Merci ça fonctionne bien.
Puis-je vous poser une autre question sur le même principe mais qui avec un autre exemple.
j'ai supprimé dans l'onglet "categ", le code article étant aussi une catégorie. ça donne un résultat différent.
Pensez vous avoir une idée sur le script ?
Merci d'avance
Re,
En effet si vous faites çà çà ne marchera plus , mais je ne comprend pas bien la finalité du coup.
Est ce que dans la table categ tous les articles ont une catégorie ?
Et est ce que vous voulez comme règle générale que si un art n'a pas de catégorie alors sa catégorie = code art ?
Re,
j'ai les deux cas de figures dans mes applications. Je garde cette exemple pour savoir s'il existe une formule afin de l'adapter à une application.
Dans ma seconde application, si on garde cet exemple, je souhaite effectivement que si un article n'a pas de catégorie alors sa catégorie = code art.
Dans la table categ, tous les articles ont une catégorie, cependant, il existe certain articles qui existe dans la table article mais pas fans la table categ. il s'agit de ceux la qui doivent avoir categ = code article.
Cdlt
Bonjour
Ok je penses avoir compris. Du coup , il faut d'abord joindre la table categ à la table Art , puis appliquer le traitement sur le champs categ, bref le faire une fois les tables jointes et non avant.
On va essayer avec un preceding load comme ceci : ( mais pas sur que ca marche du premier coup , sinon on le fera avec une table provisoire
//////////////////////
FAIT:
LOAD art,
qte,
typeln
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is [bdd]);
ART:
//preceding load
load*,
// si cellule > 0 reprend la valeur de la cellule si non prend la valeur du champ art :
if(len(trim(categ))>0,categ1,art) as categ
;
LOAD art,
LIB
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is art);
drop field categ1;
Join(ART)
LOAD art,
categ as categ1
FROM
[C:\Users\pirot\Desktop\test.xlsx]
(ooxml, embedded labels, table is categ);