2017-08-21 1 views
0

J'ai essayé d'obtenir la somme de deux colonnes en utilisant la fonction query dans Google Sheets.Google Sheets: somme de deux colonnes par QUERY avec des cellules vides

Col1 Col2 Col3 
    ----------------------- 
    12    User1 
    23  44  creature 
     55  User1 
    14    User1 

Ce travail très bien s'il y a au moins un numéro dans chaque colonne:

=QUERY(IMPORTRANGE('SomeURL';"Page!A1:C"); 
"select (sum(Col1) + sum(Col2)) where Col3 = 'User1'") 

Cependant cette erreur de cause requête QUERY:AVG_SUM_ONLY_NUMERIC si toutes les cellules dans une colonne sont vides dans le jeu de résultats.

Col1 Col2 Col3 
    ----------------------- 
    12    User1 
    23  44  creature 
       User1 
    14    User1 

Comment puis-je obtenir somme des colonnes en utilisant query fonction, si parfois les cellules sont vides dans l'une de la colonne?

Répondre

1
=ARRAYFORMULA(SUM(query(IMPORTRANGE("url","page!A1:C6"),"select Col1,Col2 where Col3 = 'User1'"))) 

Ceci devrait fonctionner pour une somme simple. Mais je ne pense pas qu'il existe un moyen à l'intérieur de QUERY de considérer les blancs comme zéro ou de les considérer comme des nombres. Si vous pouvez réellement importer la plage dans la feuille (c'est-à-dire les utiliser comme colonnes d'assistance), vous pouvez utiliser ARRAYFORMULA(Query ({filter (A1:B6*1,NOT(ISEMAIL(A1:A6))),C1:C6}, "select *.... Vous devez convertir les espaces en dehors de la requête (par *1) ou les résumer en dehors de la requête. Ou utilisez une requête DOUBLE et une plage d'importation double, ce qui serait une performance dépréciative.

+0

Belle astuce avec '* 1'! – vatavale

+0

Alors, qu'est-ce que vous avez réussi à faire à la fin? –

+1

Juste somme (requête) ' – vatavale

1

Vous pouvez SUM la requête, comme ceci: = somme (requête ('someURL'; "page A1: C"); "select Col1, Col2 où Col3 = 'user1'"))

OU utilisez SUMIF() deux fois, une fois pour chaque colonne. Cela signifie 2 importranges, cependant, il sera probablement plus lent.