36Nouveau chapitre éditeur de calcul
Introduction
L’éditeur de calcul de Crésus Salaires permet de créer des formules personnalisées pour obtenir des résultats précis : calculer un montant, afficher un texte conditionnel, insérer une date, ou combiner diverses informations provenant de différentes rubriques.
L’éditeur de calcul affiche trois sections :
- La zone de formule (en haut) : champ dans lequel on écrit le calcul. On combine des chiffres, des opérations (+, –, *, /), des fonctions (par ex. SOMME() ou SI()), ou encore des rubriques prédéfinies (comme Salaire mensuel ou Nom de l’employé).
- Opérations (au centre) : liste de fonctions disponibles, classées par type (arithmétiques, logiques, dates, chaînes de texte, etc.).
-
Variables (en bas) : ensemble des rubriques disponibles dans Crésus. Double-cliquer sur une rubrique ou une fonction l’insère directement dans la zone de formule.
Ce chapitre vous présente une grande partie des fonctions générales de l’éditeur de calcul. D’autres fonctions plus rares sont également disponibles, elles sont décrites dans cet article de notre base de connaissance.
Quelques principes de base
-
Les nombres s’écrivent manuellement et les décimales sont séparées par un point (pas une virgule) :
2000 * 0.08
calcule 8 % de 2000. -
Les chaînes de texte (mots ou phrases) doivent être placées entre guillemets :
"Bonjour"
ou"à verser"
. -
Les rubriques doivent être insérées telles qu’elles apparaissent dans la liste (par ex.
@Ind:Salaire mensuel
), nous vous déconseillons donc de les saisir manuellement. -
Les espaces ne sont pas obligatoires mais rendent la lecture plus claire (
2000+300
ou2000 + 300
). Si vous souhaitez inclure un espace dans le résultat du calcul (par exemple entre le prénom et le nom de l’employé), il faut saisir dans la zone de formule un espace entre guillemet :" "
. -
Les sauts de ligne ne changent pas le calcul, mais permettent d’aérer les longues formules.
La fonction CHAINE
Pour insérer une rubrique dans un texte, il faut distinguer deux cas :
Si la rubrique est déjà du texte (nom, prénom, adresse), il n’est pas nécessaire de la convertir :
"Employé : " + @Donnée:Nom de l'employé
Résultat : « Employé : Dupont ».
Si la rubrique est un nombre ou une date (salaire, taux, date d’entrée), il faut convertir la valeur en texte avec la fonction CHAINE(). Cette fonction s’écrit de cette façon :
CHAINE(valeur ; décimales)
-
valeur : ce qui doit être converti en texte (par ex. un salaire, une date, un pourcentage).
-
décimales : le nombre de chiffres à afficher après la virgule.
Par exemple :
"Montant : " + CHAINE(@Ind:Salaire mensuel ; 2)
Résultat : « Montant : 4500.00 ».
Les opérateurs arithmétiques
Dans l’éditeur de calcul, les opérateurs suivants servent aux calculs numériques :
-
+ additionne deux valeurs. Exemple : le salaire de base + une prime.
-
– soustrait une valeur. Exemple : le salaire brut – une retenue.
-
* multiplie deux valeurs. Exemple : nombre d’heures * taux horaire.
-
/ divise une valeur par une autre. Exemple : montant / nombre de jours.
Les opérateurs de comparaison
Ces opérateurs permettent de tester une condition. Ils servent souvent dans les fonctions logiques comme SI()
.
-
= signifie « égal à ». Exemple : vérifier si une rubrique est égale à 0.
-
< signifie « plus petit que ». Exemple : comparer un taux avec un seuil minimal.
-
> signifie « plus grand que ». Exemple : tester si le nombre d’heures est supérieur à 40.
-
<= signifie « plus petit ou égal à ».
-
>= signifie « plus grand ou égal à ».
-
<> signifie « différent de ».
Une comparaison retourne toujours une valeur logique : vrai ou faux.
Il est possible d’associer plusieurs conditions grâce aux opérateurs logiques :
-
ET vérifie que deux conditions sont vraies en même temps.
-
OU vérifie qu’au moins une des conditions est vraie.
-
NON inverse le résultat d’une condition (vrai devient faux, et inversement).
Par exemple :
(@Ind:Salaire mensuel > 0) ET (@Ind:Taux AVS <> 0)
Résultat : cette condition retourne VRAI si le salaire est positif et si le taux AVS est différent de zéro.
Les cases à cocher (valeurs oui/non)
Certaines rubriques sont de type case à cocher : elles indiquent simplement si une condition est vraie (case cochée) ou fausse (case non cochée). Dans Crésus, ces rubriques valent :
-
1 si la case est cochée (oui / vrai),
-
0 si la case n’est pas cochée (non / faux).
Exemple (filtrer les employés décédés) :
@Donnée:Employé décédé = 1
Résultat : ne s’afficheront que les employés dont la case Employé décédé est cochée.
Les fonctions logiques
Les fonctions logiques permettent de définir un résultat différent selon qu’une condition est vraie ou fausse.
La fonction SI()
est la plus courante. Elle s’écrit de la manière suivante :
SI(condition ; valeur si vrai ; valeur si faux)
-
condition : une comparaison ou une combinaison de comparaisons (par ex.
Salaire > 0
). -
valeur si vrai : le résultat à afficher si la condition est vraie.
-
valeur si faux : le résultat à afficher si la condition est fausse.
Exemple 1 (texte selon salaire) :
SI(@Ind:Salaire mensuel > 0 ; "à verser" ; "à retenir")
Résultat : affiche « à verser » si le salaire est positif, sinon « à retenir ».
Exemple 2 (montant minimum) :
SI(@Ind:Salaire mensuel < 2000 ; 2000 ; @Ind:Salaire mensuel)
Résultat : si le salaire est inférieur à 2000, retourne 2000, sinon le salaire réel.
Exemple 3 (condition combinée) :
SI((@Ind:Salaire mensuel > 0) ET (@Ind:Taux AVS <> 0) ; "cotisation due" ; "aucune cotisation")
Résultat : affiche « cotisation due » si le salaire est positif et que le taux AVS est différent de zéro.
Les SI imbriqués
Il arrive que deux résultats possibles ne suffisent pas. Dans ce cas, on peut imbriquer plusieurs SI()
, c’est-à-dire placer un SI()
dans l’un des arguments d’un autre SI()
.
La syntaxe reste la même (mais est plus longue à lire). Chaque condition est testée l’une après l’autre.
Exemple 1 (trois cas différents) :
On veut afficher :
-
« petit salaire » si le salaire est inférieur à 2000
-
« moyen salaire » si le salaire est entre 2000 et 4000
-
« grand salaire » si le salaire est supérieur à 4000
SI(@Ind:Salaire mensuel < 2000 ; "petit salaire" ; SI(@Ind:Salaire mensuel <= 4000 ; "moyen salaire" ; "grand salaire"))
Exemple 2 – (application d’un taux différent) :
On veut appliquer :
-
5 % si le salaire est inférieur à 2000
-
10 % si le salaire est entre 2000 et 4000
-
15 % si le salaire est supérieur à 4000
SI(@Ind:Salaire mensuel < 2000 ; @Ind:Salaire mensuel * 0.05 ;SI(@Ind:Salaire mensuel <= 4000 ; @Ind:Salaire mensuel * 0.10 ;@Ind:Salaire mensuel * 0.15))
Les fonctions de texte (chaînes)
Ces fonctions permettent de manipuler du texte : transformer une chaîne, en extraire une partie ou la mettre en forme.
- MAJUSCULE(texte) : affiche un texte en majuscules.
Exemple : MAJUSCULE("Dupont")
retourne DUPONT
.
- MINUSCULE(texte) : affiche un texte en minuscules.
Exemple : MINUSCULE("Dupont")
retourne dupont
.
- LONGUEUR(texte) : affiche le nombre de caractères (espaces compris) d’un texte.
Exemple : LONGUEUR("Jean")
retourne 4
.
- EXTRAIRE(texte ; position ; nombre) : affiche une partie du texte, à partir d’une position donnée.
position = la place du premier caractère à extraire (le premier caractère est en position 1).
nombre = le nombre de caractères à extraire.
Exemple : EXTRAIRE("Jean Dupont" ; 6 ; 6)
retourne Dupont
.
- REMPLACE(texte ; position ; nombre ; nouveau texte) : remplace une partie du texte par un autre.
Exemple : REMPLACE("Jean Dupont" ; 6 ; 6 ; "Durand")
retourne Jean Durand
.
Concaténer
Pour coller plusieurs textes ensemble, il suffit d’utiliser le signe + :
Exemple :
"Employé : " + @Donnée:Prénom + " " + MAJUSCULE(@Donnée:Nom)
-
"Employé : "
= texte fixe. -
@Donnée:Prénom
= la rubrique contenant le prénom (ex. Jean). -
" "
= un espace inséré manuellement pour séparer prénom et nom. -
@Donnée:Nom
= la rubrique contenant le nom (ex. Dupond). MAJUSCULE(@Donnée:Nom)
= DUPOND
Résultat : « Employé : Jean DUPOND »
Les fonctions de date
Ces fonctions permettent de travailler avec des dates : en extraire une partie (jour, mois, année), calculer une durée ou mettre une date en forme.
-
JOUR(date) : retourne le jour du mois (1 à 31).
Exemple :JOUR(@Donnée:Date d’entrée)
retourne « 15 » si la date est le 15. -
MOIS(date) : retourne le mois (1 à 12).
Exemple :MOIS(@Donnée:Date d’entrée)
retourne « 3 » si la date est en mars. -
ANNEE(date) : retourne l’année sur 4 chiffres.
Exemple :ANNEE(@Donnée:Date d’entrée)
retourne2025
. - AUJOURDHUI() : retourne la date du jour (date système).
Exemple : ANNEE(AUJOURDHUI())
retourne l’année en cours.
- DIFFJOURS(date1 ; date2) : retourne le nombre de jours entre deux dates.
Exemple : DIFFJOURS(AUJOURDHUI() ; @Donnée:Date d’entrée)
calcule l’ancienneté en jours.
- DIFFMOIS(date1 ; date2) : retourne le nombre de mois entre deux dates.
- DIFFANNEES(date1 ; date2) : retourne le nombre d’années entre deux dates.
Exemple : DIFFANNEES(@Donnée:Date de naissance ; AUJOURDHUI())
retourne l’âge de l’employé.
- DATE(jour ; mois ; année) : retourne une date spécifiée au format jj.mm.aaaa
Exemple : DATE(25;12;18)
retourne « 25.12.2018 ».
- JDLS(date) : retourne le jour de la semaine (1 = lundi à 7 = dimanche) de la date indiquée.
Exemple : JDLS(28;3;14)
retourne « 5 » (vendredi)
Les fonctions mathématiques et statistiques
Ces fonctions permettent d’affiner ou de contrôler les calculs numériques. Elles sont utiles par exemple pour arrondir un résultat, comparer plusieurs montants ou manipuler des valeurs intermédiaires.
- SOMME(valeur1 ; valeur 2 ; …) : retourne la somme d’une liste de nombres.
Exemple : SOMME(12;45;-3;28)
retourne « 82 ».
- ARRONDI(valeur ; décimales) : arrondit une valeur au nombre de décimales souhaité.
Exemple : ARRONDI(123.456 ; 2)
retourne « 123.46 ».
- INT(valeur) : retourne uniquement la partie entière d’un nombre.
Exemple : INT(123.456)
retourne « 123 ».
- MAX(valeur1 ; valeur2) : retourne la plus grande des deux valeurs.
Exemple : MAX(1000 ; 1200)
retourne « 1200 ».
- MIN(valeur1 ; valeur2) : retourne la plus petite des deux valeurs.
Exemple : MIN(1000 ; 1200)
retourne « 1200 ».
- MOYENNE(valeur1 ; valeur2 ; …) : calcule la moyenne des valeurs indiquées.
Exemple : MOYENNE(100 ; 200 ; 300)
retourne « 200 ».
La fonction TOTAL
La fonction TOTAL() permet de sommer plusieurs valeurs d’une rubrique sur une période donnée. Elle est très utilisée pour établir des cumuls : total des salaires, total des retenues AVS, total des heures travaillées, etc.
TOTAL(rubrique ; période)
-
rubrique : la rubrique dont on veut totaliser les valeurs (par ex.
@Ind:Salaire mensuel
). -
période : l’intervalle sur lequel on calcule le total (par ex. un mois, une année, toute la durée de l’employé).
Exemple 1 (total annuel d’un salaire) :
TOTAL(@Ind:Salaire mensuel ; "année")
Résultat : additionne tous les salaires mensuels de l’année en cours pour l’employé.
Exemple 2 (total sur toute la période de travail) :
TOTAL(@Ind:Salaire mensuel ; "tout")
Résultat : retourne la somme des salaires depuis l’entrée de l’employé jusqu’à aujourd’hui.
Exemple 3 (total d’une cotisation totale) :
TOTAL(@Ind:AVS ; "mois")
Résultat : donne le montant total d’AVS pour le mois.
Les totalisateurs
Les fonctions de totalisation permettent de cumuler des valeurs sur plusieurs dimensions : tous les employés, une période donnée (année, trimestre, mois précédent), ou encore selon des critères particuliers.
Elles ne renvoient donc pas uniquement la valeur d’une rubrique pour un employé et un mois donnés, mais calculent des sommes globales.
-
TOTEMPLOYES()
Additionne les valeurs d’une rubrique pour tous les employés.
Exemple : obtenir le total des salaires bruts versés dans l’entreprise. -
TOTANNEE()
Calcule le total depuis le début de l’année jusqu’au mois courant, en tenant compte uniquement des périodes où un salaire a été calculé.
Exemple : total des cotisations AC pour l’année en cours. -
TOUTANNEE()
Comme TOTANNEE, mais inclut également les mois sans salaire. On peut ainsi ajouter une valeur par défaut aux périodes vides. -
TOTTRIMESTRE()
Cumule les valeurs sur le trimestre où se situe le mois sélectionné.
Exemple : total des remboursements kilométriques pour le trimestre.
-
PRECEDENT()
Donne la valeur d’une rubrique pour la période précédente (y compris celle de l’année passée si l’on est en janvier).
Exemple : montant du salaire versé le mois dernier. -
TOTPRECEDENT()
Additionne toutes les valeurs des périodes écoulées.
La fonction CUMUL
Cette fonction additionne toutes les indemnités selon leur assujettissement à un brut déterminant ou selon leur affectation dans le certificat de salaire.
Par exemple :
-
CUMUL("AVS")
donne le total soumis à l’AVS. -
CUMUL("2.1")
donne le total des montants reportés en case 2.1 du certificat de salaire.
Les critères utilisables sont nombreux (BRUT, NET, VERSE, AVS, AC, LAA, LPP, etc.).
On peut combiner plusieurs critères avec ET (&
) ou OU (|
), ou exclure un critère avec ! (par ex. !AVS
pour les indemnités non soumises à l’AVS).
La fonction DEFAUT
Cette fonction permet de substituer la valeur de son choix à une valeur vide.
Par exemple :
DEFAUT(@Ind:Prime exceptionnelle ; 0)
retourne la prime si elle existe, sinon 0.
Autres
SEXE() | Donne 0 ou 1 selon le sexe de l’employé : 0 = homme, 1 = femme. Il est aussi possible d’utiliser @Donnée:Sexe de l’employé(e). |
HOMME() | Évalue l’expression entre parenthèses pour la valeur applicable aux hommes : HOMME(@Donnée:Age retraité AVS) Donne l’âge de la retraite AVS pour les hommes. |
FEMME() | Évalue l’expression entre parenthèses pour la valeur applicable aux femmes : FEMME(@Donnée:Age retraité AVS) Donne l’âge de la retraite AVS pour les femmes. |