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