Transformer calendrier annuel de 12 colonnes (365 valeurs) en une seule colonne

Résolu
meedoo2 Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   -  
meedoo2 Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai un tableau d'une année ou il y a de données journalières classées par mois (12 mois = 12 colonnes). J'ai la formule pour transformer un tableau de la sorte en une seule colonne:
Si j'avais 30 lignes dans toutes les colonnes, j'aurais :

=DECALER($A$1;MOD(LIGNE()-2;30);ENT((LIGNE()-2)/30);1;1)

Le problème c'est qu'il y a des colonnes avec 30 valeurs et d'autres avec 31 valeurs et même 28 valeurs pour la colonne de Février. sur cet exemple joint, ce que j'ai est dans la première feuille, et ce que je demande est dans la feuille suivante : https://www.cjoint.com/c/HKpiNFD2Hb1

Y a t-i moyen d'ajouter des instructions à la formule pour tenir cela en compte ?
Merci


A voir également:

2 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

A adapter en fonction du premier jour (dans ton exemple, le 01/09/2018) :
=DECALER($A$1;JOUR(DATEVAL("01/09/2018")-1+LIGNES($1:1))-1;MOD(MOIS(DATEVAL("01/09/2018")-1+LIGNES($1:1))-MOIS(DATEVAL("01/09/2018"));12))
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Exemple :
https://mon-partage.fr/f/AiadslnS/
0
meedoo2 Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci Patrice. C'est exactement ce que je voulais. L'exemple est encore plus explicite. Mais c'est bien de poster la formule pour les futures demandeurs car le fichier joint disparaît dans peu de temps. Est ce que je peux me permettre de demander l'inverse (j'en aurais surement besoin). C'est à dire à partir d'une unique colonne de 365 valeurs, je dispatcherai ces valeurs sur 12 colonnes, mais chacune avec un nombre précis de données. 30 pour la première (septembre), 31 pour la seconde, puis 30, 31, 31, 28, 31, 30,31,30, 31, 31. Merci beaucoup.
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Bonjour,

Pour faire l'inverse avec les données en A1:A365, utiliser la formule suivante (n'importe où en dehors de A1:A365) :
=SI(DATEDIF(DATEVAL("01/09/2018");JOUR(DATEVAL("01/09/2018"))-1+LIGNES($1:1)+MOIS.DECALER(DATEVAL("01/09/2018");COLONNES($A:A)-1)-1;"m")=COLONNES($A:A)-1;INDEX($A$1:$A$365;JOUR(DATEVAL("01/09/2018"))-1+LIGNES($1:1)+MOIS.DECALER(DATEVAL("01/09/2018");COLONNES($A:A)-1)-DATEVAL("01/09/2018"));"")

à tirer vers le bas sur 31 lignes puis vers la droite sur 12 colonnes
0
meedoo2 Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   1
 
C'est tout simplement magique; et comme la gourmandise est innée chez l'Homme, je profite de ma semaine de chance et je souhaiterais résoudre cet autre dilemme :
J'ai une série de valeurs dans une seule colonne, et je voudrais (dans la colonne voisine par exemple) cumuler ces valeurs une à une. C'est à dire dans A2 j'aurais le cumul de A1 et A2; et dans A3 j'aurais le cumul de A1, A2 et A3 ... et ainsi de suite jusqu'à An.
J'imagine que la demande est claire et ne nécessite pas de fichier à joindre.
Merci
0
meedoo2 Messages postés 46 Date d'inscription   Statut Membre Dernière intervention   1
 
C'est bon.
c'était plus simple que je croyais :
=SOMME($A$1:A2)

Merci pour tout.
0