Come effettuare una query con Google Spreadsheet, che controlla la data


11

Ho una gamma che va da B4:H124. Tutte le celle nella colonna B sono date. Vorrei recuperare i dati da una riga ( B:H), in cui la DATA è uguale al contenuto di una cella specifica, diciamo Q4.

Come costruisco una query corretta?

Finora, quello che ho escogitato con questo:

=QUERY(B2:G124; "select * where B = date '2012-02-28'")

Funziona, anche se il formato delle celle in B è GG / MM / AAAA.

Come posso passare 2012-02-28a $Q4? Quando provo, ottengo il seguente errore:

=QUERY(B2:G124; "select * where B = date '"&Q4&"'")

Invalid query: Invalid date literal [10/02/2012]. Date literals should be of form yyyy-MM-dd.

Quando guardo la cella, il formato è yyyy-mm-dd, ma quando faccio doppio clic su di essa, il formato cambia in DD-MM-YYYY.

Cosa dovrei fare?

Inoltre, come posso riassumere i valori dalla query, senza includere la colonna B?

Risposte:


3

Non ho ancora trovato il trucco per far funzionare la cella della data reale, ma potresti avere un problema se non altro aggiungendo la singola virgoletta ( ') prima della data in un formato: YYYY-MM-DDnella Q4cella.

Quella virgoletta singola significa che verrà analizzata come stringa.


11

Puoi formattare la data in questo modo:

=QUERY(B2:G124; "select * where B = date '" & text(Q4,"yyyy-MM-dd") & "'")

Per riassumere i valori nella colonna C, procedere come segue:

=QUERY(B2:G124; "select sum(C) where B = date '" & text(Q4,"yyyy-MM-dd") & "'")

Non sono sicuro di come riassumere più colonne però - ancora abbastanza nuovo per questo da solo!


2

Questo dovrebbe funzionare:

=QUERY(B2:G124; "select * where B = date '"&text(Q4;"yyyy-MM-dd")&"'")

Comunque, ho avuto lo stesso problema e alla fine ha funzionato per me.

Il fatto è che ti confondi con il messaggio

Invalid query: Invalid date literal [10/02/2012]. Date literals should be of form yyyy-MM-dd.

Questo perché il formato della data della tua cella Q4 sembra essere gg / MM / aaaa. Ho la stessa cosa: anche se questo sembra essere gg / MM / aaaa, basta metterlo come è indicato nella seconda riga della mia risposta qui sopra.


1

Inserisci la data desiderata in una nuova cella come Q3in questo formato:2/28/2012

Quindi nel Q4tipo di cella=YEAR(Q3) & "-" & DEC2OCT(MONTH(Q3), 2) & "-" & DAY(Q3)

Ciò otterrà la data dalla Q3cella e la convertirà in una stringa nella Q4cella.

Questo è più utile se si desidera la data corrente. Invece di ottenere la data dal Q3tuo puoi usare now()per ottenere la data di oggi in questo modo:=YEAR(now()) & "-" & DEC2OCT(MONTH(now()), 2) & "-" & DAY(now())


1

La finale dovrebbe essere:

=QUERY(B2:G124; "select * where B = date ' "  & text( Q4 ,"yyyy-MM-dd") & "'")

Dove Q4 è una normale cella formattata in una data in cui è possibile digitare una data.

Copia quanto sopra sul tuo blocco note e allarga le dimensioni del carattere a tutto ciò che riguarda.

È difficile vedere il singolo 'all'interno del doppio "qui.


0

Puoi anche calcolare la data al di fuori della stringa e rilasciare date, ad esempio

=QUERY(B2:G124; "select * where B = '" & Q4)

Q4 viene effettivamente passato come numero intero, che è comunque ciò che QUERY trasforma la data dietro le quinte.


0

Utilizzando la funzione QUERY di Google:

Per sum più colonne , è importante includere il labelparametro alla fine della query

=QUERY(B2:G124; "select sum(C) + sum(D) + sum(E) + sum(F) + sum(G) label sum(C) + sum(D) + sum(E) + sum(F) + sum(G) '' ") 

nota: i riferimenti di colonna fanno distinzione tra maiuscole e minuscole e sono richieste le 2 virgolette singole alla fine della query.

Per aggiungere una whereclausola che fa riferimento a un valore di data delle celle : dalla soluzione s6mikes

=QUERY(B2:G124; "select * where B = date '" & text(Q4,"yyyy-MM-dd") & "') 

Le 2 query combinate ...

=QUERY(B2:G124; "select sum(C) + sum(D) + sum(E) + sum(F) + sum(G) where B = date '" & text(Q4,"yyyy-MM-dd") & "' label sum(C) + sum(D) + sum(E) + sum(F) + sum(G) '' ")

-1

Devi modificare il tipo di dati nella cella di riferimento in testo. E funzionerà senza problemi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.