Jak wykonać zapytanie za pomocą arkusza kalkulacyjnego Google, który sprawdza datę

11

Mam zasięg, który wychodzi B4:H124. Wszystkie komórki w kolumnie B są datami. Chciałbym odzyskać dane z row ( B:H), gdzie DATA jest równa zawartości określonej komórki, powiedzmy Q4.

Jak zbudować prawidłowe zapytanie?

Jak do tej pory wymyśliłem:

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

Działa, mimo że format komórek w B to DD / MM / RRRR.

Jak mogę zmienić 2012-02-28się $Q4? Gdy próbuję, pojawia się następujący błąd:

=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.

Kiedy patrzę na komórkę, format jest yyyy-mm-dd, ale kiedy dwukrotnie klikam, format zmienia się na DD-MM-YYYY.

Co powinienem zrobić?

Ponadto, jak mogę podsumować wartości z zapytania, bez uwzględnienia kolumny B?

Kenci
źródło

Odpowiedzi:

3

Nie mogłem znaleźć sposobu, by zadziałała prawdziwa komórka daty, ale możesz mieć obejście, jeśli nic więcej, dodając pojedynczy cudzysłów ( ') przed datą w formacie: YYYY-MM-DDw Q4komórce.

Ten pojedynczy cytat oznacza, że ​​zostanie on przeanalizowany jako ciąg.

Lipis
źródło
11

Możesz sformatować datę w następujący sposób:

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

Aby podsumować wartości w kolumnie C, wykonaj następujące czynności:

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

Nie jestem jednak pewien, jak podsumować wiele kolumn - sam jestem w tym całkiem nowy!

s6mike
źródło
2

To powinno działać:

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

W każdym razie miałem ten sam problem i nareszcie mi się udało.

Chodzi o to, że wiadomość jest zdezorientowana

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

Wynika to z faktu, że format daty komórki w czwartym kwartale wydaje się być dd / MM / rrrr. Mam to samo: nawet jeśli wygląda to na bycie dd / MM / rrrr, po prostu musisz to tak ująć w drugiej linii mojej odpowiedzi powyżej.

Andreyko Dan
źródło
1

Umieść żądaną datę w nowej komórce, jak Q3w tym formacie:2/28/2012

Następnie w Q4typie komórki=YEAR(Q3) & "-" & DEC2OCT(MONTH(Q3), 2) & "-" & DAY(Q3)

Spowoduje to pobranie daty z Q3komórki i przekonwertowanie jej na ciąg w Q4komórce.

Jest to bardziej pomocne, jeśli chcesz mieć bieżącą datę. Zamiast uzyskać datę z Q3twojego, możesz użyć now()dzisiejszej daty w następujący sposób:=YEAR(now()) & "-" & DEC2OCT(MONTH(now()), 2) & "-" & DAY(now())

Brad C.
źródło
1

Finał powinien być:

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

Gdzie czwarty kwartał to zwykła komórka sformatowana według daty, w której można wpisać datę.

Skopiuj powyższe do notatnika i powiększ rozmiar czcionki, o co chodzi.

Trudno tu znaleźć singiel 'w podwójnej wersji ".

raymond703
źródło
0

Możesz także obliczyć datę poza ciągiem i upuścić datenp

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

Q4 jest skutecznie przekazywane jako liczba całkowita, co i tak QUERY przekształca datę za kulisy.

Max Ghenis
źródło
0

Korzystanie z funkcji QUERY Google:

W przypadku sum wielu kolumn ważne jest, aby dołączyć labelparametr na końcu zapytania

=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) '' ") 

Uwaga: w odwołaniach do kolumn rozróżniana jest wielkość liter i wymagane są 2 pojedyncze cudzysłowy na końcu zapytania.

Aby dodać whereklauzulę odnoszącą się do wartości daty komórki : z rozwiązania s6mikes

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

Te 2 zapytania łącznie ...

=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) '' ")
RumbleFish
źródło
-1

Musisz zmienić typ danych w komórce referencyjnej na tekst. I będzie działać płynnie.

telkontar
źródło