Equivalent Apps Script de fonctions Google Sheets

Si vous avez l'habitude d'utiliser à la fois les fonctions de Google Sheets et de travailler avec des codes Apps Script (ou JavaScript), vous avez probablement remarqué certaines équivalences entre différentes fonctions et méthodes.

Si ce n'est pas le cas, vous découvrirez ici l'équivalent Apps Script de fonctions telles que SI, LAMBDA, LET, MAP, REDUCE et bien d'autres encore.

Les fonctions sont listées par ordre alphabétique.


ARRONDI

La fonction ARRONDI arrondit une valeur à l'entier le plus proche :

=ARRONDI(12,345)

Ou en fonction du nombre de décimales spécifié :

=ARRONDI(12,345;2)

Son équivalent Apps Script est Math.round :

Math.round(12.345); // Entier
Math.round(12.345 * 100) / 100; // 2 décimales

Même principe pour ARRONDI.INF (Math.floor ou parseInt) et ARRONDI.SUP (Math.ceil).

DROITE

La fonction DROITE permet d'extraire une portion à droite d'une chaîne de caractère :

=DROITE("Sheets-Pratique";8)

Son équivalent Apps Script est la méthode slice :

'Sheets-Pratique'.slice(-8);

EQUIV

La fonction EQUIV (ou XMATCH) permet d'obtenir la position d'une valeur dans un tableau :

=EQUIV("Sheets";{"Excel";"Google";"Sheets";"Pratique"};0)

Son équivalent Apps Script est la méthode indexOf :

['Excel', 'Google', 'Sheets', 'Pratique'].indexOf('Sheets');

ET

La fonction ET retourne VRAI si tous les tests sont VRAI :

=ET(1+2=3;1<2)

Son équivalent Apps Script est l'opérateur && :

1 + 2 === 3 && 1 < 2;

FILTER

La fonction FILTER permet de filtrer les valeurs d'un tableau :

=FILTER(A1:A6;A1:A6<30)

Son équivalent Apps Script est la méthode filter :

[8, 45, 16, 25, 30].filter(valeur => valeur < 30);

GAUCHE

La fonction GAUCHE permet d'extraire une portion à gauche d'une chaîne de caractère :

=GAUCHE("Sheets-Pratique";6)

Son équivalent Apps Script est la méthode slice (ou substring) :

'Sheets-Pratique'.slice(0, 6);

INDEX

La fonction INDEX retourne une valeur en fonction de sa position dans un tableau :

=INDEX({1;2;3;4};3)

Son équivalent Apps Script est :

[1, 2, 3, 4][2];

JOIN

La fonction JOIN permet de fusionner un tableau en une chaîne de caractères :

=JOIN(", ";{1;2;3;4})

Son équivalent Apps Script est la méthode join :

[1, 2, 3, 4].join(', ');

LAMBDA

La fonction LAMBDA permet de créer une fonction :

=LAMBDA(valeur;valeur+10)

Son équivalent Apps Script est la fonction fléchée :

valeur => valeur + 10;

D'autres exemples avec LAMBDA ou la fonction fléchée sont disponibles sur cette page.

LET

La fonction LET permet de conserver une valeur pour éviter de la recalculer plusieurs fois dans la formule :

=LET(valeur;123;valeur)

Son équivalent Apps Script est une simple déclaration de variable à laquelle on attribue une valeur :

let valeur = 123;

MAP

La fonction MAP permet d'appliquer une fonction LAMBDA à chacune des valeurs d'un tableau :

=MAP({10;20;30};LAMBDA(valeur;valeur+5))

Son équivalent Apps Script est la méthode map :

[10, 20, 30].map(valeur => valeur + 5);

MAX

La fonction MAX retourne la plus grande valeur d'un tableau :

=MAX({11;-44;33;-22})

Son équivalent Apps Script est Math.max :

Math.max(...[11, -44, 33, -22]);

MIN

La fonction MIN retourne la plus petite valeur d'un tableau :

=MIN({11;-44;33;-22})

Son équivalent Apps Script est Math.min :

Math.min(...[11, -44, 33, -22]);

MOYENNE

La fonction MOYENNE effectue la moyenne des valeurs d'un tableau :

=MOYENNE({8;45;16;25;30})

Son équivalent Apps Script est :

let tableau = [8, 45, 16, 25, 30];
let moyenne = tableau.reduce((total, valeur) => total + valeur, 0) / tableau.length;

NB.SI

La fonction NB.SI permet de compter le nombre de valeurs d'un tableau qui correspondent à un critère :

=NB.SI({8;45;16;25;30};"<30")

Son équivalent Apps Script pourrait être :

[8, 45, 16, 25, 30].filter(valeur => valeur < 30).length;

Ou encore :

[8, 45, 16, 25, 30].reduce((nb, valeur) => valeur < 30 ? nb + 1 : nb, 0);

OU

La fonction OU retourne VRAI si au moins un des tests est VRAI :

=OU(1+2=4;1>2;2>1-3)

Son équivalent Apps Script est l'opérateur || :

1 + 2 === 4 || 1 > 2 || 2 > 1 - 3;

REDUCE

La fonction REDUCE permet d'appliquer une fonction LAMBDA à chacune des valeurs d'un tableau :

=REDUCE(0;{10;20;30};LAMBDA(total;valeur;total+valeur))

Son équivalent Apps Script est la méthode reduce :

[10, 20, 30].reduce((total, valeur) => total + valeur, 0);

REGEXEXTRACT

La fonction REGEXEXTRACT permet d'extraire une ou plusieurs portions d'une chaîne de caractère en fonction d'une expression régulière :

=REGEXEXTRACT("JavaScript";"[A-Z][a-z]*$")

Son équivalent Apps Script est la méthode match :

'JavaScript'.match(/[A-Z][a-z]*$/g);

REGEXMATCH

La fonction REGEXMATCH permet de vérifier si une chaîne de caractère correspond à une expression régulière :

=REGEXMATCH("test";"[rt]est")

Son équivalent Apps Script est la méthode test :

/[rt]est/.test('test');

REGEXREPLACE

La fonction REGEXREPLACE permet de remplacer des portions d'une chaîne de caractère en fonction d'une expression régulière :

=REGEXREPLACE("JavaScript";"[Jva]{4}";"Apps ")

Son équivalent Apps Script est la méthode replace :

'JavaScript'.replace(/[Jva]{4}/g, 'Apps ');

SI

La bien connue fonction SI :

=SI(A1<B1;A1;B1)

Son équivalent Apps Script en version longue :

if (a1 < a2) {
  resultat = a1;
} else {
  resultat = a2;
}

Ou la version courte avec l'opérateur ternaire :

resultat = a1 < a2 ? a1 : a2;

SIERREUR

La fonction SIERREUR retourne la valeur passée en premier argument s'il n'y a pas d'erreur ou celle en second argument si la première est une erreur :

=SIERREUR(err();123)

Son équivalent Apps Script pourrait être l'opérateur ?? qui retourne la valeur de droite si celle de gauche est null ou undefined :

[1, 2][3] ?? 123;

Ou l'opérateur || qui retourne la valeur de droite si celle de gauche est 0, false, '', NaN, null ou undefined :

0 || 123;

SOMME

La fonction SOMME :

=SOMME({8;45;16;25;30})

Son équivalent Apps Script est :

[8, 45, 16, 25, 30].reduce((total, valeur) => total + valeur, 0);

SOMME.SI

La fonction SOMME.SI effectue la somme des valeurs qui répondent à un critère :

=SOMME.SI({8;45;16;25;30};"<30")

Son équivalent Apps Script est :

[8, 45, 16, 25, 30].reduce((total, valeur) => valeur < 30 ? total + valeur : total, 0);

SORT

La fonction SORT permet de trier les valeurs d'un tableau :

=SORT({1;10;2;20;0};1;0)

Son équivalent Apps Script est la méthode sort :

[1, 10, 2, 20, 0].sort((a, b) => b - a);

SPLIT

La fonction SPLIT permet de diviser une chaîne de caractères en un tableau :

=SPLIT("11/22/33";"/")

Son équivalent Apps Script est la méthode split :

'11/22/33'.split('/');

STXT

La fonction STXT permet d'extraire une portion au milieu d'une chaîne de caractère :

=STXT("Google Apps Script";8;4)

Son équivalent Apps Script est la méthode slice (ou substring) :

'Google Apps Script'.slice(7, 11);

SUBSTITUE

La fonction SUBSTITUE permet de remplacer des portions d'une chaîne de caractère :

=SUBSTITUE("Excel-Pratique";"Excel";"Sheets")

Son équivalent Apps Script est la méthode replace (ou replaceAll) :

'Excel-Pratique'.replace('Excel', 'Sheets');

UNIQUE

La fonction UNIQUE permet de retirer les doublons d'un tableau :

=UNIQUE({1;4;3;1;2;3;1})

Son équivalent Apps Script pourrait être :

[...new Set([1, 4, 3, 1, 2, 3, 1])];
Des questions à propos de Google Sheets / Apps Script ? Le forum est là pour vous aider.