Les astuces pour utiliser la jointure SQL sur Google Sheets

Video google sheet query join

Vous utilisez Google Sheets mais vous souhaitez effectuer des opérations de jointure, comme vous le feriez avec la commande SQL JOIN ? Vous vous demandez comment réaliser cette opération sur Google Sheets, étant donné que l’implémentation SQL de Google ne propose pas de commande JOIN. Dans cet article, nous vous présenterons quelques astuces pour obtenir les mêmes résultats qu’avec une jointure SQL, mais sur Google Sheets.

Astuce 1 : VLOOKUP + ARRAYFORMULA

La fonction VLOOKUP est très puissante pour faire correspondre le contenu d’une colonne d’une feuille avec le contenu d’une autre feuille. Dans cette astuce, nous allons combiner les fonctions QUERY, VLOOKUP et ARRAYFORMULA pour obtenir les résultats souhaités. Voici comment procéder :

  1. Utilisez la fonction QUERY avec la commande SELECT pour les première et troisième colonnes.
  2. Utilisez la formule suivante pour la deuxième colonne :
=ArrayFormula({Orders.OrderID,vlookup(Orders.CustomerID,{Customers.CustomerID,Customers.CustomersName},2,false),Orders.OrderDate})

Cette formule peut paraître longue et complexe, mais nous allons l’expliquer en détail :

  • La fonction VLOOKUP remplace la colonne CustomerID de la feuille Orders par la colonne CustomerName de la feuille Customers.
  • Les accolades concatènent les colonnes en une seule entrée pour ARRAYFORMULA.
  • La fonction ARRAYFORMULA permet d’appliquer la fonction VLOOKUP à une plage de cellules.

Le résultat obtenu est une feuille Orders modifiée, dans laquelle la colonne CustomerID a été remplacée par les noms correspondants de la feuille Customers. Vous pouvez toujours utiliser des fonctions QUERY à l’intérieur du code pour sélectionner des colonnes spécifiques et cela fonctionnera parfaitement.

Astuce 2 : Google Apps Script

Une autre astuce consiste à utiliser Google Apps Script pour définir une fonction JOIN. Voici un exemple de script :

function JOINRANGES(range1, index1, range2, index2) {
  const result = [];
  for(let row1 of range1) {
    for (let row2 of range2) {
      if (row1[index1] == row2[index2]) {
        const r = [...row1, ...row2];
        r.splice(row1.length+index2, 1);
        r.splice(index1, 1);
        result.push(r);
      }
    }
  }
  return result;
}

Cette fonction JOINRANGES utilise la syntaxe suivante :

=JOINRANGES(range1, index1, range2, index2)

Voici ce que chaque partie signifie :

  • range1 : plage contenant la colonne que vous souhaitez remplacer. Dans notre exemple, il s’agit de la plage de la feuille Orders.
  • index1 : l’index de la colonne que vous souhaitez remplacer, en commençant par 0 pour la première colonne. Dans notre exemple, CustomerID est dans la deuxième colonne, donc son index est 1.
  • range2 : plage contenant la colonne qui va remplacer celle de range1. Dans notre exemple, il s’agit de la plage de la feuille Customers.
  • index2 : l’index de la colonne qui correspond à celle de range1 avec index1. Il suppose que la colonne qui remplacera celle de range1 dans index1 est la colonne suivante dans range2. Dans notre exemple, CustomerID est à l’index 0 de range2 et CustomerName est à l’index 1 de range2.

Ce script fonctionne parfaitement, mais il nécessite que la colonne que vous souhaitez remplacer soit la dernière colonne. De plus, vous devez l’encadrer avec la fonction ARRAYFORMULA. Pour simplifier l’utilisation de cette astuce, vous pouvez utiliser la formule suivante :

=arrayformula({joinranges(Orders!A1:B197,1,Customers!A1:B120,0),Orders!C1:C197})

Cette formule utilise la fonction JOINRANGES avec les plages adaptées et attache la colonne supprimée en tant qu’entrée supplémentaire pour ARRAYFORMULA. Le résultat obtenu est une feuille Orders modifiée dans laquelle la colonne CustomerID a été remplacée par les noms correspondants de la feuille Customers.

Conclusion

Avec ces astuces, vous pouvez réaliser des opérations de jointure similaires à celles de SQL sur Google Sheets. Si vous recherchez une démonstration concrète, vous pouvez consulter notre échantillon de feuille SQL Join pour voir comment elles fonctionnent en pratique.

N’hésitez pas à utiliser ces astuces pour mener à bien vos projets sur Google Sheets. Vous pouvez également simplifier l’importation de données à partir de vos plateformes d’e-commerce et de marketing en utilisant l’outil Lido de Crawlan. Extrayez des indicateurs précieux de vos données Shopify, Facebook, Google Analytics, et bien d’autres encore. Commencez dès maintenant et simplifiez votre travail avec Google Sheets !

Articles en lien