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

OperatorDescriptionExemples
&

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

FonctionDescriptionExemples
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

OperatorDescriptionExemples

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

FunctionDescriptionExemples
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},
 "To Do", "Get this started!",
 "In Progress", {Due Date},
 "Done", "Work complete!"
 )

=> if the {Status} field is the value "To Do" then this would return "Get this started!"

SWITCH( 1, 

1, "one",

2, "two",

"many")

=> one

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

OperatorDescriptionExemples
+

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

FunctionDescriptionExemples
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

MOD(value1, divisor)

Renvoie le reste d'une division (nombre à diviser et diviseur).

MOD({Meters}, 1000)

 

MOD(7, 5)

=> 2

ODD(value)

Arrondit la valeur positive au nombre impair le plus proche et la valeur négative au nombre impair le plus proche.

ODD(1.1)

=> 3

ODD(-1.1)

=> -3

POWER(base, power)

Calcule selon la puissance spécifiée.

POWER(3, 3)

=> 27

POWER(7, 0)

=> 1

ROUND(value, precision)

Arrondit au nombre entier le plus proche à la précision spécifiée. 

ROUND(3.5, 0)

=> 4

ROUND(3.4, 0)

=> 3

ROUNDDOWN(value, precision)

Arrondit à la précision spécifiée, en allant toujours  vers zéro (rounding down). (Vous devez indiquer une valeur pour la précision).

ROUNDDOWN(1.9, 0)

=> 1

ROUNDDOWN(-1.9, 0)

=> -1

ROUNDUP(value, precision)

Arrondit à la précision spécifiée, en s'éloignant toujours de zéro (rounding up). (Vous devez indiquer une valeur pour la précision).

ROUNDUP(1.1, 0)

=> 2

ROUNDUP(-1.1, 0)

=> -2

SQRT(value)

Renvoie la racine carrée positive.

SQRT(100)

=> 10

SUM(number1, [number2, ...])

Additionne les nombres. Équivalent à number1 + number2 + ...

SUM({Field1}, Field2})

 

SUM(1,2,3)

=> 6

VALUE(text)

Convertit le texte en nombres. Si la string contient des opérateurs mathématiques(-,%), il est préférable d'utiliser une combinaison de VALUE et REGEX_REPLACE pour supprimer les valeurs non numériques:

VALUE(REGEX_REPLACE(YOURSTRING, "\\D", ""))
VALUE("$1000")

=> 1000

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.

FunctionDescriptionExemples
CREATED_TIME()

Donne la date et l'heure de création d'un record. 

CREATED_TIME()

=> 2015-11-11T22:18:17 

DATEADD([date], [#], 'units')

Ajoute l'intervalle de temps spécifié.    . 

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]')

  Renvoie une string représentant une date.

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}, ...])

Renvoie la date et l'heure de la dernière modification effectuée par un utilisateur dans un non computed field de la table. Vous pouvez inclure le nom d'un (ou de plusieurs) field spécifique et la fonction renverra simplement la date et l'heure de la dernière modification apportée au field spécifié.

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

SECOND([datetime])

Renvoie les secondes d'une valeur de temps. Les secondes sont représentées par un nombre entier compris entre 0 et 59.

SECOND("02/17/2013 7:31:25")

=> 25

SET_LOCALE([date], [locale_modifier])

Donne la date selon une locale. Doit être utilisée avec la fonction DATETIME_FORMAT.  

DATETIME_FORMAT(SET_LOCALE("07/10/19
 ", 'es'), 'LLLL')

=> miércoles, 10 de julio de 2019 0:00

SET_TIMEZONE([date], [tz_identifier])

Donne une timezone associée à une date pour connaitre le fuseau horaire. Doit être utilisée avec la fonction DATETIME_FORMAT.  

DATETIME_FORMAT(SET_TIMEZONE("07/10/19 13:00", 'Australia/Sydney'), 'M/D/YYYY h:mm')

=> 7/10/2019 11:00

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")  

=> 8

WORKDAY(startDate, numDays, [holidays]) 

Renvoie une date qui est numDays jours ouvrés après startDate. (week-ends et jours fériés exclus).

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.

FunctionDescriptionExemples
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.

FunctionDescriptionExemples
CREATED_TIME()

Renvoie l'heure de création du record.

"Created on " & CREATED_TIME()
LAST_MODIFIED_TIME()

 Renvoie la date et l'heure de la dernière modification effectuée par un utilisateur dans un non computed field de la table. Vous pouvez inclure le nom d'un (ou de plusieurs) field spécifique et la fonction renverra simplement la date et l'heure de la dernière modification apportée au field spécifié.

"Last modified on " & LAST_MODIFIED_TIME()
RECORD_ID()

Renvoie le ID du record.

"https://awesomeservice.com/view?recordId=" & RECORD_ID()

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.

FunctionDescriptionExemples
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.