La création des formules de calcul des mesures est possible via les opérateurs courant tels que:
- '+' pour effectuer une addition
- '-' pour effectuer une soustraction
- '*' pour effectuer une multiplication
- '/' pour effectuer une division
Il existe également des FONCTIONS permettant d'effectuer toutes sortes de calcul sur les mesures.
Exemple:
Reprenons notre exemple précédent et changeons le paramétrage pour que le calcul du chiffre d'affaires soit arrondi à l'entier supérieur le plus proche.
En pratique:
- Regarder la vidéo de paramétrage d'une fonction spécifique
Pour aller plus loin:
Il existe plusieurs dizaines de formules dans ALLKEYME. Vous pouvez consulter le tableau ci-dessous pour connaître la liste des formules disponibles à ce jour ainsi que la syntaxe pour leur utilisation.
FONCTION | DESCRIPTION | EXEMPLE | COMMENTAIRES |
ANCESTOR | Permet de rechercher la valeur d'une mesure pour le step choisi | ANCESTOR(MAVALEUR#S;3) | ici on recherche la valeur renseigné au step 3 |
ANCESTOREKEYVAL | Retourne la valeur d'une clef de filtre d'un ancetre | =ANCESTORKEYVAL("CATWEB1#1";"label";5) | |
AND | Retourne la valeur 1 si tous les éléments passés en paramètre sont vrais. Retourne 0 dans le cas contraire | AND(CABRUT#S>10;CABRUT#S<15) | |
AVG | Calcule la moyenne des élements passés en paramètre | AVG(CAMARS#S;CAAVRIL#S) | Il s'agit d'une moyenne arithmétique simple |
CHINESEZODIAC | Retourne le signe astral chinois | CHINESEZODIAC(date) | |
COLLECT | Permet la collecte d'une information sur tous les éléments fils (= les éléments du step suivant) | SUM(COLLECT(CABRUT#I)) | Ici on va collecter le CABRUT de tous les élements fils du niveau sur lequel on travaille. La fonction COLLECT est souvent utilisée avec la fonction SUM. Ex: SUM(COLLECT(CABRUT#I)) va permettre d'obtenir la somme des CABRUT du niveau sur lequel je travaille en faisant la somme de tous les niveaux inférieurs. |
COMPARERANGE | Permet de rechercher des doublons sur une plage de date | =COMPARERANGE("PRODUCT#1";OFFER_BINKEY#I;"OPE#1|PRODUCT#1";MILE_PRICE_ACTIVE_START#I;MILE_PRICE_ACTIVE_END#I) | |
COMPLETION | |||
CONCAT | Permet d'assembler des éléments de texte | CONCAT(TEXTE1#S;TEXTE2#S) | Même principe que dans Excel Attention pour concatener une mesure avec des guillemets, il faut créer la guillement comme une constante I ou S ou utiliser la fonction REGEX (cf. plus bas) |
COS | Fonction mathématique "cosinus" | COS(ANGLE#I) | |
COUNT | Compte le nombre d'éléments valides | ||
COUNT_DISTINCT | |||
CROSSED | Collecter des valeurs depuis une autre vision | ||
DATEADD | Permet d'ajouter des années, des mois ou des jours à une date donnée | DATEADD(DATE_EXP#I;0;0;40) | Ici, la date de départ est recherchée par rapport à une date dans une mesure (DATE_EXP) et on souhaite retourner cette date + 40 jours |
DATEDIFF | Retourne le nombre de jours entre une date de débu et une date de fin | DATEDIFF(01/01/2022;15/01/2022) | |
DAY | Permet de retrouver le jour d'une date | DAY(date) | |
DIVIDE | Effectue une division avec contrôle auto si diviseur = 0 | DIVIDE(CA#S;QTE#S) | |
E | Constante d'Euler | E(MAMESURE#S) | |
EMPTY | Retourne 1 si la valeur est vide ou nulle | EMPTY(MAMESURE#S) | |
EXP | Formule mathématique "exponentielle" | EXP(MAMESURE#I) | |
FALSETWINS | Identifier, pour des éléments similaires, une divergence de valeurs | =FALSETWINS("PRODUCT#1";OFFER_BINKEY#I;"OPE#1|PRODUCT#1";PRICE_PROMO_SP_NET#I;MILE_PRICE_ACTIVE_START#I;MILE_PRICE_ACTIVE_END#I) | |
FDVAL | Permet de retrouver la valeur d'un élément de codification grâce à son code court | FDVAL("STATUS#1";"OUV";"label") | Ici je recherche dans la codif STATUS le libellé de l'élément dont le code court est OUV |
FIRST | Retourne le premier élément d'une collection | ||
FOLKS | |||
FORCEDAY | Permet de forcer un jour précis dans une date | FORCEDAY(MADATE#I;25) | Pour obtenir le 25 du mois relatif à la date passée en premier paramètre |
FROMAGG | Permet de collecter un aggrégat sur une mesure depuis une période souhaitée | FROMAGG("CHRONO#3";CABRUT#S;"SUM";INDICE#I) | Collect de la somme des CABRUT sur mon chrono 3 depuis l'indice de chrono. NB: l'indice commence à |
FROMPERCENT | Force un texte % en nombre | ||
FULLTIMEADD | Ajouter des années, mois, jours,heures, minutes, secondes à u n temps | ||
FULLTIMEAGG | Fusionner une date et une heure | ||
FULLTIMEDIFF | Délai entre 2 temps | ||
IF | Retourne une valeur en fonction du résultat d'une condition | IF(HA_N2_QTEHA#S<>0;(HA_N2_VALOHA#S/HA_N2_QTEHA#S);0) | Peut être utilisé pour ne pas effectuer de division si le dénominateur est égal à 0 par exemple. |
INHERIT | Hérite de la valeur de la donnée parente (celle du step supérieur) | INHERIT(CABRUT#S) | |
JOIN | Permet de concatener des champs entre eux et de spécifier le séparateur de concaténation | JOIN("|";MES1#S;MES2#S;MES3#S) | A noter, si un des champs est vide, on n'en tient pas compte et on ne cherche pas à le concatener |
KEYLIST | Permet d'afficher une liste de valeur de champs complémentaires pour les différents éléments d'une codification | KEYLIST("MECA#1";"THRESHOLD";"label";"<br/>") | |
KEYVAL | Permet la collecte de la valeur d'une propriété appartenant à une codification | KEYVAL("CLUSTER#2";"valor") | - CLUSTER = correspond à un code court d'une codification - NivCodif = 2 car la codification CLUSTER présente plusieurs niveaux et on veut récupérer la valeur pour le niveau 2 de cette codification - ProprieteDeLaCodif = valor - permet de récupérer la valeur donnée à la codification. NB: d'autres paramètres par défaut existent pour récupérer les différentes propriétés de la codification: - shortCode = pour récupérer le code court - parentCode = pour récupérer le code parent - label = pour récupérer le libellé - externalCode = pour récupérer le code externe - externalParentCode = pour récupérent le code parent externe - description = pour récupérer la description - icon = pour récupérer l'image - createTime = date de création - updateTime = date modification - createBy = créateur - updateBy = modificateur |
KEYVAL("CLUSTER#2";"NBOF") | - NBOF = Code d'une propriété (d'un champ) de la codification Voir paramétrage KEYVAL2 à la suite du tableau | ||
KEYVAL("OPE#1";"FLUX@JAL_EXP_END") | - NivCodif = 1 car la codification OPE ne comporte qu'un seul niveau - ProprieteDeLaCodif = FLUX@JAL_EXP_END Permet de récupérer pour le champ complémentaire FLUX, la valeur du champ JAL_EXP_END qui est lui même en champ complémentaire d'une autre codification Voir paramétrage KEYVAL3 à la suite du tableau | ||
KEYVAL | Permet la collecte de la valeur d'une propriété appartenant à un chronocode | KEYVAL("CHRONO#2";"endDate") | |
LAST | Retourne le dernier élément d'une collection | ||
LASTINDEXOF | Retourne la dernière date pour laquelle il y a une valeur pour la mesure passée en paramètre | =LASTINDEXOF("CHRONO#3";STK_TY_QTESTKDEPDISPO#S) | |
LASTVALUEOF | Retourne la dernière valeur connue pour la mesure passée en paramètre | =LASTVALUEOF("CHRONO#3";STK_TY_QTESTKDEPDISPO#S) | |
LEFT | Permet d'extraire la partie gauche d'un texte | LEFT(MAVALEUR#S;5) | Récupère les 5 caractères de gauche de ma valeur |
LIST | |||
LOG | Formule mathématique "logarithme" | LOG(MAMESURE#I) | |
MANDATORY | Retourne la valeur 1 si la valeur n'est ni vide ni nulle | MANDATORY(MAMESURE#I) | |
MAX | Retourne la valeur maximale parmi les éléments passés en paramètre | MAX(CANETN1#S;CANETN2#S) | |
MIN | Retourne la valeur minimale parmi les éléments passés en paramètre | MIN(CANETN1#S;CANETN2#S) | |
MONTH | Permet de retrouver le mois dans une date | MONTH(date) | |
NBCHAR | Retourne le nombre de caractères d'un texte | NBCHAR(MONTEXTE#S) | |
NOT | Inverse le résultat d'un booléen | NOT(EMPTY(MAVALEUR#S)) | |
NOW | Retourne la date du moment | NOW(1) | Utile pour alimenter la valeur par défaut d'une mesure |
OR | Retourne la valeur 1 si au moins un des éléments passé en paramètre est vrai. Retourne 0 dans le cas contraire. | OR(CABRUT#S>100;CABRUT#S<150) | |
PARENTKEYVAL | Permet la collecte de la valeur d'une propriété appartenant à une codification parente | ||
PI | Pi | PI(MAMESURE#I) | |
POW | Passe le nombre 1 à la puissance du nombre 2 | POW(MESURE1#S;MESURE2#S) | |
PREFER | Retourne la 1ère des 2 valeurs qui existe | PREFER(CANET#S;CAOBJ#I) | Permet par exemple de retourne la valeur S si elle a été reçue par flux, sinon on retourne la valeur I qui est une projection calculée pour le futur |
RANDOM | |||
REGEX | Permet d'échapper les caractères spécifiques. Pour mettre des guillements on met \" | =CONCAT(REGEX("\"");MAMES#I;REGEX("\"")) | |
REPLACE | Permet de remplacer une chaîne d'un texte par une autre chaîne | REPLACE(MAVALEUR#S;"9";"8") | Remplacement des 9 par des 8 dans mon texte Cas particulier: pour emplacer des guillemets (par le caractère + par exemple), la synthaxe est la suivante: =REPLACE(PIM_TITREWEBFR#I;"\"";"+") |
REQUIRED | Permet de tester l'existence d'une collection de mesures | REQUIRED(MES1#I;MES2#I) | |
REQUIREDFILTERS | |||
RIGHT | Permet d'extraire la partie droite d'un texte | RIGHT(MAVALEUR#S;8) | Récupère les 8 caractères de droite de ma valeur |
ROUND | Permet d'arrondir un nombre selon la décimale spécifiée | ROUND(CABRUT#S;0) | |
ROUNDDOWN | Permet d'arrondir à l'entier inférieur | ROUNDDOWN(CABRUT#S) | |
ROUNDUP | Permet d'arrondir à l'entier supérieur | ROUNDUP(CABRUT#S) | |
SERIES | |||
SIN | Fonction mathématique "sinus" | SIN(ANGLE#I) | |
SISTERS | |||
SLIDEAGG | Permet la collecte glissante d'une mesure à partir d'une date donnée pour une période donnée | =SLIDEAGG("CHRONO#3";VTE_TY_CANET#S;"SUM";0;-3) | Souvent utilisé avec la fonction SUM. Exemple: SLIDEAGG("CHRONO#3";VTE_TY_CANET#S;"SUM";0;-3) Ici: - CHRONO#3 correspond à ma semaine dans la définition des steps de la vision -Mesure à estimer - fonction d'agrégat - IndiceDepart = 0 => je recherche le les ventes depuis la semaine dernière - NbElementACollecter = -3 => Je recherche 3 périodes en arrière |
SPLIT | Ventile la valeur du parent vers les enfants en fonction de leur poids | SPLIT(Mesure;Poids) | |
SQRT | Racine carrée | SQRT(MAMESURE#S) | |
SUBCOLLECT | Permet de sommer sur un step les valeurs enregistrées sur des steps fils | SUM(SUBCOLLECT(CABRUT#S;3)) | Ici je souhaite récupérer la somme des CABRUT du step 3. La formule doit être paramétrée en type T pour le step sur lequel je souhaite consolider (donc ici pour le step 1 par ex) |
SUBSTR | Permet d'extraire une chaîne de caractères | SUBSTR(MAMESURE#S;0;2) | ici, je récupère les 2 premiers caractères |
SUM | Fait la somme des éléments en paramètre | SUM(CAHT#S;MTTVA#S) | |
TAN | Fonction mathématique "tangente" | TAN(ANGLE#I) | |
THRESHOLD | Permet de retourner une valeur selon des paliers | THRESHOLD("THR";"SEUIL";"VALEUR";MES_CATTCMAGOBJ#T) | THR = code de la codification dans laquelle on paramètre les seuils SEUIL = args de cette codification dans lequel on stock la valeur palier VALEUR = args de cette codification dans lequel on stocke la valeur à retourner MES = mesure de comparaison pour les euils |
TIMEADD | Ajouter des heures, minutes, secondes à un temps | ||
TIMEDIFF | Nombre de secondes entre 2 temps | ||
TODATE | Permet de créer une date à partir des éléments fournis en paramètre | TODATE(2023;12;24) | Retourne 24/12/2023 |
TODAY | Retourne la date du jour | TODAY(1) | Il est obligatoire de mettre une valeur de paramètre. Mais que l'on mette TODAY(1) ou TODAY(2), cela ne change pas le résultat retourné (il s'agira toujours de la date du jour). |
TRIGGER | Mettre à jour et enregistrer la valeur depuis une autre mesure | ||
TRIM | Supprime les espaces en début et en fin de texte | TRIM(MAVALEUR#S) | |
WHO | Retourne le login d'un utilisateur connecté | WHO(1) | |
YEAR | Permet de retrouver l'année dans une date | YEAR(date) | |
ZODIAC | Retourne le signe astral | ZODIAC(date) |
KEYVAL 1:
KEYVAL 2:
KEYVAL3:
La codif OPE comporte un champ complémentaire FLUX paramétré comme type de données= OBJECT et comme source = OPE_KIND#1