Comment trier une colonne de dates et d’heures dans Google Sheets avec Apps Script ?
Lors de la gestion de plannings, journaux, ou autres données sensibles au temps, il peut être utile de trier une colonne de dates et d’heures. Google Apps Script permet d’automatiser facilement cette tâche. Dans cet article, nous allons parcourir les étapes pour créer un script qui trie automatiquement une colonne de dates et d’heures dans Google Sheets.
Voici un exemple de données pour illustrer le processus de tri :
Événement | Date et Heure |
---|---|
Réunion A | Dimanche 3 novembre 2024 23:42:00 |
Réunion B | Lundi 4 novembre 2024 10:15:00 |
Réunion C | Samedi 2 novembre 2024 17:30:00 |
Réunion D | Mardi 5 novembre 09:00:00 |
Réunion E | Mercredi 6 novembre 2024 14:45:00 |
Guide étape par étape
- Configurez la feuille Google Sheet
- Créez une feuille de calcul Google et remplissez-la avec les données ci-dessus. Assurez-vous que les dates et heures sont dans le format spécifié.
- Ouvrez l’éditeur de script
- Dans Google Sheets, allez dans Extensions > Apps Script pour ouvrir l’éditeur de scripts Google.
- Écrivez le script
- Collez le code suivant dans l’éditeur de script pour trier la colonne “Date et Heure” :
function trierDates() { const feuille = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const plage = feuille.getRange("A2:B6"); let valeurs = plage.getValues(); Logger.log("Valeurs originales : " + JSON.stringify(valeurs)); // Convertit les objets de date en chaînes de caractères formatées valeurs = valeurs.map(([evenement, dateHeure]) => [evenement, formaterDate(dateHeure)]); // Trie les chaînes de caractères formatées valeurs.sort((a, b) => analyserDate(a[1]) - analyserDate(b[1])); Logger.log("Valeurs triées : " + JSON.stringify(valeurs)); // Réinsère les valeurs triées dans la plage plage.setValues(valeurs); } function formaterDate(date) { if (date instanceof Date) { // Formate la date en "Dim, 2 juin 2024, 23:42" const options = { weekday: 'short', year: 'numeric', month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: true }; return date.toLocaleString('fr-FR', options).replace(',', ''); } return date; } function analyserDate(chaineDate) { if (typeof chaineDate !== 'string') { Logger.log("Chaîne de date invalide : " + chaineDate); return new Date(0); } const elementsDate = chaineDate.split(' '); if (elementsDate.length < 5) { Logger.log("Format invalide : " + chaineDate); return new Date(0); } const [jourSemaine, mois, jour, annee, heure, periode] = elementsDate; // Combine les parties date et heure pour créer une chaîne valide const dateStr = `${mois} ${jour}, ${annee} ${heure} ${periode}`; Logger.log("Chaîne de date analysée : " + dateStr); return new Date(dateStr); }
Explication du script
- Fonction
formatDate(date)
: Cette fonction formate un objet Date en chaîne de caractères dans le format souhaité. - Fonction
trierDates()
: Le script convertit chaque objet date en chaîne formatée viaformatDate()
avant de trier la colonne. - Validation dans
analyserDate()
: Cette fonction vérifie la validité du format de la chaîne et enregistre les formats non conformes.
Exécution du script
- Enregistrez le script avec un nom explicite,
- Dans l’éditeur Apps Script, cliquez sur le bouton de lancer (icône de triangle) à côté de la fonction
trierDates
pour exécuter le script. - Retournez à votre feuille Google : la colonne “Date et Heure” devrait maintenant être triée dans l’ordre croissant.
Grâce à Google Apps Script, vous pouvez automatiser le tri d’une colonne de dates et heures dans un format spécifique. Cette méthode est efficace et permet de gagner du temps, notamment pour les ensembles de données volumineux. Bon codage !
Conseils supplémentaires
- Automatisation du script : Vous pouvez configurer un déclencheur pour exécuter ce script automatiquement à intervalles réguliers ou lorsque la feuille est modifiée.
- Gestion des erreurs : Ajoutez une gestion des erreurs pour traiter les formats de dates inattendus ou les cellules vides.
- Personnalisation : Modifiez la fonction
parseDateString
pour prendre en charge différents formats de dates, selon vos besoins.