Les formules peuvent impliquer des fonctions, des opérations numériques, des opérations logiques, des opérations avec du texte, etc. Pour en savoir plus, consultez cet article.
Dans une formule, vous pouvez référencer des fields (colonnes) par leur nom. Pour renvoyer la valeur d'un field existant, vous pouvez simplement saisir le nom de ce field :
Par exemple, si vous souhaitiez obtenir un total sur la base de vos fields Prix et Quantité, voici à quoi ressemblerait la formule :
Le nom d'un field composé de plusieurs mots doit être placé entre deux accolades :
Les formules peuvent inclure des parenthèses () pour modifier l'ordre des opérations :
Expressions
Une expression est créée lorsque vous combinez des valeurs, des fields ou des formules et que cette combinaison donne une valeur unique. Vous pouvez créer des expressions simples, comme dans l'exemple ci-dessous (la formule ci-dessous renverrait une valeur unique, c'est donc une expression) :
Vous pouvez également créer une succession d'expressions. Par exemple, la structure technique (pattern) de la formule IF() est IF (expression, value1, value2). Toujours avec le même exemple, si nous souhaitions savoir quand le prix total de notre article est supérieur à 100 :
L'expression dans le bloc ci-dessus est {Sales Tax} * {Price} > 100
.
Vous voulez en savoir plus sur les expressions ? Ou sur les formules en général ? Voici la Formula Playground base pour vous permettre de tester les formules de façon concrète. Enjoy !
Text operators and functions
Pour tester vous-même les text functions, cliquez sur la table "✏️Text function examples" dans la base Formula Playground.
Text operators
Operator | Description | Exemples |
---|---|---|
& | Assemble (concatène) plusieurs valeurs texte en une seule valeur texte. Pour concaténer du texte, placez-le entre des guillemets. Pour concaténer des guillemets, vous devez utiliser une barre oblique inversée (\) comme caractère d'échappement. Équivalent à CONCATENATE(). | Name & " - " & Age => Jane - 28 "\""&{Product Name}&"\"" => "GreatProduct" |
Text functions
Fonction | Description | Exemples |
---|---|---|
ARRAYJOIN([item1, item2, item3], separator) | Place les éléments en string (chaîne) avec un séparateur. | ARRAYJOIN(values, "; ") => 1; 2; 3 |
CONCATENATE(text1, [text2, ...]) | Rassemble les éléments texte en une seule valeur texte. Pour concaténer du texte, placez-le entre des guillemets. Pour concaténer des guillemets, vous devez utiliser une barre oblique inversée (\) comme caractère d'échappement. Comme pour l'operator &.
| CONCATENATE("Bob"," - ", 43) => Bob - 43 CONCATENATE("\"",{Name},"\"") => "Bob" |
ENCODE_URL_COMPONENT(component_string) | Remplace certains caractères par des équivalents encodés pour les URL ou URI. | ENCODE_URL_COMPONENT("chicken & waffles") => chicken%20%26%20waffles |
FIND(stringToFind, whereToSearch,[startFromPosition]) | Compte le nombre d'occurrences "stringToFind" dans la chaîne "whereToSearch". "StartFromPosition" est 0 par défaut. Si aucune valeur stringToFind n'est trouvée, le résultat est 0. Similaire à SEARCH(). Mais avec SEARCH(), si aucune occurrence n'est trouvée, le résultat est vide. | FIND("fox", "quick brown fox") => 13 |
LEFT(string, howMany) | Extrait les caractères à partir du début de la string selon le howMany. | LEFT("quick brown fox", 5) => quick |
LEN(string) | Donne la longueur d'une string. | LEN("quick brown fox") => 15 |
LOWER(string) | Met la string en minuscules. | LOWER("Hello!") => hello! |
MID(string, whereToStart, count) | Extrait une sous-chaîne de caractères à partir de whereToStart. | MID("quick brown fox", 6, 5) => brown |
REPLACE(string, start_character, number_of_characters, replacement) | Remplace les caractères de début selon le start character par le texte de remplacement. Pour trouver et remplacer toutes les occurrences old_text par new_text, voir SUBSTITUTE().) | REPLACE("database", 2, 5, "o") => dose |
REPT(string, number) | Répète la string le nombre de fois spécifié. | REPT("Hi! ", 3) => Hi! Hi! Hi! |
RIGHT(string, howMany) | Extrait les caractères à partir de la fin de la string selon le howMany. | RIGHT("quick brown fox", 5) => n fox |
SEARCH(stringToFind, whereToSearch,[startFromPosition]) | Compte le nombre d'occurrences stringToFind dans la chaîne whereToSearch. Par défaut, startFromPosition est 0. S'il n'y a aucune occurrence stringToFind, le résultat est vide. Similaire à FIND(). Mais avec FIND(), si aucune occurrence stringToFind n'est trouvée, le résultat est 0. | SEARCH("World", "Hello World") => 7 |
SUBSTITUTE(string, old_text, new_text, [index]) | Remplace old_text par new_text. Vous pouvez spécifier un nombre (à partir de 1) pour remplacer une occurrence old_text spécifique. Si aucun nombre n'est spécifié, toutes les occurrences old_text sont remplacées. (Pour remplacer les caractères d'une string à partir d'un point spécifique, voir REPLACE().) Pour apprendre à utiliser la formule SUBSTITUTE(), consultez cet article : 7 time-saving substitution formulas. | SUBSTITUTE("gold mold", "old", "et") => get met SUBSTITUTE("gold mold", "old", "et", 1) => get mold |
T(value1) | Renvoie la valeur s'il s'agit de texte. Si ce n'est pas du texte, renvoie "blank". | T("text only") => text only T(42) => blank |
TRIM(string) | Supprime les espaces au début et à la fin de la string. | TRIM(" Hello! ") => Hello! |
UPPER(string) | Met la string en majuscules. | UPPER("Hello!") => HELLO! |
Logical operators and functions
Pour tester les logical functions, consultez la table "❓ Logical function examples" dans la base Formula Playground.
Logical operators
Operator | Description | Exemples |
---|---|---|
> | Supérieur à | 3 > 2 => VRAI |
< | Inférieur à | 2 < 3 => VRAI |
>= | Supérieur ou égal à | 3 >= 3 => VRAI |
<= | Inférieur ou égal à | 2 <= 2 => VRAI |
= | Est égal à | 2 = 2 => VRAI |
!= | N'est pas égal à | 3 != 2 => VRAI |
Logical functions
Function | Description | Exemples |
---|---|---|
AND(expression, [expression, ...]) | Renvoie true si toutes les valeurs sont vraies. Sinon, renvoie false (faux). | AND({Field 1}, {Field 2}) => 1 (if both field values are truthy) |
BLANK() | Renvoie la valeur blank. | IF({Price} > 1000000, "Wow, that's pretty expensive", BLANK()) |
ERROR() | Renvoie la valeur error. | IF({Price} < 0, ERROR(), "More than zero!") |
FALSE() | Logical value fausse. False (faux) est représenté numériquement par un 0. | IF(2 = 3, TRUE(), FALSE()) => 0 |
IF(expression, value1, value2) | Renvoie value1 si l'expression est vraie. Sinon, renvoie value2. Peut également être utilisée pour les nested IF statements. Peut également être utilisée pour vérifier si une cellule est blank/empty. | IF({Sales} > 50, "Win", "Lose")
IF({WaterTemp} > 100, IF({WaterTemp }< 212, "just right", "too hot"), "too cold")
IF({Due Date} = BLANK(), "Please enter date", "Date entered") |
ISERROR(expr) | Renvoie true si l'expression provoque une erreur. | ISERROR(2/0) => 1 (true because of the "divide by zero" error) |
NOT(expression) | Inverse la valeur logique de son argument. | NOT({Total} = 0) |
OR(expression, [exp2, ...]) | Renvoie true si l'un des arguments est vrai. | OR({Field 1}, {Field 2}) => 1 (if one field value is truthy) |
SWITCH(expression, [pattern, result ... , default]) | Prend une expression, une liste des valeurs possibles pour cette expression, et pour chacune, une valeur que l'expression doit afficher pour ce cas. Peut aussi prendre une valeur par défaut. Dans de nombreux cas, la formule SWITCH() peut être utilisée à la place d'une nested IF formula. | Example 1: SWITCH({Status}, => if the {Status} field is the value "To Do" then this would return "Get this started!" SWITCH( 1, |
TRUE() | Logical value vraie. La valeur true est representée numériquement par un 1. | IF(2 = 2, TRUE(), FALSE()) => 1 |
XOR(expression1, [exp2, ...]) | Renvoie true si un nombre impair d'arguments sont vrais. | XOR(TRUE(), FALSE(), TRUE()) => 0 XOR(TRUE(), FALSE(), FALSE()) => 1 |
Numeric operators and functions
Pour tester les numeric functions, consultez la table "#️⃣ Numeric function examples" dans la base Formula Playground.
Numeric operators
Operator | Description | Exemples |
---|---|---|
+ | Ajoute deux valeurs numériques | Size + 2 |
- | Supprime deux valeurs numériques | Price - 3.00 |
* | Multiplie deux valeurs numériques | Price * Quantity |
/ | Divise deux valeurs numériques | Price / {Num People} |
Numeric functions
Function | Description | Exemples |
---|---|---|
ABS(value) | Renvoie la valeur absolue. | ABS(-5) => 5 |
AVERAGE(number1, [number2, ...]) | Renvoie la moyenne des nombres. | AVERAGE(2.3, 5.7, 6.8) => 3.93 |
CEILING(value, [significance]) | Renvoie le multiple entier significatif le plus proche supérieur ou égal à la valeur (1 par défaut). | CEILING(1.01) => 2 CEILING(1.01, 0.1) => 1.1 |
COUNT(number1, [number2, ....]) | Compte le nombre d'éléments numériques. | COUNT(1,2,3,"","four") => 3 |
COUNTA(textOrNumber1, [number2, ....]) | Compte le nombre de valeurs non vides. Cette fonction compte à la fois les valeurs numériques et texte. | COUNTA(1,2,3,"","four") => 4 |
COUNTALL(textOrNumber1, [number2, ....]) | Compte le nombre d'éléments y compris le texte et les blanks. | COUNTALL(1,2,3,"","four") => 5 |
EVEN(value) | Renvoie le plus petit nombre entier pair supérieur ou égal à la valeur spécifiée. | EVEN(2.2) => 4 EVEN(-1.6) => -2 |
EXP(power) | Calcule le nombre d'Euler (e) à la puissance spécifiée. | EXP(1) => 2.71828 EXP(3) => 20.08554 |
FLOOR(value, [significance]) | Renvoie le multiple entier significatif le plus proche inférieur ou égal à la valeur (1 par défaut). | FLOOR(1.99) => 1 FLOOR(1.99, 0.1) => 1.9 |
INT(value) | Renvoie le plus grand nombre entier inférieur ou égal à la valeur spécifiée. | INT(1.99) => 1 INT(-1.99) => -2 |
LOG(number, [base]) | Calcule le logarithme de la valeur dans la base fournie (10 par défaut). | LOG(1024, 2) => 10 LOG(1000) => 3 |
MAX(number1, [number2, ...]) | Renvoie le plus grand des nombres donnés. | MAX({Field1}, {Field2})
MAX(10, 100) => 100 |
MIN(number1, [number2, ...]) | Renvoie le plus petit des nombres donnés. | MIN({Field1}, Field2})
MIN(10, 100) => 10 |
Date and time functions
Pour avoir des exemples d'utilisation de ces formules, consultez cet article : Check out this blog post on our top 10 time-saving date formulas.
Pour tester les date and time functions, consultez la table "📆 Date and time function examples" dans la base Formula Playground.
Function | Description | Exemples |
---|---|---|
CREATED_TIME() | Donne la date et l'heure de création d'un record. | CREATED_TIME() => 2015-11-11T22:18:17 |
DATEADD([date], [#], 'units') | DATEADD("07/10/19", 10, "days") => 2019-07-20
DATEADD("07/10/19 01:01:00", 60, "seconds") => 2019-07-10 1:02am
DATEADD(TODAY(), 20, "days") | |
DATESTR([date]) | Convertit un datetime en format YYYY-MM-DD. | DATESTR("12/13/21") => 2021-12-13 |
DATETIME_DIFF([date1], [date2], 'units') | Renvoie la différence entre deux datetimes (par une soustraction [date2]-[date1]). Si [date2] est postérieure à [date1], la fonction renvoie une valeur négative. :
|
DATETIME_DIFF("04/06/2019 12:00", "04/05/2019 11:00", "hours") => 25
DATETIME_DIFF("04/06/2019 12:00", "04/05/2019 11:00", "days") => 1
DATETIME_DIFF({Date Bought}, {Date Sold}, 'minutes') => 30 |
DATETIME_FORMAT([date], '[specified output format]') | DATETIME_FORMAT("07/10/19", "YYYY") => 2019
DATETIME_FORMAT("07/10/19", "DD YYYY") => 10 2019 | |
DATETIME_PARSE(date, ['input format'], ['locale']) | Analyse la représentation textuelle d'une date et la convertit en son DateTime équivalent. | DATETIME_PARSE("4 Mar 2017 23:00", 'D MMM YYYY HH:mm') => 3/4/2017 11:00pm |
DAY([date]) | Renvoie le jour du mois sous la forme d'un nombre entier compris entre 1 et 31. | DAY("02/17/2013") => 17 |
HOUR([datetime]) | Renvoie l'heure sous forme de nombre entier compris entre 0 (12:00 AM) et 23 (11:00 PM). | HOUR("4 Mar 2017 7:00") => 7 |
IS_AFTER([date1], [date2]) | Détermine si [date1] est postérieure à [date2] (1 si oui, 0 si non). | IS_AFTER("1/1/1979", "1/1/2000") => 0
IS_AFTER({Deadline}, TODAY()) |
IS_BEFORE([date1], [date2]) | Détermine si [date1] est antérieure à [date2] (1 si oui, 0 si non). | IS_BEFORE("1/1/1979", "1/1/2000") => 1
IS_BEFORE({Deadline}, TODAY()) |
IS_SAME([date1], [date2], [unit]) | Compare deux dates et détermine si elles sont identiques (1 si oui, 0 si non). | IS_SAME("1/1/1979", "1/1/1979") => 1
IS_SAME({Date 1}, {Date 2}, 'hour') => 0 |
LAST_MODIFIED_TIME([{field1},{field2}, ...]) | LAST_MODIFIED_TIME() => 5/9/2019 1:27 a.m. LAST_MODIFIED_TIME({Due Date}) => 3/16/2019 6:45 p.m. | |
MINUTE([datetime]) | Renvoie les minutes sous la forme d'un nombre entier compris entre 0 et 59. | MINUTE("02/17/2013 7:31") => 31 |
MONTH([date]) | Donne le numéro du mois (entre 1 et 12) à partir d'une date. | MONTH("02/17/2013 7:31") => 2 |
NOW() | Similaire à la fonction TODAY(). La fonction NOW() renvoie la date ET l'heure actuelles. Elle est actualisée à chaque modification ou toutes les 15 minutes lorsqu'une base est ouverte. | NOW() => 08/06/2020 8:03am TODAY() => 08/06/2020 12:03am |
TIMESTR([date/timestamp]) | Affiche uniquement le temps de la string (HH:mm:ss). | TIMESTR("02/17/2013 7:31:25") => 7:31:25 |
TONOW([date]) & FROMNOW([date]) | Calcule le nombre de jours entre deux dates. | TONOW({Date}) => 25 days
FROMNOW({Date}) => 25 days |
TODAY() | Similaire à la fonction NOW() : TODAY() renvoie la date du jour. Elle est actualisée lorsqu'il y a un changement ou approximativement toutes les 15 minutes quand une base est ouverte. | NOW() => 08/06/2020 8:03am TODAY() => 08/06/2020 12:03am |
WEEKDAY(date, [startDayOfWeek]) | Renvoie un nombre entier de 0 à 6 pour représenter le jour de la semaine. | WEEKDAY("2021-06-09") => 3 (for Wednesday) |
WEEKNUM(date, [startDayOfWeek]) | Renvoie le numéro de la semaine (1-54).
| WEEKNUM("02/17/2013") |
WORKDAY(startDate, numDays, [holidays]) | Renvoie une date qui est | WORKDAY('10/16/20', 10, '2020-10-16, 2020-10-19') => 2020-11-02 WORKDAY({Launch date}, 100) |
WORKDAY_DIFF(startDate, endDate, [holidays]) | Compte le nombre de jours ouvrés entre startDate et endDate (week-ends et jours fériés exclus). | WORKDAY_DIFF('10/16/20','11/02/2020', '2020-10-16, 2020-10-19') => 10 WORKDAY_DIFF({Assignment date}, {Due Date}, {Holidays}) |
YEAR([date]) | Renvoie une année sous forme de nombre entier à 4 chiffres. | YEAR("2021-06-09") => 2021 |
Array functions
Note : les array functions ne peuvent être utilisées que dans les rollup fields ou lorsque le input field est un lookup.
Pour tester les array functions, consultez la table "[] Array function examples" dans la base Formula Playground.
Function | Description | Exemples |
---|---|---|
ARRAYCOMPACT(values) | Supprime les strings vides et les valeurs nulles. Conserve "false" et les chaînes contenant un ou plusieurs caractères vides. | values = [1,2,3,"",null,false," "] ARRAYCOMPACT(values) => [1,2,3,false," "] |
ARRAYFLATTEN(values) | Pour aplatir les éléments d'un tableau imbriqué dans un seul tableau de valeurs. | values = [[1,2,"",3],[false]] ARRAYFLATTEN(values) => [1,2,3,false] |
ARRAYJOIN(values, separator) | Renvoie la chaîne composée de tous les éléments avec un séparateur. | values = [1,2,3] ARRAYJOIN(values, "; ") => "1; 2; 3" |
ARRAYUNIQUE(values) | Supprime les doublons. | values = [1,2,3,3,2,1] ARRAYUNIQUE(values) => [1,2,3] |
Record functions
Pour tester les record functions, consultez la table "✍️ Record function examples" dans la base Formula Playground.
REGEX functions
Les expressions régulières (ou REGEX) peuvent être utilisées pour faire correspondre des combinaisons de caractères dans des chaînes de texte. Les fonctions REGEX d'Airtable sont implémentées à l'aide de la RE2 regular expression library. Pour en svoir plus sur les REGEX funtions, consultez cet article.
Pour tester les REGEX functions, consultez la table "🔎 REGEX function examples" dans la base Formula Playground.
Function | Description | Exemples |
---|---|---|
REGEX_MATCH(string, regex) | Vérifie si une chaîne de caractères correspond à une expression régulière. | REGEX_MATCH("Hello World", "Hello.World") => 1 |
REGEX_EXTRACT(string, regex) | Extrait les premières sous-chaînes correspondant à une expression régulière. | REGEX_EXTRACT("Hello World", "W.*") => "World" |
REGEX_REPLACE(string, regex, replacement) | Remplace toutes les sous-chaînes qui correspondent à une expression régulière spécifiée. | REGEX_REPLACE("Hello World", " W.*", "") => "Hello" |
Il s'agit d'une adaptation de cet article du support Airtable.
Vous souhaitez vous former sur Airtable ? Découvrez nos formations Airtable.