web-dev-qa-db-fra.com

Comment puis-je fusionner deux colonnes en utilisant QUERY?

J'ai une feuille de calcul principale qui contient des colonnes comme suit:

FirstName   LastName   Gender   etc, etc, etc

Je dois importer de cette feuille maîtresse vers une autre feuille filtrée par l'une des autres colonnes. Dans la nouvelle feuille, il faut que nom soit une colonne unique, joignant FirstName et LastName.

Voici la requête actuelle que j'utilise:

=query(importrange($SPREADSHEET_KEY, "Full Overview!A2:AH"), "select Col1, Col2, Col5 where Col8 contains 'Migrators'", 0)

Je dois fusionner les colonnes Col1 et Col2 de la feuille maîtresse dans la colonne Col1 de la nouvelle feuille et mettre Col5 dans la Col2 de la nouvelle feuille.

5
Jonathanb

Réponse courte

L'argument de sélection QUERY ne peut pas fusionner les colonnes.

Explication

La fonction intégrée QUERY utilise langage de requête de l'API de visualisation Google . Il n'inclut pas d'opérateur de concaténation. Une alternative consiste à concaténer les données.

Exemples

Supposons que les colonnes Prénom et Nom sont les colonnes A et B respectivement.

Exemple 1

Ajoutez une colonne auxiliaire pour concaténer les colonnes souhaitées dans la feuille source et incluez cette colonne dans IMPORTRANGE. Ajoutez l'une des formules suivantes à une cellule vide de la ligne 2:

  • =A2&" "&B2. Remplissez si nécessaire.
  • =ARRAYFORMULA(A2:A&" "&B2:B) (Conseil: supprimez les lignes vides ou utilisez FILTER pour concaténer uniquement les lignes non vides).

Exemple 2

Utilisez plusieurs IMPORTRANGE, l’opérateur de concaténation & et les tableaux.

 = ARRAYFORMULA (
 QUERY (
 {
 Importrange ($ SPREADSHEET_KEY, "Description complète! A2: A") & 
 "" & 
 importrange ($ SPREADSHEET_KEY, "Aperçu complet! B2: B")), 
 importrange ($ SPREADSHEET_KEY, "Aperçu complet! C2: AH") 
}, 
 "sélectionnez Col1, Col2, Col5 où Col8 contient 'Migrateurs'", 
 0 
) 
) 
6
Rubén

Dans certains cas, vous pouvez utiliser représentation littérale du tableau Google pour réaliser une jointure.

=query({Sheet1!A:B, Sheet2!C:D}, "select Col1, Col3 where Col2 = Col4")

Cela ne fonctionne que lorsque le nombre de lignes dans les deux tables est identique.

4
rehan