Comment regrouper des données par mois dans Google Sheets


39

J'ai une feuille de Google qui contient divers indicateurs pour chaque jour. Chaque jour a sa propre ligne:

day        | cost | impressions | clicks | conversions
2014-02-01 | $45  | 3,540       | 80     | 5
2014-02-02 | $49  | 3,700       | 88     | 7
2014-02-03 | $42  | 3,440       | 79     | 7
2014-02-04 | $51  | 3,940       | 91     | 10

Je veux faire pivoter la table et résumer cost, impressions, clickset conversioncolonnes par mois ( et non par jour) comme ceci:

Month        | Sum of cost | Sum of impressions | Sum of clicks | Sum of conversions
February     | $187        | 14620              | 338           | 29

Dans Excel, je viens d'utiliser la Group byfonction, mais je constate qu'elle n'est pas disponible dans Google Sheets.


2
La réponse correcte à partir de 2018 est celle-ci: webapps.stackexchange.com/a/120852
Kos

Réponses:


18

En utilisant les Data->Pivot table report...offres exactement ce que vous demandez. Il est possible que vous deviez utiliser les " Nouvelles feuilles de Google ".
J'utilise cela comme paramètre par défaut et il était facile de réaliser ce que vous vouliez, comme dans Excel.

Ici, dans ma réponse, j’explique comment activer les nouvelles feuilles de calcul.


Il semble que je n'ai pas complètement compris le problème.

Nous devons d’abord avoir le mois. Pour cela ajouter une nouvelle colonne pour extraire la date en utilisant =MONTH(DATE_COLUMN).

entrez la description de l'image ici

Ensuite, créez un rapport Pivot:

entrez la description de l'image ici


essayé les 'nouvelles feuilles de google' et il n'y a aucune option de regrouper les dates par mois dans les rapports de tableau croisé dynamique, peut-être pourriez-vous nous éclairer?
Bogdan

Désolé, je pensais que le principal problème était que vous ne pouviez pas trouver de groupe. Alors pourquoi ne pas ajouter une colonne fournissant uniquement le mois et grouper par celui-ci?
StampedeXV

Malheureusement, je ne peux pas ajouter dans une autre colonne, ni changer le format de la feuille source car elle est utilisée pour alimenter un tableau de bord dans Cyfe, mais merci pour vos réponses ...
Bogdan

Vous pouvez ajouter la colonne, puis la masquer pour la rendre invisible. Vous pouvez néanmoins l'utiliser dans le rapport de tableau croisé dynamique.
StampedeXV

Excellente idée. J'ai essayé, mais Cyfe ne semble pas pouvoir ignorer les colonnes cachées. Je vais juste devoir garder 2 feuilles en double avec les données sources pour résoudre ce problème ....
Bogdan

30

Google Sheets prend désormais en charge cette fonctionnalité en tant que "Créer un groupe de dates pivot".

Une fois que vous avez ajouté votre colonne de date / heure en tant que ligne:

  1. Faites un clic droit sur l'une des valeurs du tableau croisé dynamique,
  2. Choisissez 'Créer un groupe de dates de pivot'
  3. Choisissez le groupe souhaité (par exemple, «Mois» ou «Année-mois»)

Avant + Exemple visuel:

Tableau croisé dynamique avant le regroupement

Après:

entrez la description de l'image ici

Plus d'informations


cela devrait être probablement la bonne réponse
senseiwu

C'est la meilleure réponse de loin à partir de 2018
Calvin

Puis-je utiliser mes propres formules avec les tableaux croisés dynamiques? Je veux obtenir des quantiles
Hubert Grzeskowiak

3
Je ne vois pas cette option dans ma colonne de dates
Ian Hyzy

5

Sans colonne d'assistance:

=query(A:E,"select sum(B), sum(C), sum(D), sum (E) group by month(A) offset 1")  

en supposant dayest en A1.

Une documentation qui décrit bien le fonctionnement de ce qui précède plus que jamais.


1
Cela semble vraiment utile. Pourriez-vous expliquer comment cela fonctionne? Je n'ai jamais utilisé la fonction de requête.
Shawn V. Wilson

Est-il possible de regrouper par mois ET année?
Hubert Grzeskowiak Le

@HubertGrzeskowiak Oui, c’est
Lee Taylor

4

Donc, pour ceux qui ont posé la même question que moi, il n'y a apparemment pas encore de fonction de champ Groupe pour Pivot dans Google Sheet (comme dans Excel). La méthode la plus simple consiste donc à ajouter une autre colonne transformant vos dates aux groupes dont vous avez besoin, par exemple des semaines, des mois, des années ... J'espère que la fonctionnalité sera bientôt disponible dans Google.


2

J'ai trouvé un moyen plus simple de convertir la cellule de date en texte dans une nouvelle colonne.

=Text(A1, "mmm-yy")

Vous pouvez ensuite pivoter et il va regrouper par mois.


1

Aucune des réponses précédentes n'a fonctionné pour moi, car j'utilise un formulaire comme entrée. Vous ne pouvez pas ajouter de formules sur la feuille de formulaire.

Voici mon travail.

En lisant ce qui précède, le tableau croisé dynamique a besoin d’une colonne avec mois pour pouvoir être activée. Vous pouvez utiliser un critère différent, comme semaine ou vendredi. Ou John, Doe, Foo ou un bar. Tout ce que vous voulez "grouper".

Dans mon cas: la date est en B, =month(B2)donne le mois. J'ai donc besoin d'une colonne supplémentaire avec =month(B2).

Le formulaire ne permet pas les formules. Et sur une feuille avec un formulaire, vous ne pouvez pas ajouter une colonne avec des formules (exactement: vous pouvez, mais une nouvelle entrée de formulaire supprime la formule sur la ligne correspondante).

Deuxième feuilles

Une deuxième feuille simple avec =page1!A1etc et en ajoutant la colonne mois a le même problème. Une nouvelle entrée sous la forme => ajoute une ligne.

Solution

Alors j'ai fait ce qui suit.

  • Ajout d'une feuille supplémentaire
  • Utilisé =importrange("longkeynumber";"sheet form!A1:E1000")sur A1
  • (importrange est d'importer un document différent, mais bon… ça marche)
  • En F, utilisé =if(B3>0;(MONTH(B3));"")
  • Lors de l'ajout de données supplémentaires dans la feuille A, les formules de la feuille B avec la plage d'importation restent.
  • Vous pouvez maintenant ajouter un tableau croisé dynamique, avec (dans ce cas) F comme ligne ou colonne.

Dans la réponse de user165410 , il déclare: - En F, utilisé =if(B3>0;(MONTH(B3));"")C'est une bonne solution, mais elle peut être simplifiée encore: - en F3, =arrayformula(if(b3:b>0;(month(b3:b));""))cela permet de mettre automatiquement le mois pour chaque cellule non vide de la plage B3: B. L'insertion ou la suppression d'une ligne, ou le déplacement d'une ligne ne va PAS foirer les formules!
Stefan van Aalst

Lorsqu'une nouvelle réponse est ajoutée à une feuille de calcul, une nouvelle ligne est insérée. Des formules matricielles (résultat de plusieurs valeurs) peuvent être utilisées à la place ou des formules scalaires (résultats de valeurs uniques). Par ailleurs, lorsque les données source proviennent du même fichier, vous pouvez utiliser des formules matricielles pour renvoyer le même résultat que IMPORTRANGE et elles sont immédiatement mises à jour
Rubén

J'aime cette solution! dans F3, = arrayformula (if (b3: b> 0; (mois (b3: b)); "")) Le seul problème est que les données portent sur plus d'un an et que chaque mois est combiné avec le même mois dans le année précédente.
Vic M

1

Si vous ajoutez déjà une nouvelle colonne, vous pouvez également simplement utiliser eomonth("reference cell",0). Cela prendra toujours le dernier jour du mois. Ou eomonth("reference cell",-1)+1pour obtenir le début du mois.

La beauté de cette approche au lieu de la conversion en texte est que lorsque vous faites pivoter les données. Cela va automatiquement trier ascendant de gauche à droite.


1

J'ai trouvé un moyen que j'aime mieux. J'ai simplement créé une colonne masquée en procédant comme suit:


  • Arrondissez chaque jour du mois au premier jour du mois.

= A2 - jour (A2) + 1 où A2 est la date standard

  • Définissez la mise en forme sur personnalisé et choisissez mois / année. Cela vous demandera de supprimer le réglage du jour. Ainsi, il affichera mois / année lorsque la valeur réelle sera le premier jour du mois, mois, année.
  • Le tableau croisé dynamique va maintenant regrouper tous les éléments similaires et afficher le formatage de la colonne avec mois / année.

De cette façon, vous obtiendrez des valeurs uniques au fil des années. J'ai moi-même décidé de masquer la colonne en question car j'ai un document connecté à cette feuille qui extrait les deux premières lignes au fur et à mesure que je les ajoute.

Formule pour date et formatage

Format de date personnalisé

Résultats du tableau croisé dynamique

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.