đŸȘ„ Transformer des donnĂ©es avec des formules (dates et autres)

image

Les traitements de données de type « formule » ne sont pas toujours évidents à comprendre et à utiliser. Pour une prise en main plus facile, nous vous présentons ici quelques exemples que vous pouvez utilisez.

Pour crĂ©er une formule, sĂ©lĂ©ctionnez la baguette magique sur la source que vous souhaitez transformer, puis choisissez la transformation « Formule Â» :

image


Formule sur des dates (formules « moment Â»)

Les formats de date sont souvent affichés sous 2 formats:

  • Format date ISO YYYY-MM-DDTHH:mm:ss.011Z (ex: 2018-02-19T10:46:37.950Z)
  • Format date timestamp XXXXXXXXXX (ex: 1519037225)

Quelques exemples

  • moment() = date courante (restituĂ© au format YYYY-MM-DDTHH:mm:ss.011Z)

:warning: Dans certains cas, il est nécessaire ouutile de préciser le format attendu ou souhaité.

Exemples :

  • moment().format("YYYY MM DD") = YYYY MM DD (ex: 2018 02 19)
  • moment().format("DD/MM HH:mm") = DD/MM HH:mm (ex: 19/02 11:40)

Savoir si une date est déjà passée

Vous souhaitez filtrer un jeu de données pour récupérer, par exemple, uniquement des évÚnements à venir ?

Utiliser la formule moment().isAfter(moment({{votre champ}})) ou moment().isBefore(moment({{votre champ}})) afin de savoir si oui, ou non, votre date est dĂ©passĂ©e. Vous recevrez un « true Â» ou un « false Â» comme rĂ©sultat dans le nouveau champ crĂ©e pour votre formule.

Vous pourrez Ă  partir de ce moment effectuer un filtre afin de rĂ©cupĂ©rer uniquement les donnĂ©es nĂ©cessaires, en filtrant sur « true Â» ou « false Â».

Calculer le temps passée depuis une date

moment().to(moment({{votreChamp}}, "DD/MM/YYYY"))

:warning: Pensez à adapter le nom de votre champ et son format (selon la donnée de votre champ)

Comparer la valeur d’une source de donnĂ©e avec la date du jour

exemple : je souhaite savoir le nombre de jours écoulés entre la date de ma source de donnée et la date du jour.

moment().diff(moment({{votreChamp}}),'days')

:warning: Pensez à ajouter le format aprÚs votre champ si cela ne fonctionne pas (cf. formule précédente)

Convertir les formats date en nombre (en ms)

  • Maintenant en nombre: NUMBER(moment()) (ex: 1519036887 → timestamp en ms)
  • {{champ}} en nombre: NUMBER(moment({{champ}}))

Formules sur des chiffres

Arrondir un chiffre

  • Arrondir Ă  l’entier: round({{champ}})
  • Arrondir Ă  2 dĂ©cimales: round({{champ}},2)

:warning: Pensez Ă  remplacer {{champ}} par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.

Exemple : vous rĂ©cupĂ©rez via une API la tempĂ©rature d’une ville avec des valeurs trĂšs prĂ©cises (ex :19,68) et souhaitez l’arrondir pour afficher 20°C sur le walboard.

Écrivez la formule : ROUND({{nom_de_la_colonne}})

Pensez Ă  la tester, puis Ă  la sauvegarder.
Votre nouvelle source « traitĂ©e Â» affichera donc la valeur 20.

SĂ©parer les milliers / millions / milliards d’un chiffre

REPLACE(''+ {{champ}}, '/([0-9]{3})/g', ' $1')

:warning: Pensez Ă  remplacer {{champ}} par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.


Autres formules

RĂ©duire le nombre de caractĂšres d’une donnĂ©e « texte »

  • RĂ©duire Ă  350 caractĂšres en partant de la droite : SUBSTR({{champ}},0,350)
  • RĂ©duire Ă  10 caractĂšres en partant de la gauche: SUBSTR({{champ}},10,0)
  • Ajout de points de suspension: length({{champ}})>200 && « 
 » || « »

:warning: Pensez Ă  remplacer {{champ}} par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.

Remplacer un caractĂšre

Il arrive que certains caractĂšres rĂ©cupĂ©rĂ©s dans Pingview ne soient pas ceux que vous souhiatez afficher Ă  l’utilisateur final du wallboard.

Si mon caractĂšre est ïżœ (caractĂšre spĂ©cial) et que je souhaite le remplacer par un e:

REPLACE({{champs}},"/ïżœ/g","e")

:warning: Pensez Ă  remplacer {{champs}} par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.

RĂ©cupĂ©rer les donnĂ©es Ă  partir d’un mot dĂ©finit

Récupérer les données à partir de demain : MATCH({{champ}}, '\demain.*')

:warning: Pensez Ă  remplacer {{champ}} par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.

Interaction Ă©phĂ©mĂšre (utile pour les interactivitĂ©s avec redirection d’URL)

Limiter la durĂ©e d’interactivitĂ© Ă  5s: NUMBER({{timestamp}})+5000 >= NUMBER(moment())

:warning: Pensez Ă  remplacer {{timestamp}} par le champ de la source parente sur laquelle vous souhaitez appliquer la formule.