Rôle
Calcule de nouveaux champs pour chaque ligne. Les formules peuvent utiliser les colonnes d’entrée, les paramètres de blocs précédents et les champs déjà calculés plus haut dans la liste. L’assistant intégré ƒx présente un catalogue de fonctions et des exemples.
Entrées et sorties
Une entrée in ; out contient les champs d’origine et les nouveaux champs. Le nombre de lignes ne change pas.
Paramètres
| Le paramètre | Réglages et valeurs | Options et limites |
|---|---|---|
fields | De 1 à 100 champs : un nom unique et une expression de 2 048 caractères maximum. | Nombre : 1–100 |
decimal | Le séparateur décimal des valeurs numériques dans les données d’entrée. | Options : ., ,Par défaut : . |
Catalogue des fonctions de formule
| Fonction et arguments | Rôle | Exemple |
|---|---|---|
field(назва) | La valeur de la colonne dans la ligne actuelle. | field("Revenue") |
param(назва) | Un paramètre d’un bloc précédent, uniquement sur la branche actuelle. | param("Rate") |
number(значення) | Conversion en nombre après le bloc de format numérique. | number("12.5") |
text(значення) | Conversion d’une valeur en texte. | text(125) |
abs(число) | La valeur absolue d’un nombre. | abs(-12) |
round(число,знаків?) | Arrondit les demis en s’éloignant de zéro ; précision de −15 à 15. | round(12.345, 2) |
min(числа*) | Le plus petit des nombres fournis. | min(3, 8, 2) |
max(числа*) | Le plus grand des nombres fournis. | max(3, 8, 2) |
sum(числа*) | La somme des arguments de la ligne actuelle. Pour additionner plusieurs lignes, utilisez le regroupement. | sum(10, 20, 30) |
average(числа*) | La moyenne arithmétique des arguments. | average(10, 20) |
ceil(число) | Arrondit vers l’infini positif. | ceil(-1.2) |
floor(число) | Arrondit vers l’infini négatif. | floor(-1.2) |
trunc(число,знаків?) | Supprime la partie décimale sans arrondir. | trunc(12.349, 2) |
roundup(число,знаків?) | Arrondit en s’éloignant de zéro. | roundup(12.341, 2) |
rounddown(число,знаків?) | Arrondit vers zéro. | rounddown(-12.349, 2) |
sqrt(число) | La racine carrée d’un nombre positif ou nul. | sqrt(144) |
power(основа,степінь) | Élève à une puissance (exposant de −1 000 à 1 000). | power(2, 8) |
mod(число,дільник) | Le reste d’une division, avec le signe du diviseur. | mod(-7, 3) |
sign(число) | −1 pour un nombre négatif, 0 pour zéro, 1 pour un nombre positif. | sign(-12) |
log(число,основа?) | Logarithme ; en base 10 par défaut. | log(1000, 10) |
exp(число) | L’exponentielle e élevée à la puissance indiquée. | exp(1) |
clamp(число,мінімум,максимум) | Limite un nombre à l’intervalle indiqué. | clamp(120, 0, 100) |
percent(число,відсоток) | Le pourcentage indiqué d’un nombre. | percent(200, 15) |
pi() | Le nombre π. | pi() |
concat(значення*) | Concatène des valeurs textuelles. | concat("Plan", "-", 2026) |
upper(текст) | Majuscules. | upper("hello") |
lower(текст) | Minuscules. | lower("HELLO") |
title(текст) | Met une majuscule au début de chaque mot. | title("hello world") |
trim(текст) | Supprime les espaces au début et à la fin. | trim(" hello ") |
length(текст) | Le nombre de caractères Unicode. | length("Київ") |
left(текст,кількість) | Les N premiers caractères. | left("abcdef", 3) |
right(текст,кількість) | Les N derniers caractères. | right("abcdef", 3) |
mid(текст,позиція,кількість) | Un fragment de texte ; la première position est 1. | mid("abcdef", 2, 3) |
replace(текст,старий,новий) | Remplace chaque occurrence d’une sous-chaîne. | replace("a-b-c", "-", "/") |
find(шукати,текст,позиція?) | La position de la sous-chaîne, sensible à la casse ; 0 si elle est absente. | find("b", "abc") |
search(шукати,текст,позиція?) | La position de la sous-chaîne, sans distinction de casse ; 0 si elle est absente. | search("B", "abc") |
contains(текст,частина) | Indique si le texte contient une sous-chaîne. | contains("abcdef", "cd") |
starts_with(текст,початок) | Indique si le texte commence par la sous-chaîne indiquée. | starts_with("ABC", "A") |
ends_with(текст,кінець) | Indique si le texte se termine par la sous-chaîne indiquée. | ends_with("ABC", "C") |
clean(текст) | Supprime les caractères de contrôle. | clean("A\nB") |
repeat(текст,кількість) | Répète le texte dans une limite de 32 768 caractères. | repeat("0", 3) |
padleft(текст,довжина,символ?) | Complète à gauche avec un caractère, une espace par défaut. | padleft("42", 5, "0") |
padright(текст,довжина,символ?) | Complète à droite avec un caractère. | padright("42", 5, "0") |
transliterate(текст) | Translittération déterministe du texte cyrillique/grec et suppression des signes diacritiques latins. | transliterate("Київ") |
date(рік,місяць,день) | Crée une date calendaire ISO valide. | date(2026, 9, 27) |
today() | La date UTC actuelle, fixée pour tout le bloc. | today() |
now() | L’heure UTC, fixée pour tout le bloc. | now() |
datevalue(текст,формат?) | Analyse une date ; ISO par défaut ou un format strptime. | datevalue("27.09.2026", "%d.%m.%Y") |
formatdate(дата,формат) | Met en forme une date ; %Y — année, %m — mois, %d — jour. | formatdate("2026-09-27", "%d.%m.%Y") |
year(дата) | L’année de la date. | year("2026-09-27") |
month(дата) | Le mois de la date, de 1 à 12. | month("2026-09-27") |
day(дата) | Le jour du mois. | day("2026-09-27") |
hour(датачас) | L’heure UTC, de 0 à 23. | hour("2026-09-27T12:30:00Z") |
minute(датачас) | La minute, de 0 à 59. | minute("2026-09-27T12:30:00Z") |
second(датачас) | La seconde, de 0 à 59. | second("2026-09-27T12:30:05Z") |
weekday(дата) | Jour de semaine ISO : lundi vaut 1, dimanche vaut 7. | weekday("2026-09-27") |
weeknum(дата) | Le numéro de semaine ISO. | weeknum("2026-09-27") |
adddays(дата,днів) | Ajoute ou soustrait des jours calendaires. | adddays("2026-09-27", 7) |
addmonths(дата,місяців) | Décale par mois ; le jour est limité au dernier jour du mois. | addmonths("2026-01-31", 1) |
datediff(початок,кінець,одиниця?) | Différence : days, months (mois complets), years (années complètes), hours, minutes, seconds. | datediff("2026-01-01", "2026-02-01", "days") |
eomonth(дата,зсув?) | Le dernier jour du mois actuel ou décalé. | eomonth("2026-01-15", 1) |
coalesce(значення*) | La première valeur qui n’est ni null ni vide. | coalesce(None, "", 0, 5) |
ifelse(умова,так,ні) | Une condition à évaluation différée : seule la branche sélectionnée est évaluée. | ifelse(10 > 5, "yes", "no") |
iferror(вираз,заміна) | Remplace une erreur de calcul ; les erreurs de syntaxe et les champs manquants ne sont pas masqués. | iferror(10 / 0, 0) |
isblank(значення) | Indique si une valeur est null ou du texte vide. | isblank("") |
isnumber(значення) | Indique si une valeur est un nombre plutôt que du texte ou un booléen. | isnumber(12.5) |
istext(значення) | Indique si une valeur est du texte. | istext("12") |
and_(умови*) | Toutes les conditions sont vraies ; évaluation différée. | and_(1 > 0, 2 > 1) |
or_(умови*) | Au moins une condition est vraie ; évaluation différée. | or_(False, True) |
not_(умова) | Négation logique. | not_(False) |
Configuration étape par étape
- Ajoutez un champ et donnez-lui un nouveau nom.
- Insérez une référence avec field("Name") ou utilisez la liste des champs. Indiquez un paramètre avec param("Name").
- Choisissez une fonction dans l’assistant ƒx, renseignez ses arguments et vérifiez la formule.
- Placez les champs dépendants sous ceux qu’ils utilisent.
- Vérifiez les valeurs nulles, vides et invalides dans une simulation.
Règles et diagnostics
- Les colonnes existantes ne sont pas écrasées ; utilisez « Définir les valeurs des champs » pour les remplacer.
- Utilisez un point décimal dans les formules et placez le texte entre guillemets. Les opérations +, −, *, / et % s’appliquent aux nombres ; utilisez concat pour réunir du texte.
- Une formule ne peut pas référencer un champ qui n’a pas encore été calculé. SOURCE_COLUMNS_MISSING et PARAMETER_UNKNOWN signalent des noms indisponibles.
- ifelse évalue uniquement la branche sélectionnée. Pour une division, vérifiez la présence de zéro ou utilisez iferror pour les erreurs de calcul attendues.
- Les résultats textuels sont limités à 32 768 caractères ; répartissez une formule trop complexe sur plusieurs champs. Les fonctions d’heure actuelle utilisent un seul instant UTC pour tout le bloc.
Exemple de configuration
Créez Amount = field("Price") * field("Quantity"), puis AmountUAH = round(field("Amount") * param("Rate"), 2). Pour le prix moyen, utilisez ifelse(field("Quantity") == 0, 0, field("Amount") / field("Quantity")).
Éditeur de formules
L’éditeur colore les formules, suggère des fonctions, champs et paramètres pendant la saisie et affiche l’aide de l’argument actuel. Ouvrez la description détaillée d’une fonction pour consulter les explications des arguments et un exemple évalué. « Plein écran » ouvre un grand éditeur avec les listes de champs, paramètres et fonctions ; « Réduire » revient au panneau. Les expressions multilignes et les commentaires de ligne # ou // sont pris en charge. Ctrl/⌘ + / active ou désactive les commentaires sur les lignes sélectionnées ; les commentaires ne comptent pas dans la limite de 2 048 caractères de l’expression.
Supprimer du texte à l’une des extrémités
removeleft(text, count) renvoie le texte sans ses N premiers caractères ; removeright(text, count) supprime ses N derniers caractères. Le texte restant ne change pas. Par exemple, removeleft("UA-001", 3) donne 001, et removeright("report.csv", 4) donne report. Cela diffère de left et right, qui conservent le fragment correspondant.