Bonjour,J'ai 2 feuilles de donnée que je souhaiterai associer en une seule comme dans l'exemple ci dessous.Pensez-vous que ce soit faisable ?Attention, comme montré à la fin de l'exemple, Un même plan peut avoir plusieurs indices et je souhaiterais les voir dans mon résultat final.
Merci pour votre aide
Associer 2 tables dans Google Sheet
- AlexMondon
- Messages : 2
- Inscription : 16 janv. 2024 17:37
Associer 2 tables dans Google Sheet
- Pièces jointes
-
- Exemple structure données
- MicrosoftTeams-image.png (80.97 Kio) Consulté 3380 fois
- NC_Quentin
- Invétéré
- Messages : 34
- Inscription : 10 oct. 2022 09:06
- A remercié : 1 fois
- Remercié : 11 fois
Re: Associer 2 tables dans Google Sheet
Bonjour !
Je ne sais pas s’il y a une solution sous forme de formules (j’ai essayé, mais je me heurtais à des limitations innées du tableur et je ne savais pas comment les contourner). En revanche, j’ai une solution sous la forme d’une fonction personnalisée, ce qui est mieux que rien !
![Image](https://i.imgur.com/Y6pPpiF.png)
C’est très basique, et il y a sûrement des problèmes dans des cas particuliers (typiquement avec des lignes vides), mais cela donne une bonne base pour commencer. Si besoin, je peux sûrement complexifier un peu la fonction et traiter les erreurs éventuelles qu’il pourrait y avoir, mais en l’état c’est fonctionnel.
Pour l’ajouter à votre Google Sheets, vous n’avez qu’à faire ceci :
1. Aller dans Extensions > Apps Script. Si ce n’est pas déjà fait, cela créera un projet Apps Script lié à votre fichier Google Sheets. En tous les cas, cela ouvre un nouvel onglet.
2. Si c’est un nouveau projet Apps Script, vous pouvez simplement copier le code suivant dans l’éditeur ouvert devant vous :
![Image](https://i.imgur.com/pFpd7FY.png)
3. Pensez à cliquer sur l’icône de disquette dans le menu en haut pour enregistrer la modification de code !
![Image](https://i.imgur.com/3xVdG8t.png)
Et c’est tout. Vous pouvez désormais utiliser la fonction JOINTABLES dans votre fichier, en suivant la petite documentation que j’ai mise.
En attendant que quelqu’un trouve une façon de le faire tout en formules, j’espère que cela pourra vous être utile !
Je ne sais pas s’il y a une solution sous forme de formules (j’ai essayé, mais je me heurtais à des limitations innées du tableur et je ne savais pas comment les contourner). En revanche, j’ai une solution sous la forme d’une fonction personnalisée, ce qui est mieux que rien !
![Image](https://i.imgur.com/Y6pPpiF.png)
C’est très basique, et il y a sûrement des problèmes dans des cas particuliers (typiquement avec des lignes vides), mais cela donne une bonne base pour commencer. Si besoin, je peux sûrement complexifier un peu la fonction et traiter les erreurs éventuelles qu’il pourrait y avoir, mais en l’état c’est fonctionnel.
Pour l’ajouter à votre Google Sheets, vous n’avez qu’à faire ceci :
1. Aller dans Extensions > Apps Script. Si ce n’est pas déjà fait, cela créera un projet Apps Script lié à votre fichier Google Sheets. En tous les cas, cela ouvre un nouvel onglet.
2. Si c’est un nouveau projet Apps Script, vous pouvez simplement copier le code suivant dans l’éditeur ouvert devant vous :
Code : Tout sélectionner
/**
* Renvoie une jointure de deux tableaux contenant une colonne de données commune servant de lien. Le tableau résultant sera constitué des colonnes du tableau 1 puis des colonnes du tableau 2, mais sans la colonne de jointure dans le tableau 2.
*
* @param {A1:C7} array1 Une plage contenant le premier tableau de données
* @param {D1:E8} array2 Une plage contenant le deuxième tableau de données
* @param {1} col1 L’index de colonne pour le premier tableau donnant la colonne commune aux deux tableaux, afin de réaliser la jointure. Par exemple, si le tableau est en A1:C7 et que la colonne est en A, l’index est 1.
* @param {2} col2 L’index de colonne pour le deuxième tableau donnant la colonne commune aux deux tableaux, afin de réaliser la jointure. Par exemple, si le tableau est en D1:E8 et que la colonne est en E, l’index est 2.
* @customfunction
*/
function JOINTABLES(array1, array2, col1, col2) {
try{
const joinIndex1 = col1 - 1;
const joinIndex2 = col2 - 1;
const result = ;
for(const row1 of array1){
const currentJoinValue = row1[joinIndex1];
for(const row2 of array2){
if(row2[joinIndex2] === currentJoinValue){
// On met les valeurs de la ligne du premier tableau, suivies de celles du deuxième tableau, mais sans la jointure
result.push([...row1, ...row2.slice(0, joinIndex2), ...row2.slice(joinIndex2+1)])
}
}
}
return result
}catch(err){
return "Erreur ! Vérifiez que vous avez bien mis des plages en entrée, ainsi que le bon numéro de colonne pour chaque tableau permettant de faire la jointure."
}
}
![Image](https://i.imgur.com/pFpd7FY.png)
3. Pensez à cliquer sur l’icône de disquette dans le menu en haut pour enregistrer la modification de code !
![Image](https://i.imgur.com/3xVdG8t.png)
Et c’est tout. Vous pouvez désormais utiliser la fonction JOINTABLES dans votre fichier, en suivant la petite documentation que j’ai mise.
En attendant que quelqu’un trouve une façon de le faire tout en formules, j’espère que cela pourra vous être utile !
- AlexMondon
- Messages : 2
- Inscription : 16 janv. 2024 17:37
Re: Associer 2 tables dans Google Sheet
Bonjour,
Je vais tester tout ça.
Merci beaucoup pour le temps consacré.
Bonne journée
Je vais tester tout ça.
Merci beaucoup pour le temps consacré.
Bonne journée
Re: Associer 2 tables dans Google Sheet
Quelqu’un peut-il répondre ou discuter davantage de cette question ? coreball
Rejoignez la discussion 💬
Vous devez être enregistré pour participer à la discussion et échanger avec les différents membres
Inscrivez-vous dès aujourd'hui
Vous n'êtes pas encore membre ? Rejoignez-nous gratuitement dès aujourd'hui et contribuer en postant votre réponse ou question sur tous les forums disponibles
Inscription