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: 
GOHIERO53
Contributor II
Contributor II

Changement format d'une dimension Qlikview

Bonjour à tous,

Je viens vers vous car je rencontre une difficulté persistante.

Je vous expose cela. Dans mon fichier mes données sont triées par demie heure au format suivant:

- Un dossier reçu à 10h27 sera indiqué: 10.5
-  05h57 sera indiqué: 5.5
- 22h12 sera indiqué:  22  
Etc...

Je dois absolument conserver ce format dans mon script cependant dans un de mes objets je vais devoir afficher cette dimension (Q_HEURE.HEURE) au format suivant:

- Un dossier reçu à 10h27 sera indiqué: 10:30
-  05h57 sera indiqué: 05:30
- 22h12 sera indiqué:  22:00  

Et je suis complètement bloqué sur ce changement de format... Je ne sais pas si quelqu'un a déjà rencontré ce genre de problème? Je vous serai reconnaissant si vous aviez quelques pistes. 😊

Je vous remercie par avance,

Etienne



1 Solution

Accepted Solutions
Taoufiq_Zarra

essaye ça :

=if(isnull(Textbetween(_LE_CHAMP_, '','.')),pick(match(len(_LE_CHAMP_),1, 2),'0'&_LE_CHAMP_,_LE_CHAMP_),pick(match(len(Textbetween(_LE_CHAMP_, '','.')),1, 2),'0'&Textbetween(_LE_CHAMP_, '','.'),Textbetween(_LE_CHAMP_, '','.')))&':'&if(isnull(Textbetween(_LE_CHAMP_, '.','')),'00','30')
Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉

View solution in original post

8 Replies
Taoufiq_Zarra

Bonjour,

avant, pourquoi 22h12 est 22 et non pas 22.5 alors 10h27 est 10.5 .

si j'ai bien compris le script renvoie des valeurs comme 10,10.5,11,11.5 et tu veux l'afficher sous format de 10 10:30 ....

si c'est ça utilise une fonction pour créer un temps comme :

=Maketime(num(if(isnull(Textbetween(_LE_CHAMP_, '','.')),_LE_CHAMP_,Textbetween(_LE_CHAMP_, '','.'))),num(if(isnull(Textbetween(_LE_CHAMP_, '.','')),0,30)))

_LE_CHAMP_ : est le champs où tu as 10 10.5 ....

sur l'exemple 10.5 et 22 ça donne :

Capture.JPG

sinon re-explique le besoin avec un extrait des data

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
GOHIERO53
Contributor II
Contributor II
Author

Bonjour Taoufik,

Merci pour ton aide, c'est exactement ce que j'avais besoin. C'est moi qui avait commis une erreur dans mon exemple.. 
10h27 était bien égal à 10...

Petite question pour finir, la fonction Maketime renvoie forcément au format HH:MM:SS ?

Je vais fouiller pour essayer de la passer en format HH:SS.

Merci encore!!

Bonne fin de journée,

Etienne 

Taoufiq_Zarra

ah ok, j'ai pensé que tu veux garder la fontion temps, dans ce cas utilise cette fonction :

=if(isnull(Textbetween(_LE_CHAMP_, '','.')),_LE_CHAMP_,Textbetween(_LE_CHAMP_, '','.'))&':'&if(isnull(Textbetween(_LE_CHAMP_, '.','')),'00','30')
Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
GOHIERO53
Contributor II
Contributor II
Author

Bonjour Taoufik,

Merci pour ta réactivité. C'est exactement ce que j'essayais de faire 😊. Par contre je te fais une dernière petite demande. 

Si j'ai 8h57 j'aimerais pouvoir afficher 08:30? C'est à dire toutes les heures avant 10h00 les afficher avec un '0' en premier.

Merci encore!!

Etienne

Taoufiq_Zarra

Bonjour Etienne,

alors là j'ai pas compris 🙂

j'ai pensé que tu as que deux type de valeur par exemple 10 et 10.5 ?

pourquoi là tu as 8h57 ? sauf si c'est une requete séparée de ce que tu as expliqué avant ?

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
GOHIERO53
Contributor II
Contributor II
Author

Oui j'avoue que je n'ai pas été très clair. 🙂

En gros avec ta proposition le 8.5 est transformé en 8:30 et j'aurais aimé que ce soit 08:30.

Voilà la dernière petite subtilité.

Merci par avance,

Etienne

Taoufiq_Zarra

essaye ça :

=if(isnull(Textbetween(_LE_CHAMP_, '','.')),pick(match(len(_LE_CHAMP_),1, 2),'0'&_LE_CHAMP_,_LE_CHAMP_),pick(match(len(Textbetween(_LE_CHAMP_, '','.')),1, 2),'0'&Textbetween(_LE_CHAMP_, '','.'),Textbetween(_LE_CHAMP_, '','.')))&':'&if(isnull(Textbetween(_LE_CHAMP_, '.','')),'00','30')
Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
GOHIERO53
Contributor II
Contributor II
Author

Taoufik,

C'est parfait ça fonctionne parfaitement.

Je te remercie vraiment pour ton aide. Tu me fais gagner un temps fou tu n'imagines pas!

Etienne