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
- Ouvrez Google Sheets.
- 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
- Retournez dans Google Sheets.
- Tapez =POURCENTAGE(50, 200) dans une cellule.
- 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. 😊