Salut,
J'ai du mal à diviser les colonnes et à les transposer en en-tête et en valeur. Besoin d'aide ici pour écrire le code.
Mon tableau de données comporte quatre colonnes : article, numéro de pièce, numéro de commande et quantité.
Je dois diviser le numéro de commande et le transposer comme en-tête dans une nouvelle colonne et diviser la colonne Quantité, le transposer dans la cellule respective.
Je joins ici mon tableau de données et le résultat requis pour votre référence.
Je sais que cela peut être fait en utilisant Tabulate (). Mais je ne veux pas l'utiliser car j'ai besoin que ma table de données de résultats puisse être liée à la table de données d'origine pour un traitement ultérieur.
</CODE></PRE><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Capture.PNG" style="width: 999px;"><span class="lia-inline-image-display-wrapper" image-alt="Capture.PNG" style="width: 999px;"><img src="https://us.v-cdn.net/6038925/uploads/images/35536i8BFFBFE73DC658B5/Capture.PNG" role="button" title="Capture.PNG" alt="Capture.PNG" /></span></SPAN></SPAN></P><P> </P></LINGO-BODY><LINGO-LABS id="lingo-labs-415521" slang="en-US" mode="NONE"><LINGO-LABEL>Mélange et nettoyage des données</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-415545" slang="en-US" mode="NONE">Re : Diviser une colonne et la transposer comme en-tête</LINGO-SUB><LINGO-BODY id="lingo-body-415545" slang="en-US" mode="NONE"><P>Merci Jim</P><P>Merci TS</P></LINGO-BODY><LINGO-SUB id="lingo-sub-415540" slang="en-US" mode="NONE">Re : Diviser une colonne et la transposer comme en-tête</LINGO-SUB><LINGO-BODY id="lingo-body-415540" slang="en-US" mode="NONE"><P>Salut,</P>
<P>Je ne suis pas sûr de comprendre votre problème : si vous effectuez une simple division de la colonne Quantité par "Numéro de commande" et un regroupement par "Article" et "Numéro de pièce", vous obtenez le résultat comme indiqué dans votre message, à l'exception des valeurs manquantes. sont codés comme "manquants" et non "0".</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Thierry_S_0-1630733524994.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Thierry_S_0-1630733524994.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="Thierry_S_0-1630733524994.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/35539i906F34321961B54E/Thierry_S_0-1630733524994.png" role="button" title="Thierry_S_0-1630733524994.png" alt="Thierry_S_0-1630733524994.png" /></span></SPAN></SPAN></P>
<P>Avec un simple recode à partir des attributs de normalisation, vous pouvez définir toutes les valeurs manquantes sur zéro.</P>
<P>En supposant que je n'ai pas compris votre demande initiale, pourriez-vous préciser quelle partie du processus n'a pas fonctionné pour vous ?</P>
<P>Meilleur,</P>
<P>TS</P></LINGO-BODY><LINGO-SUB id="lingo-sub-415536" slang="en-US" mode="NONE">Re : Diviser une colonne et la transposer comme en-tête</LINGO-SUB><LINGO-BODY id="lingo-body-415536" slang="en-US" mode="NONE"><P>Ce que vous voulez peut être accompli en utilisant le</P>
<P>Tableaux => Diviser</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="txnelson_0-1630733183189.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="txnelson_0-1630733183189.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="txnelson_0-1630733183189.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/35537i8E626CF1FE4F430D/txnelson_0-1630733183189.png" role="button" title="txnelson_0-1630733183189.png" alt="txnelson_0-1630733183189.png" /></span></SPAN></SPAN></P>
<P> </P>
<P>Vous trouverez ci-dessous un script simple prenant le JSL fourni par la plate-forme Split, puis en ajoutant simplement le JSL extrait de la fonctionnalité Recode.</P>
<PRE><CODE class=" language-jsl">Names Default To Here( 1 );
dt = Current Data Table();
// Get the column names that will need to recoded to 0 if missing
Summarize( dt, colnames = by( :Order Number ) );
// Do the simple split to transform the data table
dtSplit = dt << Split(
Split By( :Order Number ),
Split( :Quantity ),
Group( :Item, :Part Number ),
Sort by Column Property
);
// Loop across all split columns and recode missing values to zeros
For( i = 1, i <= N Items( colnames ), i++,
dtSplit << Begin Data Update;
dtSplit << Recode Column(
As Column( dtSplit, colnames[i] ),
{Map Value( _rcOrig, {., 0}, Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Column( As Column( dtSplit, colnames[i] ) )
);
dt << End Data Update;
);