2011-09-22 11 views
7

domanda per principianti, è possibile selezionare le colonne per nome anziché per lettera quando si utilizza Google Query Language con Google Spreadsheets?Seleziona le colonne per nome anziché per lettera in Google Query Language (GQL) con Google Spreadsheets?

Questo funziona bene per me: "SELECT A, COUNT GROUP (B) da un"

Sarebbe bello se potessi usare le intestazioni delle colonne in prima fila, più simile a un database, come in :

"SELECT studente, COUNT GROUP (detenzione) da uno studente"

ho il sospetto che non è possibile, ma spero che questo ennesimo caso in cui il mio internet capacità di ricerca mi ha fallito.

risposta

5

Al momento non è possibile. La documentazione GQL afferma [1] "Le colonne sono referenziate dagli identificatori (non dalle etichette). Ad esempio, in un foglio di calcolo Google, gli identificatori di colonna sono la lettera di colonna di uno o due caratteri (A, B, C, ...). "

Se si desidera eseguire questa operazione in un foglio di calcolo, è possibile con la seguente formula convertire un nome di intestazione di colonna in una lettera (potrebbero essere necessari alcuni ritocchi +1 (potrebbe essere +2)). Essa si basa anche su intestazioni delle colonne essere unico e non contenenti virgole

=REGEXEXTRACT(ADDRESS(1,COUNTA(SPLIT(LEFT(JOIN(",",TRANSPOSE(1:1)),FIND("your_column_name",JOIN(",",TRANSPOSE(1:1)))),","))+1,4);"[a-zA-Z]+") 

[1] https://developers.google.com/chart/interactive/docs/querylanguage#Select

+0

Funziona alla grande! Non ci avrei pensato. – prototype

0

Un po 'più semplice:

SELECT "&SUBSTITUTE(ADDRESS(1,MATCH("student",Sheet1!A1:B1,0),4),1,"")&", COUNT("&SUBSTITUTE(ADDRESS(1,MATCH("detention",Sheet1!A1:B1,0),4),1,"")&") GROUP BY "&SUBSTITUTE(ADDRESS(1,MATCH("student",Sheet1!A1:B1,0),4),1,"") 
Problemi correlati