Créer des fonctions personnalisées dans Google Sheets

Google Sheets propose une vaste bibliothèque de fonctions intégrées, mais il arrive que celles-ci ne répondent pas à des besoins spécifiques. Grâce aux fonctions personnalisées, vous pouvez étendre les possibilités de Google Sheets en créant vos propres calculs ou automatisations.

Dans cet article, nous allons voir :

  • À quoi servent les fonctions personnalisées ?
  • Comment elles fonctionnent grâce aux annotations JSDoc ?
  • Comment créer une fonction pas à pas ?
  • Des idées de fonctions utiles et créatives.

À quoi servent les fonctions personnalisées ?

Les fonctions custom permettent de créer des calculs ou automatisations sur mesure directement utilisables dans Google Sheets. Elles s’utilisent comme n’importe quelle fonction native (=SUM(), =VLOOKUP(), etc.) et permettent par exemple :

  • D’automatiser des calculs spécifiques.
  • D’interagir avec des services externes (API).
  • De manipuler ou de reformater des données.

Le fonctionnement des annotations JSDoc

Les annotations JSDoc permettent de documenter une fonction pour :

  • Décrire son rôle.
  • Fournir des explications sur les paramètres (@param).
  • Détailler la valeur retournée (@return).
  • Marquer la fonction comme utilisable dans Google Sheets (@customfunction).

Exemple d’annotation JSDoc :

/**
 * Calcule la somme de deux nombres.
 *
 * @param {number} a Le premier nombre
 * @param {number} b Le deuxième nombre.
 * @return {number} La somme des deux nombres.
 * @customfunction
 */
function ADDITION(a, b) {
  return a + b;
}

💡 Bonnes pratiques :

  • Clarté : Les annotations doivent expliquer le rôle de chaque paramètre.
  • Simplicité : Gardez vos descriptions concises.

Construire une fonction custom pas à pas

Étape 1 : Accéder à l’éditeur Apps Script

  1. Ouvrez Google Sheets.
  2. Cliquez sur Extensions > Apps Script.

Étape 2 : Écrire une fonction simple

Voici une fonction qui calcule un pourcentage :

/**
 * Calcule le pourcentage entre une partie et un total.
 *
 * @param {number} partie La partie du total.
 * @param {number} total Le total.
 * @return {number} Le pourcentage (ex. : 25 pour 25%).
 * @customfunction
 */

function POURCENTAGE(partie, total) {
  if (total === 0) {
    return "Erreur : division par zéro.";
  }
  return (partie / total) * 100;
}

Étape 3 : Tester votre fonction

  1. Retournez dans Google Sheets.
  2. Tapez =POURCENTAGE(50, 200) dans une cellule.
  3. Le résultat devrait afficher 25.

Idées de fonctions custom

Fonction 1 : Calculer une date future

Ajoutez un nombre de jours à une date donnée :

/**
 * Calcule une date future en ajoutant des jours.
 *
 * @param {Date} date La date initiale.
 * @param {number} jours Le nombre de jours à ajouter.
 * @return {Date} La nouvelle date.
 * @customfunction
 */

function DATE_FUTURE(date, jours) {
  const futureDate = new Date(date);
  futureDate.setDate(futureDate.getDate() + jours);
  return futureDate;
}

Fonction 2 : Mettre un texte en majuscules

/**
 * Met un texte en majuscules.
 *
 * @param {string} texte Le texte à convertir.
 * @return {string} Le texte en majuscules.
 * @customfunction
 */

function TEXTE_MAJUSCULE(texte) {
  return texte.toUpperCase();
}

Fonction 3 : Obtenir un jour de la semaine

Retourne le jour de la semaine en français.

/**
 * Retourne le jour de la semaine pour une date donnée.
 *
 * @param {Date} date La date.
 * @return {string} Le jour de la semaine en français.
 * @customfunction
 */

function JOUR_SEMAINE(date) {
  const jours = ["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"];
  return jours[date.getDay()];
}

Fonction 4 : Vérifier si une année est bissextile

/**
 * Vérifie si une année est bissextile.
 *
 * @param {number} annee L'année à vérifier.
 * @return {boolean} `true` si l'année est bissextile.
 * @customfunction
 */

function EST_BISSEXTILE(annee) {
  return (annee % 4 === 0 && annee % 100 !== 0) || (annee % 400 === 0);
}

Fonction 5 : Convertir des devises

Récupérez des taux d’une API pour convertir des devises (exemple simplifié sans API réelle) :

/**
 * Convertit un montant d'une devise à une autre.
 *
 * @param {number} montant Le montant à convertir.
 * @param {number} taux Le taux de conversion.
 * @return {number} Le montant converti.
 * @customfunction
 */

function CONVERTIR_DEVISE(montant, taux) {
  return montant * taux;
}

Conclusion

Les fonctions personnalisées sont un excellent moyen d’étendre les capacités de Google Sheets. En suivant les étapes ci-dessus et en respectant les bonnes pratiques avec JSDoc, vous pouvez créer des outils puissants et adaptés à vos besoins.

💡 Besoin d’inspiration ou d’accompagnement ? Explorez d’autres tutoriels et astuces sur L’atelier informatique pour découvrir le plein potentiel de Google Sheets et Apps Script. 😊