Comment faire une requête avec Google Spreadsheet, qui vérifie une date

11

J'ai une gamme qui va de B4:H124. Toutes les cellules de la colonne B sont des dates. Je voudrais récupérer les données d'une ligne ( B:H), où la DATE est égale au contenu d'une cellule spécifique, disons Q4.

Comment créer une requête appropriée?

Jusqu'à présent, ce que j'ai trouvé avec ceci:

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

Cela fonctionne, même si le format des cellules en B est JJ / MM / AAAA.

Comment puis-je changer 2012-02-28pour $Q4? Lorsque j'essaye, j'obtiens l'erreur suivante:

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

Quand je regarde la cellule, le format est yyyy-mm-dd, mais quand je double-clique dessus, le format change DD-MM-YYYY.

Que devrais-je faire?

De plus, comment puis-je résumer les valeurs de la requête, sans inclure la colonne B?

Kenci
la source

Réponses:

3

Je n'ai pas encore trouvé l'astuce pour que la cellule de date réelle fonctionne, mais vous pourriez avoir un moyen de contourner si rien d'autre en ajoutant le guillemet simple ( ') avant la date dans un format: YYYY-MM-DDdans la Q4cellule.

Cette simple citation signifie que l'il sera analysé en tant que chaîne.

Lipis
la source
11

Vous pouvez formater la date comme ceci:

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

Pour résumer les valeurs de la colonne C, procédez comme suit:

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

Je ne sais pas comment résumer plusieurs colonnes cependant - encore assez nouveau pour moi-même!

s6mike
la source
2

Cela devrait fonctionner:

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

Quoi qu'il en soit, j'ai eu le même problème et finalement cela a fonctionné pour moi.

Le truc c'est que le message vous embrouille

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

En effet, le format de date de votre cellule Q4 semble être jj / MM / aaaa. J'ai la même chose: même si cela ressemble à jj / mm / aaaa, il suffit de le mettre comme il est indiqué dans la deuxième ligne de ma réponse ci-dessus.

Andreyko Dan
la source
1

Mettez votre date souhaitée dans une nouvelle cellule comme Q3dans ce format:2/28/2012

Puis dans le Q4type de cellule=YEAR(Q3) & "-" & DEC2OCT(MONTH(Q3), 2) & "-" & DAY(Q3)

Cela obtiendra la date de la Q3cellule et la convertira en une chaîne dans la Q4cellule.

C'est plus utile si vous voulez la date actuelle. Au lieu d'obtenir la date de Q3votre, vous pouvez utiliser now()la date d'aujourd'hui comme ceci:=YEAR(now()) & "-" & DEC2OCT(MONTH(now()), 2) & "-" & DAY(now())

Brad C.
la source
1

La finale devrait être:

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

Où Q4 est une cellule formatée en date normale où vous pouvez taper une date.

Copiez ce qui précède dans votre bloc-notes et agrandissez la taille de la police en fonction de tout.

Il est difficile de voir le single 'dans le double "ici.

raymond703
la source
0

Vous pouvez également calculer la date en dehors de la chaîne et supprimer le date, par exemple

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

Le Q4 est effectivement passé sous forme d'entier, ce qui de toute façon QUERY transforme la date en arrière-plan.

Max Ghenis
la source
0

Utilisation de la fonction QUERY de Google:

Pour sum plusieurs colonnes , il est important d'inclure le labelparamètre à la fin de la requête

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

remarque: les références de colonne sont sensibles à la casse et les 2 guillemets simples à la fin de la requête sont obligatoires.

Pour ajouter une whereclause référençant une valeur de date de cellules : à partir de la solution s6mikes

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

Les 2 requêtes combinées ...

=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
la source
-1

Vous devez changer le type de données dans votre cellule de référence en texte. Et cela fonctionnera en douceur.

telkontar
la source