Application de la formuleSI(MOIS(A151)=MOIS(A150),NA(),COUNTIF(W151:W181,1)*100/(COUNTIF(W151:W181,1)+COUNTIF(W151:W181,0))) . Il s'agit d'une formule appliquée dans Excel pour créer une nouvelle colonne, où la colonne A a la date et la colonne W ne contient que 0 et 1 comme valeurs. Comment appliquer cette même formule dans JMP si nous avons les valeurs des colonnes A & W.
Modélisation statistique avancéeRe: Demande de formuleVoici la façon dont je gérerais cela.
La fonction Loc() renvoie une matrice de toutes les valeurs de la matrice qui correspondent au deuxième argument de la fonction Loc(). Donc
Donne une matrice
[1,0,1,1,.,5]
alors
Loc( [1,0,1,1,.,5], 1 )
renverrait la matrice
[ 1, 1, 1 ]
il suffit donc de compter le nombre de lignes dans la matrice pour trouver le CountIF
Length( Loc( [1,0,1,1,.,5], 1 ) )
qui renverra la valeur 3
Voici la formule complète
If( Month( :A ) == Lag( Month( :A ) ),
.,
wMatrix = :W[Index( Row(), Row() + 29 )];
(Length( Loc( wMatrix, 1 ) ) * 100) / (Length( Loc( wMatrix, 1 ) ) + Length( Loc( wMatrix, 0 ) ));
)
Généralement dans JMP, on essaie d'éviter d'avoir des calculs basés sur un nombre spécifique de lignes dans la table de données. Cette discussion actuelle en est un bon exemple. Pour que la formule ci-dessus fonctionne correctement, le tableau de données nécessite qu'exactement 30 lignes soient trouvées après le changement de mois, sur lesquelles effectuer les calculs. Nous savons tous que différents mois ont un nombre de jours différent. La modification suivante de la formule ci-dessus montre comment effectuer les calculs en fonction de la recherche de toutes les données du mois en cours, quel que soit le nombre de jours du mois.
If( Month( :A ) == Lag( Month( :A ) ),
.,
wMatrix = :W[Current Data Table() << get rows where(
Year( :A ) == Year( :A[Row()] ) & Month( :A ) == Month( :A[Row()] )
)];
(Length( Loc( wMatrix, 1 ) ) * 100) / (Length( Loc( wMatrix, 1 ) ) + Length( Loc( wMatrix, 0 ) ));
)
Re: Demande de formulePourriez-vous fournir un exemple de tableau avec toutes les colonnes nécessaires + la colonne de résultat attendu sous forme de table JMP. Il est plus facile de comprendre le problème que d'essayer de convertir une formule Excel sans aucune donnée en JMP Formula. Vous pourriez juste avoir besoin de quelque chose comme
Somme cumulée du col (:W, :A) ou Somme du col (:W, :A)
Re: Demande de formuleMerci beaucoup pour la réponse. J'ai appliqué cette formule mais cela donne une somme cumulée mais dans mon cas, chaque fois que le mois change, je dois obtenir le compte de 0 et 1 pour les 30 prochains jours.
Objet : Application de la formuleBonjour-
J'avais commencé à répondre, puis j'ai remarqué un autre message. Ceci pourrait être une alternative…

Remarques :
La fonction mois renverra la partie mois de toute date/horodatage numérique codé, de la même manière que la fonction Excel Month().
Le IF vérifiera si la ligne actuelle n'est pas à la limite du mois - cela est défini pour renvoyer un JMP « Manquant », qui peut se comporter un peu différemment d'un Excel NA().
Étant donné que les valeurs étaient codées 1 et 0, j'ai simplement fait une moyenne des 30 lignes suivantes plutôt que {Count 1/(count 0 + count 1)}.
Lors de la transition entre des formules orientées feuille de calcul et des tables de données JMP avec des formules qui agissent comme des références relatives Excel (décalage, moyenne mobile)...
* Examinez attentivement le comportement en haut et en bas pour garantir le bon fonctionnement.* Une référence relative Excel à « la ligne ci-dessus » copiée dans la première ligne renverrait une erreur #Ref!. Une fonction JMP Lag(1) renvoie une valeur manquante dans la première ligne. Examinez également les spécificités de la moyenne mobile JMP lorsque le nombre de lignes restantes devient inférieur à 30… (cela peut fonctionner, mais soyez vigilant). Vous pouvez détecter ce problème avec une condition supplémentaire dans les formules JMP : si (row()==1, fonction spéciale pour la première ligne, sinon, utilisez la fonction lag).
La description ne donne pas la justification de la conception du tableau, mais si l'intention est de trouver la partie de 1 valeur dans le mois en cours et qu'il y a une hypothèse qu'il y aura 30 lignes par mois triées dans l'ordre... il existe une autre approche qui sera robuste à # lignes/mois <>30 et au tri des lignes... Avec la colonne date/horodatage A sélectionnée - clic droit > nouvelle colonne de formule > date/heure > "mois année."...
puis créez une nouvelle colonne de formule pour trouver la « moyenne » W pour ce mois/cette année Col Mean( :was_W, :"Month Year[was_A]"n ) * 100, conditionnelle similaire pour trouver la ligne limite si nécessaire
Re: Demande de formuleVotre demande est un peu floue, mais je pense être proche de ce que vous souhaitez - voir fichier ci-joint. J'ai créé une colonne de dates aléatoires, puis je les ai triées. La colonne W est un vecteur aléatoire de valeurs 0 et 1. La formule compte la fraction de valeurs 1 dans les 30 prochains jours après un changement de mois. Si ce n'est pas ce que vous voulez, pouvez-vous l'expliquer plus clairement ou publier un exemple simple. N'oubliez pas que JMP n'est pas une feuille de calcul, donc les formules Excel comme CountIF ne se traduisent pas toujours bien.
Ré: Application de la formuleC'est ce que je pensais que mon exemple faisait - et il semblait fonctionner dans le fichier que j'ai joint. J'aimerais comprendre pourquoi cela n'a pas fonctionné, mais votre commentaire ne fournit aucune information utile. Comme dans votre demande initiale, vous devriez fournir plus de détails afin que nous puissions comprendre ce que vous voulez et comment les suggestions n'y parviennent pas.