top of page

Quick Start Kit: Conserver automatiquement un historique quotidien de vos données

Avec la version v1.1 du module DataCollection, nous introduisons une nouvelle fonctionnalité puissante :


Sauvegarde automatique quotidienne de l’historique des données


qe score

Cette mise à jour permet d’archiver automatiquement les données de votre tableau de bord chaque jour, sans intervention manuelle.C’est une étape simple mais essentielle pour suivre l’évolution des indicateurs, diagnostiquer les problèmes ou conserver un historique fiable à des fins d’analyse future.

Sauvegarder les données du jour permet de constituer un historique et de suivre l’évolution de toutes les données dans le temps, ce qui peut ensuite être exploité directement dans le Dashboard (Looker Studio).

Saving today's data allows you to build a historical record and track the evolution of all data over time, which can then be displayed in the Dashboard (lookerstudio).















1. Principe de fonctionnement


À la fin de chaque journée, un script va automatiquement copier les lignes de données du jour depuis l’onglet data_dashboard et les ajouter à la fin du même fichier.


Cela permet de constituer, jour après jour, un historique complet de vos données — une "photo" par jour.

At the end of each day, a script automatically copies all data rows from the current day in the data_dashboard sheet and appends them to the bottom of the same file. This creates a growing historical record of your data over time — one snapshot per day.


2. Planifier le lancement automatique

Il suffit de planifier le lancement du script une fois. Voici comment faire :

  1. Ouvrez votre Google Sheet.

  2. Allez dans Extensions > Apps Script.

  3. Dans l’éditeur Apps Script, ouvrez le menu Déclencheurs (icône horloge à gauche).

  4. Cliquez sur "Ajouter un déclencheur" (en bas à droite).

  5. Sélectionnez la fonction : copyTodayRowsUniqueAppli.

  6. Source de l’événement : Déclencheur basé sur le temps (Time-driven).

  7. Type de fréquence : Quotidien.

  8. Plage horaire : Entre 23h00 et minuit.

  9. Cliquez sur Enregistrer.

Une fois ce déclencheur créé, la fonction s’exécutera automatiquement chaque jour pour sauvegarder les données.



3. Si vous utilisez une ancienne version du Quick Start Kit

Si votre feuille DataCollection ne contient pas encore cette fonctionnalité :

  1. Allez dans Extensions > Apps Script.

  2. Dans l’éditeur, cliquez sur l’icône "+" pour ajouter un nouveau fichier script.

  3. Copiez-collez le script fourni ci-dessous dans le nouveau fichier.

  4. Cliquez sur Enregistrer.

  5. Puis, reprenez les étapes de la section 2 pour planifier le déclencheur.


QE score - trigger

function copyTodayRowsUniqueAppli() {

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("data_dashboard");

  const today = new Date();

  today.setHours(0, 0, 0, 0); // Normalize for comparison


  const lastRow = sheet.getLastRow();

  const lastCol = sheet.getLastColumn();


  const allData = sheet.getRange(2, 1, lastRow - 1, lastCol).getValues(); // Full data from row 2

  const matchingRows = [];


  for (let i = 0; i < allData.length; i++) {

    const row = allData[i];

    const dateCell = row[0];

    const colBValue = row[1];


    if (!dateCell) break; // Stop at first empty date


    const rowDate = new Date(dateCell);

    rowDate.setHours(0, 0, 0, 0);


    if (rowDate.getTime() === today.getTime()) {

      // Count how many times this (today's date + col B) combo exists in the entire data

      let count = 0;

      for (let j = 0; j < allData.length; j++) {

        const d = new Date(allData[j][0]);

        d.setHours(0, 0, 0, 0);

        if (d.getTime() === today.getTime() && allData[j][1] === colBValue) {

          count++;

        }

      }


      if (count <= 1) { // Only copy if the combo exists once or less

        matchingRows.push(row);

      }

    }

  }


  if (matchingRows.length > 0) {

    const destinationStartRow = sheet.getLastRow() + 1;

    sheet.getRange(destinationStartRow, 1, matchingRows.length, matchingRows[0].length)

         .setValues(matchingRows);

    Logger.log(matchingRows.length + " row(s) copied.");

  } else {

    Logger.log("No rows to copy: all (date + column B) combos already exist more than once.");

  }

}


Cette configuration simple vous garantit un historique fiable de vos données — versionné par jour — sans exportation manuelle ni archivage à faire.


Prêt à l’essayer ? Passez à la version v1.1 et configurez votre déclencheur dès aujourd’hui !

Comments


bottom of page