Comment effectuer une jointure à gauche de deux tables dans Google Sheets

Imaginez-vous posséder un outil puissant pour effectuer des jointures à gauche dans Google Sheets. Avec cette technique, vous pouvez combiner deux tables en une seule, en conservant toutes les lignes de la première table et en intégrant les lignes correspondantes de la seconde table. Cette opération se base sur un champ partagé, tel qu’un identifiant.

Pour réaliser une jointure à gauche de deux tables dans Google Sheets, vous pouvez utiliser une formule de tableau. Bien que cette formule puisse sembler complexe, la personnaliser en fonction des plages de table spécifiques est une tâche simple.

La fonction LET est utilisée pour attribuer des noms aux expressions. Vous devrez spécifier les plages de table et les colonnes d’identification des deux tables, et la formule se chargera du reste.

Dans une jointure à gauche, deux tables sont combinées en une nouvelle table, en conservant toutes les lignes de la première table (table de gauche) et en incorporant les lignes correspondantes de la seconde table (table de droite) en fonction d’un champ partagé (par exemple, un identifiant).

Un prérequis essentiel pour effectuer une jointure à gauche de deux tables est d’avoir un champ partagé dans les deux tables, tel que des identifiants (par exemple, identifiants d’employés, identifiants de produits).

Prêt(e) à découvrir tout le potentiel des jointures à gauche ? Explorez la section suivante pour une explication complète de la formule et de son application !

Jointure à gauche de deux tables : Tables d’exemple et table résultante

Ce type de jointure à gauche entre deux tables ne nécessite généralement qu’une formule VLOOKUP dans Google Sheets. Cependant, nous allons incorporer des fonctions supplémentaires pour faciliter l’adaptation aux tables de tailles variables.

Table 1: Commandes

Order_ID Customer_Name Product_ID Quantity_Cum

Cette table contient 6 enregistrements (6 commandes) et quatre colonnes, et le Product_ID dans la troisième colonne identifie de manière unique chaque produit.

Table 2: Produits

Product ID Product Name Price_Cum

Cette table contient 4 enregistrements (4 produits) et trois colonnes, et le Product_ID dans la première colonne identifie de manière unique chaque produit. Veuillez noter que dans cette table, les identifiants uniques, c’est-à-dire les identifiants de produits dans la première colonne, ne doivent pas être répétés.

Résultat attendu:

Order ID Customer Name Product ID Quantity_Cum Product Name Price_Cum

Veuillez faire défiler vers le bas pour voir la capture d’écran des tables ci-dessus dans Google Sheets.

Formule de tableau pour une jointure à gauche de deux tables dans Google Sheets

Cette formule permet d’effectuer une jointure à gauche entre deux tables dans Google Sheets, en conservant tous les enregistrements de la table de gauche. Elle suppose que des enregistrements uniques existent dans la colonne d’identification de la table de droite.

Formule:

=ArrayFormula( LET( lt, A2:D8, lt_id, C2:C8, rt, F2:H6, rt_id, F2:F6, look_up, IFNA(VLOOKUP(lt_id, HSTACK(rt_id, rt), SEQUENCE(1, COLUMNS(rt), 2), 0)), HSTACK(lt, look_up) ) )

Array Formula for Left Joining Two Tables in Google Sheets

Vous pouvez remplacer l’expression de formule, c’est-à-dire HSTACK(lt, look_up), dans la formule par CHOOSECOLS(HSTACK(lt, look_up), {1, 2, 3, 4, 6, 7}) pour sélectionner les colonnes requises et également dans l’ordre souhaité.

Voici la syntaxe de la fonction CHOOSECOLS :

CHOOSECOLS(array, [col_num1, …])

Remarque : La formule peut convertir les dates en valeurs de date. Par conséquent, si une colonne de la table de gauche ou de droite contient un champ de date, le champ correspondant dans la table résultante doit être formaté comme une date en utilisant Format > Nombre > Date.

Vous pouvez trouver la formule de jointure à gauche dans la cellule A12 de la deuxième feuille de l’échantillon fourni ci-dessous.

Sample Sheet

Démystification de la formule

La formule utilise la fonction LET pour attribuer un « nom » aux résultats de l’expression de « valeur » et renvoie le résultat de l' »expression de formule », qui représente la table résultante de la jointure à gauche.

Syntaxe de la fonction LET :

LET(name1, value_expression1, [name2, …], [value_expression2, …], formula_expression)

Assignations LET :

  • lt (name1) : Définit la plage de données de la table de gauche, y compris la ligne d’en-tête.

    • A2:D8 (value_expression1) : Plage de données de la table de gauche.
  • lt_id (name2) : Définit la colonne d’identification de la table de gauche, y compris la ligne d’en-tête.

    • C2:C8 (value_expression2) : Colonne d’identification de la table de gauche.
  • rt (name3) : Définit la plage de données de la table de droite, y compris la ligne d’en-tête.

    • F2:H6 (value_expression3) : Plage de données de la table de droite.
  • rt_id (name4) : Définit la colonne d’identification de la table de droite, y compris la ligne d’en-tête.

    • F2:F6 (value_expression4) : Colonne d’identification de la table de droite.

Remarque : Vous devez uniquement spécifier les value_expressions 1 à 4 ci-dessus pour vos tables. La formule de jointure à gauche de tableau se chargera du reste.

Assignations LET restantes :

  • look_up (name5) :
    • IFNA(VLOOKUP(lt_id, HSTACK(rt_id, rt), SEQUENCE(1, COLUMNS(rt), 2), 0)) (value_expression5) : VLOOKUP recherche les identifiants de la table de gauche (lt_id) dans la colonne d’identification de la table de droite (rt_id) et renvoie les enregistrements correspondants de la table de droite (rt).
      • HSTACK : Joint l’identifiant de la colonne de la table de droite (rt_id) avec l’ensemble des données de la table de droite (rt).
      • SEQUENCE : Génère une plage de nombres représentant les positions de colonne dans la table de droite (de 2 au nombre de colonnes car la première colonne est l’identifiant empilé rt_id).
      • Le dernier argument (0) spécifie une correspondance exacte.
      • La fonction VLOOKUP renvoie les enregistrements correspondants de la table de droite pour chaque identifiant dans la table de gauche.

Expression de formule :

  • HSTACK(lt, look_up) : Ce segment fusionne les données de la table de gauche (lt) avec le résultat de recherche (look_up). Cependant, il est important de noter que le résultat de recherche ne comprend que les enregistrements correspondants de la table de droite, pas la table de droite entière. Cette distinction est essentielle car elle permet d’obtenir précisément la fonctionnalité de jointure à gauche souhaitée.

Conclusion

Vous disposez maintenant d’un outil puissant pour effectuer des jointures à gauche dans Google Sheets. La table fusionnée peut être affinée avec la fonction QUERY, ce qui permet d’effectuer des actions telles que la réorganisation des colonnes, le tri des données et les agrégations.

Pour explorer davantage les capacités de la fonction QUERY, vous trouverez de nombreux tutoriels sur ce blog. Ces ressources vous guideront à travers la syntaxe et fourniront des exemples pratiques pour vous aider à maîtriser cette fonction polyvalente.

Ressources:

Articles en lien