web-dev-qa-db-fra.com

Somme Catégorie colonne dans une feuille basée sur une colonne de dates dans une autre feuille

J'ai une feuille, Transactions, cela ressemble à ceci:

+--------------+-------------+-------------+-----------+
|         Date |       Payee |    Category |    Amount |
+--------------+-------------+-------------+-----------+
|   29/03/2020 |     Walmart |   Groceries |   $100.00 |
+------------------------------------------------------+
|   27/02/2020 |      Costco |   Groceries |   $220.00 |
+------------------------------------------------------+
|   12/03/2020 |       Exxon |         Gas |   $350.00 |
+------------------------------------------------------+
|   05/01/2020 |    Petsmart |        Pets |    $50.00 |
+------------------------------------------------------+
|   28/03/2020 |       Shell |         Gas |   $125.00 |
+--------------+-------------+-------------+-----------+

Maintenant, dans une autre feuille, je tiens à garder une trace de combien je passe dans chaque catégorie tous les mois. Je veux que ça ressemble à ceci:

+-------------+-----------+-----------+-----------+
|    Category |   03/2020 |   02/2020 |   01/2020 |
+-------------+-----------+-----------+-----------+
|         Gas |           |           |           |
+-------------------------------------------------+
|   Groceries |           |           |           |
+-------------------------------------------------+
|        Pets |           |           |           |
+-------------+-----------+-----------+-----------+

Donc, à la fin, chaque colonne devrait ressembler à ceci:

+-------------+-----------+-----------+-----------+
|    Category |   03/2020 |   02/2020 |   01/2020 |
+-------------+-----------+-----------+-----------+
|         Gas |   $475.00 |        $0 |        $0 |
+-------------------------------------------------+
|   Groceries |   $100.00 |   $220.00 |        $0 |
+-------------------------------------------------+
|        Pets |        $0 |        $0 |    $50.00 |
+-------------+-----------+-----------+-----------+

J'ai la requête suivante dans la cellule B2, mais cela ne fonctionne pas:

=iferror(query(INDIRECT("Transactions!A2:D"), "Select A, B, C, D", "select Sum(D) where A >= date '"&TEXT(B$1,"yyyy-MM-dd")&"' and A <= date '"&TEXT(eomonth(B$1,0),"yyyy-MM-dd")&"' and C= '"&$A2&"' label Sum(D) ''"),0)

Qu'est-ce que je fais mal?

1
user698515

Votre requête est essentiellement correcte. Cela fonctionnera avec des altérations mineures.

Veuillez utiliser ce qui suit et faites glisser vers le bas, puis à droite:

=iferror(query(Transactions!$A$2:$D, "select Sum(D) where A >= date '"&TEXT(B$1,"yyyy-MM-dd")&"' and A <= date '"&TEXT(eomonth(B$1,0),"yyyy-MM-dd")&"' and C= '"&$A2&"' label Sum(D) ''"),0)

Qu'est ce qui a changé:

  1. Vous n'avez pas besoin de la fonction INDIRECT dans votre requête. Il vous suffit de verrouiller la plage de requêtes en utilisant le $ signer: Transactions!$A$2:$D
  2. Vous avez utilisé la clause select deux fois. Il devrait être utilisé juste une fois.
1
marikamitsos