Script : Supprimer le préfixe de la chaîne et afficher la colonne modifiée dans un fichier ExcelSalut tout le monde. J'ai suivi les conseils de Formule d'analyse de chaîne et quelques autres références pour écrire des données dans des fichiers, principalement applicables aux fichiers texte en morceaux, mais j'ai trouvé le
Save Excel File()
fonction dans l'index des scripts. Je ne sais pas ce que signifie/fait le dernier paramètre ? Ce n'est pas expliqué. C'est-à-dire,
Separate Rows for Each Cell Statistic( 1 )
Est-ce important ? Il n'écrit rien dans aucun fichier à l'emplacement que j'ai spécifié si ce paramètre est présent ou non.
Voici un aperçu de mon script :
dt = Current Data Table();
c = Words(:ID, "_");
Write(c);
s = c[2] || "_" || c[3] || "_" || c[4] || "_" || c[5];
Write(s);
s << Save Excel File(
"$DOCUMENTS\temp.xlsx",
Separate Rows for Each Cell Statistic( 1 )
);
J'essaie donc de supprimer le préfixe et de conserver les quatre "blocs de mots" restants ainsi que leurs traits de soulignement, que je rajoute manuellement via la concaténation de chaînes. Voir concaténation de chaînes et de variables pour la concaténation de chaînes "||" référence.
Quoi qu'il en soit, aucun fichier n'apparaît dans $DOCUMENTS\temp.xlsx.
Aussi, euh, comment ça s'appelle, terminal, fenêtre, journal, me donne l'erreur
Subscript Range in access or evaluation of 'c[2]' , c[/*###*/2]
et je ne sais pas pourquoi. Aucune chaîne ou colonne n'est générée à la suite des instructions Write() que j'ai incluses.
Donc, fondamentalement, rien ne fonctionne comme il se doit. Depuis le début, je suppose !
Faites-moi savoir quels conseils vous pouvez tous imaginer.
Acclamations,
Mike
Ingénierie Qualité et ProcédésRe : Script : Supprimer le préfixe de la chaîne et afficher la colonne modifiée dans un fichier ExcelAjoutez le pointeur de table de données à la fonction de colonne, assurez-vous qu'il s'agit de la table avec la colonne.
Colonne(dt, :id)
il semble que plusieurs tables soient ouvertes et JMP essaie d'utiliser la table actuelle, qui n'est pas celle que vous souhaitez.
Lorsque vous créez le sous-ensemble, vous pouvez obtenir le pointeur de table pour la nouvelle table :
dtSubset = dt<Re : Script : Supprimer le préfixe de la chaîne et afficher la colonne modifiée dans un fichier Excel
C'est un excellent cadre ; le problème que j'ai identifié maintenant est assez simple :
Le tableau avec lequel je travaille est un sous-ensemble de lignes du tableau complet. Et quand je vais sur Column(:ID), il ne trouve pas la colonne, c'est à dire
could not find column{3} in access or evaluation of 'Column' , Column/*###*/(dt:ID)Ce qui semble très simple mais je ne sais pas pourquoi. Je pensais que ce serait parce que j'utilise un sous-ensemble de lignes, ce que je dois faire, mais je peux savoir si c'est le cas en essayant le script sur la table de base. Un moment...
Non, cela semble également être un problème sur le tableau de données complet.
Des conseils pour "trouver" ma chronique ?
Michael
Re : Script : Supprimer le préfixe de la chaîne et afficher la colonne modifiée dans un fichier Excel
De plus, en général, si vous avez une fonction qui accepte un paramètre ou une variable, le passage dans une colonne exécutera-t-il la fonction élément par élément dans la colonne ?
Non. Habituellement, si vous avez besoin d'évaluer quelque chose pour chaque ligne d'un tableau de données, vous souhaiterez soit créer une colonne de formule dans le tableau de données, soit utiliser l'option Pour chaque ligne() itérateur.
JMP 16 a présenté le Pour chaque() fonction pour parcourir les structures de données JSL : des listes, des tableaux associatifs ou des matrices.
Re : Script : Supprimer le préfixe de la chaîne et afficher la colonne modifiée dans un fichier ExcelDe plus, en général, si vous avez une fonction qui accepte un paramètre ou une variable, le passage dans une colonne exécutera-t-il la fonction élément par élément dans la colonne ?
Mike
Re : Script : Supprimer le préfixe de la chaîne et afficher la colonne modifiée dans un fichier ExcelMerci pour la réponse, @Thierry_S ! J'essaie actuellement votre scriptlet ainsi que d'autres choses.
Cela peut sembler une chose très simple pour la plupart, mais je ne sais pas vraiment quelle est la meilleure façon de visualiser la sortie à des fins de débogage lorsqu'il s'agit de plus qu'une simple variable à valeur unique, c'est-à-dire comment faire apparaître une seule colonne dans un fichier. nouvelle table de données (en utilisant JSL uniquement), ou imprimez la colonne dans le journal, ou quelque chose comme ça.
Je ne me souviens pas, peut-être que j'ai déjà fait ça auparavant et que je fais juste un vide, mais je me sens un peu idiot de demander.
Merci encore!
Mike
Re : Script : Supprimer le préfixe de la chaîne et afficher la colonne modifiée dans un fichier ExcelJe pense que l'enregistrement du fichier Excel est un cas particulier pour la plateforme d'analyse des réponses catégorielles. Options de plate-forme catégorielles supplémentaires . Pour enregistrer une table de données sous forme de fichier Excel, vous pouvez simplement utiliser << Save(path).
Actuellement, vous essayez de sauvegarder une seule chaîne dans un fichier Excel, chaîne créée à partir de la première ligne du datatable. En fonction de la manière et de ce que vous souhaitez enregistrer, vous disposez de différentes options, ci-dessous celle où les valeurs de la colonne : ID sont remplacées par de nouvelles valeurs avec les caractères avant le premier _ supprimés :
Names Default To Here(1);
dt = New Table("Untitled 2",
Add Rows(3),
Compress File When Saved(1),
New Column("ID", Character, "Nominal", Set Values({"1_2_3_4_5_6", "2_3_4_5_6_7", "3_4_5_6_7_8"}))
);
Wait(1);
dt:ID << Set Each Value(
Substr(:ID, Contains(:ID, "_")+1)
);
dt << Save("$DOCUMENTS\test.xlsx");Vous pouvez également créer une nouvelle colonne avec les nouvelles valeurs, ce qui constitue probablement une meilleure approche.
Re : Script : Supprimer le préfixe de la chaîne et afficher la colonne modifiée dans un fichier ExcelSalut,
Lorsque je traite des chaînes, j'ai tendance à préférer travailler avec des fonctions spécifiques aux chaînes (par exemple Substitute (), Munger (), Right (), Word()) ;
Par conséquent, dans votre cas, je suggérerais la formule suivante pour supprimer la première partie de la chaîne IDS, y compris la première instance du caractère "_":
Substitute( :IDS, Word( 1, :IDS, "_" ) || "_", "" )
Meilleur,
TS