Création d'une colonne de résumé cumulative pour différentes lignes<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Salut,
Comme vous l'aurez compris grâce à la question, je suis un débutant en matière de script, de formulation et d'automatisation JSL ... J'ai un ensemble de données sur les revenus qui contient une colonne intitulée "année" de 2013, 2014, 2015 ... J'ai besoin d'une somme cumulée pour chaque année, mais lorsque je crée une colonne de somme cumulée (avec l'aide de Graph Builder), elle ajoute tous les jours et les années les uns aux autres et se termine par une somme cumulée totale sur 3 ans, où je voudrais la somme cumulée recommence chaque année. Je pourrais résoudre le problème en scindant ou en subdivisant, mais comme chaque jour, je dois envoyer un rapport de comparaison des revenus, c'est vraiment ennuyant. Et ces données changent toutes les heures, alors ce serait bien de mettre à jour le fichier jmp existant avec les données ajoutées, puis de créer la colonne Somme cum pour chaque année ... Quelqu'un pourrait aider s'il vous plaît. Je vous remercie!
Re: Création d'une colonne de résumé cumulatif pour différentes lignesDans JMP 11, le menu Transformer de la plupart des plates-formes comporte un élément Somme cumulée. Il crée une colonne avec une formule de la forme:
Si (OrMZ (Row ()
1,: sex! = Lag (: sex)), 0 Décalage() )
+ Si (est manquant (: hauteur), 0 :la taille )
Elle repose également sur le tri des variables de regroupement, mais ignore les valeurs manquantes.
Re: Création d'une colonne de résumé cumulatif pour différentes lignesMerci Michael!
Re: Création d'une colonne de résumé cumulatif pour différentes lignesPuis-je envoyer les données complètes? J'apprécierais vraiment si vous réussissiez ce qui me fait gagner beaucoup de temps.
Re: Création d'une colonne de résumé cumulatif pour différentes lignesLa seule chose que je puisse penser à vérifier est la valeur pour: Année dans la première ligne avec une valeur de 0,00. S'il est manquant ou différent du précédent, les résultats auraient alors un sens. Sinon, je ne peux pas le reproduire, du moins avec les données que vous avez envoyées précédemment.
Merci,
Michael
Re: Création d'une colonne de résumé cumulatif pour différentes lignesIf (Row () == 1 | Lag (: Année)! =: Année,: NetRoomRevenueWithOutVat, Lag (: CumSumByYear) +: NetRoomRevenueWithOutVat)
Re: Création d'une colonne de résumé cumulatif pour différentes lignesCher Sait,
Pourriez-vous envoyer la formule que vous utilisez pour la colonne CumSumByYear?
Merci,
Michael
Re: Création d'une colonne de résumé cumulatif pour différentes lignes
Re: Création d'une colonne de résumé cumulatif pour différentes lignesC'est étrange. Lorsque j'essaie de mettre une valeur 0.00 dans: NetRoomRevenueWIthOutVat, la valeur: CumSumByYear est identique à la valeur de la ligne précédente:

Re: Création d'une colonne de résumé cumulatif pour différentes lignesMerci Michael, les deux années fonctionnent désormais, mais chaque fois que la formule est définie sur une valeur de 0,00 (il n’ya aucun jour où il n’ya aucun revenu), le CumBySumYear commence à calculer à partir de zéro. qui termine des résultats irrationnels.
Re: Création d'une colonne de résumé cumulatif pour différentes lignesCher Sait,
La différence est que mon premier exemple utilisait une variable de caractère pour la variable de regroupement. Votre exemple utilise une variable numérique, ce qui est bien. Mais cela nécessite un peu plus de manipulation dans la formule. La raison en est que pour les valeurs numériques, la valeur Lag () de la première ligne est manquante et la comparaison de la valeur manquante à la ligne actuelle est également manquante. Ensuite, dans la deuxième ligne, une valeur manquante de la première ligne est ajoutée à la valeur de la deuxième ligne, ce qui entraîne une valeur manquante.
Voici une formule mise à jour qui, à mon avis, devrait fonctionner pour la casse de la variable de regroupement numérique:
If (Row () == 1 | Lag (: Year)! =: Year,
: NetRoomRevenueWithOutVat,
Lag (: CumSumByYear) +: NetRoomRevenueWithOutVat
)
Laissez-moi savoir si cela fonctionne pour vous.
Meilleur,
Michael
Re: Création d'une colonne de résumé cumulatif pour différentes lignesCher Michael,
Voici une proportion des données. J'ai vérifié les valeurs manquantes, l'année de la colonne est zéro.
Comme j'ai substitué le tableau de données principal maintenant, les colonnes sont toutes avec des valeurs, mais cette fois-ci 2014 est illogique et 2015 avec de vraies valeurs
Re: Création d'une colonne de résumé cumulatif pour différentes lignesCher Sait,
Voyez-vous des valeurs manquantes pour les lignes correspondant à l'année = 2014? Les lignes des autres années ont-elles des valeurs?
Seriez-vous capable d'envoyer un échantillon de vos données? Cela pourrait aider à identifier le problème plus facilement.
Merci,
Michael
Re: Création d'une colonne de résumé cumulatif pour différentes lignesCher Michael,
Merci beaucoup pour votre aide, mais cela ne fonctionne pas. Je suis d'accord pour ouvrir la table de données et trier par année. La colonne est également créée, mais sans aucune donnée pour 2014
Souhaitez-vous aider avec la formule qui va dans la colonne?
Merci beaucoup
Sait
Re: Création d'une colonne de résumé cumulatif pour différentes lignesSi vous vous assurez que votre table de données est triée par la variable de regroupement (année, dans votre cas), vous devriez pouvoir utiliser une colonne de formule semblable à celle-ci (qui utilise l'exemple de la table de données Big Class):
dt = Open ("$ SAMPLE_DATA / Big Class.jmp");
dt << Trier (par (: sexe), Ordre (croissant), Remplacer le tableau);
dt << Nouvelle colonne ("CumSumBySex",
Continu,
Numérique,
Set Formula (If (: sex! = Lag (: sex),: height, Lag (: CumSumBySex) +: height))
)
J'espère que cela pourra aider,
Michael