Script avec plusieurs tables<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Je suis relativement nouveau dans JSL (et dans les scripts en général) et j'ai du mal à trouver un moyen de manipuler plusieurs tables.
Ce que je voudrais faire pour chaque ligne d'un tableau, c'est transformer les données de deux colonnes en deux variables globales, ajuster les données correspondantes dans un deuxième tableau, puis passer à la ligne suivante du premier tableau, répéter.
C'EST À DIRE:
Une table contient un nombre total d'exécutions pour chaque semaine de travail, une ligne par semaine. Mon deuxième tableau comporte de nombreuses lignes pour chaque semaine de travail, mais j'aimerais que chaque ligne obtienne le nombre total d'exécutions approprié pour cette semaine, placé dans la colonne appropriée.
Dans le guide de script, l'appel de « Table de données actuelle (table souhaitée) » est répertorié comme comment déplacer vos références de table en table, mais je n'arrive pas à le faire fonctionner.
J'essaie de faire quelque chose comme le travail suivant (les émissions sont juste là pour le dépannage) :
Tableau de données actuel("Pourcentage d'échec") ;
Pour chaque ligne (
globalWeek= :Semaine;
globalTotal = :N lignes ;
Afficher (globalWeek);
Afficher (globalTotal);
Tableau de données actuel("Tableau récapitulatif des analyses");
Pour chaque ligne ( if (Week == globalWeek,
Fonctionne cette semaine = globalTotal))
)
Est-ce que ce que j'essaie de faire est possible ? Même si je finis par trouver une manière différente de résoudre cette situation particulière, je suis curieux de connaître le processus général consistant à passer d'une table à l'autre comme celle-ci.
Script avec plusieurs tablesLe deuxième argument est facultatif et représente une variable "by", c'est-à-dire qu'il renvoie des comptes séparés pour chaque niveau de la colonne by.
Dans le menu d'aide/fonctions JSL, il est documenté (ces index de syntaxe sont très utiles, parfois plus complets que les livres ou les pages d'aide et fournissent de bons exemples).
Script avec plusieurs tablesÇa marche, merci encore.
Par curiosité, lorsque je recherche Col Number, il prétend qu'il ne prend qu'un seul argument et qu'il donne le nombre de lignes "non manquantes". Évidemment, lui donner deux forces, c'est une sorte de comparaison, mais que fait-il exactement ?
Script avec plusieurs tablesCol Number n'aime pas les colonnes au format caractères, mais essayez cette astuce :
Numéro de colonne ( Hex à numéro ( Char à Hex ( :Colonne ) ) , : Colonne )
Script avec plusieurs tablesOh, c'est merveilleux, je n'avais pas encore compris les formules de statistiques de colonnes - je n'ai fait que des formules directes dans la même ligne.
En jouant un peu avec ça, cela fonctionne à merveille pour les colonnes numériques, existe-t-il un moyen de faire la même chose avec les colonnes de caractères ?
(Et oui, j'ai déjà acheté un livre, mais il me faudra un peu de temps pour me parvenir d'Amazon.)
Script avec plusieurs tablesDans un tel cas, vous n'avez pas besoin de script. Une formule de colonne ferait l'affaire.
Essayez cette formule dans RowsPerWeek :
Numéro de colonne ( :Semaine, :Semaine )
Script avec plusieurs tablesMerci beaucoup pour la réponse rapide.
La raison pour laquelle j'évite Join est que j'aimerais pouvoir l'exécuter à plusieurs reprises sur la même table, à mesure que davantage de données sont ajoutées au fil du temps.
Après y avoir réfléchi, je soupçonne que je rends les choses beaucoup plus compliquées que nécessaire.
Ce que j'aimerais vraiment, c'est, dans mon tableau d'origine, compter le nombre de lignes présentes pour chaque semaine, puis mettre ce nombre total de lignes par semaine dans une colonne.
Donc en gros ça ressemblerait à ça :
Semaine, lignes par semaine
5, 3
5, 3
5, 3
6, 1
7, 2
7, 2
Ce serait un script que j'exécuterais chaque fois que j'ajouterais des données à la feuille, puis automatiquement il additionnerait mes lignes hebdomadaires et mettrait à jour cette colonne. J'y arrivais via un tableau récapitulatif, puis je remettais les données dans le tableau d'origine, mais il doit y avoir un moyen plus simple.
Script avec plusieurs tablesC'est plus facile si vous pointez différentes variables vers les deux tables.
pf_dt = table de données ("Pourcentage d'échec");
rst_dt = data table("Exécuter le tableau récapitulatif");
Pour utiliser ces variables :
pour (i = 1, i <= nrows(pf_dt), i++,
one_week = colonne(pf_dt, "Semaine") ;
one_total = colonne (pf_dt, "N lignes") ;
pour (k = 1, k <= nrows(rst_dt), k++,
if (colonne(rst_dt, "Semaine")== une_semaine,
column(rst_dt, "Exécutions cette semaine-là")= un_total ;
);
);
);
Cependant, vous feriez mieux d'utiliser une commande JOIN pour joindre les deux tables.Utilisez la commande Tables > Joindre pour créer une nouvelle table, puis cliquez sur le triangle rouge pour voir les commandes JSL qui ont été utilisées.