Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
ESD
Contributor
Contributor

Formule suite de donnée

Bonjour,

Connaissez-vous une formule qui permet de distinguer lorsque une suite de nombre ne se suivent pas ?

Exemple :

17548

17549

17551

Il manque dont le 17550

Le 17551 ne suit pas le précédent

Labels (1)
1 Solution

Accepted Solutions
Sabrina_V
Partner - Creator II
Partner - Creator II

C'était un exemple pour vous montrer le résultat de la formule.

Vous pouvez charger vos données une première fois. => Load * de votre table

Puis dans une seconde étape vous faites : 

  • le calcul de l'écart avec la formule ID - Previous(ID) 
  • trier la table chargée par ordre croissant d'ID

En clair cela donnera : 

TMP : 

LOAD * FROM < Ma table> ;

NOCONCATENATE:

DATA:

LOAD

*,

ID - Previous(ID)  as Ecart

RESIDENT TMP

ORDER BY ID;

DROP TABLE TMP;

 

View solution in original post

6 Replies
Sabrina_V
Partner - Creator II
Partner - Creator II

Essayez de voir du côté de la fonction Previous()

ESD
Contributor
Contributor
Author

Bonjour Sabrina,

 

Merci d'avoir répondu.

Je n'arrive pas a appliquer cette fonction et l'explications donné sur l'utilisation de cette fonction n'est pas claire. Voici ce que j'ai fait :

(Numéro_Fac - Previous(Numéro_Fac) ) as Ecart

Numéro Fac étant ma dimension qui correspond a une dimension a laquelle on applique right(numfac,7) car le premier chiffre est en trop (ex : 17551 avec right mais 717551 sans le right, le 7 étant de trop)

Sabrina_V
Partner - Creator II
Partner - Creator II

Le script testé : 

TEST:
Load * Inline [
ID
17548
17549
17551
];

NoConcatenate
TEMP:
Load
ID,
ID - Previous(ID) as Ecart
Resident
TEST
Order BY
ID;

DROP TABLE TEST;

Le résultat : 

Sabrina_V_0-1682343052182.png

 

ESD
Contributor
Contributor
Author

Vous avez identifier les numéros de factures 1 par 1 mais nous en avons plusieurs centaines voir milliers alors le Inline ne peut pas fonctionner

Sabrina_V
Partner - Creator II
Partner - Creator II

C'était un exemple pour vous montrer le résultat de la formule.

Vous pouvez charger vos données une première fois. => Load * de votre table

Puis dans une seconde étape vous faites : 

  • le calcul de l'écart avec la formule ID - Previous(ID) 
  • trier la table chargée par ordre croissant d'ID

En clair cela donnera : 

TMP : 

LOAD * FROM < Ma table> ;

NOCONCATENATE:

DATA:

LOAD

*,

ID - Previous(ID)  as Ecart

RESIDENT TMP

ORDER BY ID;

DROP TABLE TMP;

 

ESD
Contributor
Contributor
Author

Super !

Merci infiniment Sabrina !