Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
J'ai une problématique, je dois réaliser une comparaison de données logistique provenant de plusieurs outils différent.
L'un des outil me met à disposition des fichiers plats (type CSV).
Le problème est que dans le fichier plat, tout est regrouper dans un même colonne, répartit par position.
De plus, l'outil dispatch même les données sur 2 lignes (car il y a trop de données, donc il répartit sur 2 lignes) avec un début commun (n° séquence) sur 7 caractères , suivant de 4 caractères non important, et un n° sur 3 désignant l'entête ou les caractéristiques. (sur la 1ère ligne = 110 => entête , sur la 2ème ligne = 111 => caract)
Je souhaiterais concaténer ces 2 lignes, pour n'en faire qu'une et pouvoir chainer ces infos avec SAP qui lui me ramène bien sur une ligne
Voici un exemple :
1- 0000001HL17110013DSA80000480 90LIPCNF0000050000000000F0000003 00000000000000000000000000000000000000000000000000000000000000000026669 20161017201610182018101700000000000000000 00000000000000000000 |
2 - 0000001HL17111 FR04 300Upload LOGIROSS L1A 00010 01C12A16 1010 A0000001 L02476865 430BA13 |
3 - 0000002HL17110013DSA80000480 90LIPCNF0000050000000000F0000003 00000000000000000000000000000000000000000000000000000000000000000026669 20161017201610182018101700000000000000000 00000000000000000000 |
4 - 0000002HL17111 FR04 300Upload LOGIROSS L1A 00010 01C12A16 1010 A0000001 L02476860 430BA17 |
5 - 0000003HL17110013DSA80000480 90LIPCNF0000050000000000F0000003 00000000000000000000000000000000000000000000000000000000000000000026669 20161017201610182018101700000000000000000 00000000000000000000 |
6 - 0000003HL17111 FR04 300Upload LOGIROSS L1A 00010 01C12A16 1010 A0000001 L02476859 430BA25 |
Dans l'exemple il y a 6 lignes dans le fichier, mais fonctionnellement il n'y en a que 3. (j'ai mis : 1- / 2- / 3-, ... pour repérer les lignes car ça ne rend pas bien)
Si on décompose la 1ère ligne
0000001 (n° séquence) sur 7 caractères
HL (code application) sur 2 caract.
17 (code interface) sur 2 caract
110 (Rubrique) Sur 3 caract
Ensuite, ce sont les données pures (Dépôt, Article, Lot, Client , ...)
J'ai besoin que QlikView concatène les 2 lignes pour n'en faire qu'une.
Avez-vous des pistes pour m'aider svp ?
Si besoin de plus d'information, dîtes le moi j'essayerai d'être plus clair et plus précis.
Merci par avance
Yann
Bonjour Yann,
Il y a 2 solutions, la 2ème étant plus simple :
SOLUTION 1
LOAD
Séquence,
[Code application],
[Code interface],
Mid([Rubrique et Données], 1, 3) as [Rubrique entête],
//Mid([Rubrique et Données], 4, 191) as [Données entête],
...
Mid([Rubrique et Données], 195, 3) as [Rubrique caract.],
//Mid([Rubrique et Données], 198, 200) as [Données caract.]
... ;
LOAD
[@1:7] as Séquence,
[@8:9] as [Code application],
[@10:11] as [Code interface],
Concat([@12:n]) as [Rubrique et Données]
FROM
Group By [@1:7], [@8:9], [@10:11];
SOLUTION 2
LOAD
[@1:7] as Séquence,
[@8:9] as [Code application],
[@10:11] as [Code interface],
// [@12:14] as Rubrique,
[@15:207] as [Données entête],
// [@208:214] as Séquence_tmp,
// [@215:216] as [Code application_tmp],
// [@217:218] as [Code interface_tmp],
// [@219:221] as Rubrique_tmp,
[@222:n] as [Données caract]
FROM
(fix, codepage is 1252, no labels, record is 2 lines);
Bonjour Yann,
Il y a 2 solutions, la 2ème étant plus simple :
SOLUTION 1
LOAD
Séquence,
[Code application],
[Code interface],
Mid([Rubrique et Données], 1, 3) as [Rubrique entête],
//Mid([Rubrique et Données], 4, 191) as [Données entête],
...
Mid([Rubrique et Données], 195, 3) as [Rubrique caract.],
//Mid([Rubrique et Données], 198, 200) as [Données caract.]
... ;
LOAD
[@1:7] as Séquence,
[@8:9] as [Code application],
[@10:11] as [Code interface],
Concat([@12:n]) as [Rubrique et Données]
FROM
Group By [@1:7], [@8:9], [@10:11];
SOLUTION 2
LOAD
[@1:7] as Séquence,
[@8:9] as [Code application],
[@10:11] as [Code interface],
// [@12:14] as Rubrique,
[@15:207] as [Données entête],
// [@208:214] as Séquence_tmp,
// [@215:216] as [Code application_tmp],
// [@217:218] as [Code interface_tmp],
// [@219:221] as Rubrique_tmp,
[@222:n] as [Données caract]
FROM
(fix, codepage is 1252, no labels, record is 2 lines);
Hi,
Sebastien's solutions will work for you, if you need more assistance; please sample data and desired output in excel.
Merci pour votre réponse Sébastien, je vais tester cela et je vous retiens informé du résultat.
Sébastien,
Un grand merci pour votre aide,
J'ai mis en place la solution 1 et cela répond parfaitement à ce que je voulais réaliser.
Merci encore.
A bientôt.
Yann