Vous souhaitez compter lorsque des changements se produisent dans l'une des deux colonnes de donnéesJ'ai donc 2 colonnes de données qui ont de nombreuses valeurs identiques mais qui s'incrémentent à certains points. Il s'agit du mois et de la date des points de données. Exemple:
| Mois |
Jour |
Compteur souhaité : |
| 1 |
1 |
1 |
| 1 |
1 |
1 |
| 2 |
2 |
2 |
| 2 |
3 |
3 |
| 3 |
1 |
4 |
| 3 |
1 |
4 |
J'ai essayé d'utiliser le décalage sans succès car je ne veux pas d'incrément à moins qu'une valeur ne change. J'ai essayé différentes solutions, notamment:
If(
Row() == 1, 1,
Lag( :Month, 1 ) & Lag( :Day, 1 ), Lag( :DesiredCounter, 1 )
)
Un similaire solution a été publié mais n'a pas fonctionné pour moi car je dois tenir compte des deux colonnes. Quelqu'un peut-il m'aider ? Merci
Re : Voulez-vous compter quand un changement se produit dans l'une des deux colonnes de donnéesOh, je suis désolé, je pensais que je devais ajouter une colonne pour x. Tant pis, ça marche, merci !!!
Re : Voulez-vous compter quand un changement se produit dans l'une des deux colonnes de donnéesVoici un script qui crée votre exemple de table de données et applique la formule à la colonne Compteur souhaité :
New Table( "Example",
Add Rows( 6 ),
New Column( "Month",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 2, 2, 3, 3] )
),
New Column( "Day",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 2, 3, 1, 1] )
),
New Column( "Desired Counter:",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
If( Row() == 1,
x = 1,
If( Lag( :Month ) != :Month | Lag( :Day ) != :Day,
x = x + 1
)
);
x;
)
)
)
Il produit ce tableau de données :

Re : Voulez-vous compter quand un changement se produit dans l'une des deux colonnes de donnéesSalut Jim,
Merci pour votre réponse. Alors j'ai essayé ça et j'obtiens encore un tas de 1. Y a-t-il autre chose que je devrais ajouter ? X est la colonne de comptage souhaitée, n'est-ce pas ? Merci
Re : Voulez-vous compter quand un changement se produit dans l'une des deux colonnes de donnéesVoici comment je procède généralement :
If( Row() == 1,
x = 1,
If( Lag( :Month ) != :Month | Lag( :day ) != :Day,
x = x + 1
)
);
x;