Question d'analyse de chaîneChère Communauté,
Je reçois des données avec des informations d'identification dans 1 cellule.
Names Default to Here(1);
dt = New Table("Sample",
add rows(2),
New Column( "Field_9630", Character, "Nominal" )
);
dt:Field_9630 << Set Values({"Customer: Mr A LoyalProduct: Cabinet HardwareRegion: Suburban New Dev", "Customer: Jenifer B Ashley LeighProduct: LumberRegion: Suburban Existing"});L'objectif est de produire trois colonnes : Client, Produit, Région.
dt2 = New Table( "Sample 2",
Add Rows( 2 ),
New Column( "Field_9630",
Character,
"Nominal",
Set Selected,
Set Values(
{"Customer: Mr A LoyalProduct: Cabinet HardwareRegion: Suburban New Dev",
"Customer: Jenifer B Ashley LeighProduct: LumberRegion: Suburban Existing"
}
),
Set Display Width( 132 )
),
New Column( "Customer",
Character,
"Nominal",
Set Values( {"Mr A Loyal", "Jenifer B Ashley Leigh"} )
),
New Column( "Product",
Character,
"Nominal",
Set Values( {"Cabinet Hardware", "Lumber"} )
),
New Column( "Region",
Character,
"Nominal",
Set Values( {"Suburban New Dev", "Suburban Existing"} )
)
);Merci d'avance!
Sincèrement,
MG
Automatisation et scriptsMélange et nettoyage des donnéesRe : Question d'analyse de chaîneSalut,
Il est toujours difficile d’analyser des chaînes lorsque vous ne disposez pas de délimiteurs clairs.
En supposant que la chaîne d'entrée contiendra toujours les mots-clés « Client : », « Produit : » et « Région : », vous pouvez utiliser l'approche ci-dessous :
- Remplacez les mots-clés par "," en utilisant la fonction SUBSTITUTE()
- Analysez les informations pertinentes à l'aide de la fonction WORD()
- Nettoyez les chaînes résultantes avec la fonction TRIM().
New Table( "Sample_PARSED",
Add Rows( 2 ),
New Column( "Field_9630",
Character,
"Nominal",
Set Values(
{"Customer: Mr A LoyalProduct: Cabinet HardwareRegion: Suburban New Dev",
"Customer: Jenifer B Ashley LeighProduct: LumberRegion: Suburban Existing"
}
),
Set Display Width( 726 )
),
New Column( "TEMP",
Character,
"Nominal",
Formula(
Substitute( :Field_9630,
"Customer:", ",",
"Product:", ",",
"Region:", ","
)
)
),
New Column( "Column 2",
Character,
"Nominal",
Formula( Trim( Word( 1, :TEMP, "," ) ) ),
Set Display Width( 157 )
),
New Column( "Column 3",
Character,
"Nominal",
Formula( Trim( Word( 2, :TEMP, "," ) ) )
),
New Column( "Column 4",
Character,
"Nominal",
Formula( Trim( Word( 3, :TEMP, "," ) ) ),
Set Display Width( 200 )
)
)
J'espère que ça aide.
Meilleur,
TS
Re : Question d'analyse de chaîne@Thierry_S Merci pour la réponse rapide et la solution. Très appréciée!