Tri par date

Bonjour,

Je suis tout nouveau sur ce forum et je viens vers vous concernant un pb pour lequel je n'ai pas trouvé de solution dans Google sheets.

Un formulaire me rempli une feuille Data dans Google sheets, 1ere colonne Horodateur et 2e colonne date renseignée.

Toutes les dates ne sont pas renseignées et ce que je voudrais, c'est passer autant de ligne(s= que de jour(s) manquant entre 2 dates.

date renseignée:

01/05/2020

02/05/2020 > on passe 2 lignes

05/05/2020 > on passe 6 lignes

12/05/2020

13/05/2020

J'espère au moins que la question est claire...

Merci à vous en attendant une réponse

Bonjour Deedy-A,

Pourrais-tu expliquer ce que tu entends par "passer" ?

Avec un exemple de fichier en partagé, ce sera top.

Merci, à prochaine.

EMX

Bonjour et Merci pour la réponse,

En attendant un fichier partagé, voilà ce que j'entends par "passer"

Voilà ce que j'obtiens par le formulaire (pour chaque date saisie)

01/05/2020

02/05/2020

05/05/2020

12/05/2020

13/05/2020

Voilà ce que je voudrais (autant de ligne(s) vide(s), éventuellement avec la date, pour les dates non remplies par le formulaire):

01/05/2020

02/05/2020

05/05/2020

12/05/2020

13/05/2020

Encore merci en espérant être clair

Je profite de l'occasion pour une autre question de débutant:

Comment partagé une seule feuille d'un Google sheets

Bonne journée

ReBj

J'ai une solution plutôt simple à te proposer.

Et pour laisser une trace utile dans le forum, je dois rédiger un minimum, donc voici :

  • Tu crées une liste avec tous les jours : date de départ ; +1 ; +1 ; +1 etc
  • Pour chaque date, tu recherches si elle est présente dans les saisies,
si elle n'y est pas, tu le sais et tu le marques (par 0, -1, FAUX, "xxx"),

si elle y est, tu récupères son n° ligne (s'il en existe plusieurs, ce sera la première),

=SIERREUR(EQUIV(B5;'Réponses au formulaire...'!B:B;0);"!!! pas de saisie !!!")

et après tu en fais ce que tu veux, par exemple récupérer les différentes données de cette ligne :

=SI($C5=0;"-";index(DECALER('Réponses au formulaire...'!$A:$A;0;D$2-1);$C5))

Ce sera sans doute plus parlant et plus utile par l'exemple :

Si tu en as d'autres, et ça viendra forcément, n'hésite pas !

A prochaine

EMX

Merci beaucoup, j'ai réussi à "bricoler" qq chose dans ma feuille, mais sans trop en comprendre le sens.

si tu peux me donner des compléments sur ces 2 lignes:

=SIERREUR(EQUIV(B5;'Réponses au formulaire...'!B:B;0);"!!! pas de saisie !!!")

=SI($C5=0;"-";index(DECALER('Réponses au formulaire...'!$A:$A;0;D$2-1);$C5))

Je n'ai pas utilisé les 2 lignes ci dessous car dans la 1ère colonne j'avais déjà la liste des jours, mais je veux bien des explications:

=min('Réponses au formulaire...'!A:B) doit me retourner la plus petite date des colonnes A,B de la feuille" Réponses au formulaire..."

au passage pourquoi ne pas prendre que la colonne ou se trouve les dates?

=B$4+LIGNE()-LIGNE(B$4) on prend le contenu et à la ligne suivante on affiche le jour suivant !

Voila ce que je comprends à mon niveau mais pour la syntaxe j'ai besoin d'aide...

Sans vouloir abuser j'avais une autre question:

Comment partager une seule feuille d'un document Google Sheets qui en contient plusieurs?

Encore Merci pour le super coup de main

Bonjour,

Pour suivre l'affaire...

si tu peux me donner des compléments sur ces 2 lignes:

=SIERREUR(EQUIV(B5;'Réponses au formulaire...'!B:B;0);"!!! pas de saisie !!!")

On cherche et garde dans cette cellule (C5) , le n° de ligne où se trouve la date cherchée (1° occurrence sans la liste).

Si pas trouvé (equiv en erreur), on y met un texte spécial ou 0, ou 9999, comme on veut.

Pour ma part, je mets un 0, c'est facile à tester.

=SI($C5=0;"-";index(DECALER('Réponses au formulaire...'!$A:$A;0;D$2-1);$C5))

Justement, si date pas trouvée ($C5=0), j'affiche un "-",

si trouvée, je récupère la cellule sur sa ligne ($C5) et sur la colonne définie en D$2 (1 pour A, 2 pour B, 3 pour C....)

=min('Réponses au formulaire...'!A:B) doit me retourner la plus petite date des colonnes A,B de la feuille " Réponses au formulaire..."

au passage pourquoi ne pas prendre que la colonne ou se trouve les dates?

Oui, tu peux limiter le min sur une seule colonne, mais tu peux rater des dates qui sont antérieures.

Par précaution, j'ai inclus les deux cols.

=B$4+LIGNE()-LIGNE(B$4) on prend le contenu et à la ligne suivante on affiche le jour suivant !

tu as bien compris, ca revient à faire un +1 sur le jour du dessus.

L'intérêt de la complication, c'est que tu peux insérer ou supprimer des lignes,

et tu n'auras jamais de doublons ou de trous.

Oui, il faut penser à celui qui va exploiter et maintenir, d'autant plus que c'est toi-même.

Sans vouloir abuser j'avais une autre question:

Comment partager une seule feuille d'un document Google Sheets qui en contient plusieurs?

Je suppose que c'est pour ouvrir un onglet à d'autres, avec modification.

Le partage concerne effectivement le classeur entier. Tu peux ajouter des protections ci et là et partout, mais je te déconseille.

Dans ce cas, crée plutôt un classeur partagé, avec les feuilles nécessaires à la capture,

puis dans ton master, tu fais appel à ce ou ces classeurs par des "importrange".

Merci encore pour ces distractions.

A une prochaine

EMX

Bonjour et encore Merci pour ces explications, qui me permettent de mieux comprendre...mais pas encore tout !

Je n'ai pas compris l'intérêt de la ligne 2 dans ta feuille "récup normalisée".Aussi je mets en pièce jointe une copie

d'une de mes feuilles: il n'y a pas d'équivalent de ta ligne 2 dessus, le D:D dans l'exemple correspond à la colonne de ma feuille

ou je récupère les données du formulaire (dans la colonne E de la feuille en photo je mets E:E qui correspond à la colonne

avez-vous travaillé de ma feuille de réponses, etc...) J'ai fait des essais, ça fonctionne, mais je ne comprends pas le B$2-1,

ni le $B70 à la fin.

J'espère que les questions sont clairs, ce n'est pas facile sans le fichier

Bonne journée et Merci par avance

Didier

test sheets

Hella,

La distraction tourne à la punition !

La ligne 2 servait à décaler la colonne D, pour récupérer d'autres données.

Tu as modifié tes formules pour y mettre directement les colonnes voulues,

ce n'est donc plus utile.

Le $B70, c'est pour aller chercher la bonne ligne, d'après son index, dispo en colonne B.

Bref, travaille un peu la question, parce qu'un index de plage, c'est vraiment du basique.

Il te faudra un minimum de compréhension pour poursuivre.

Bonjour et mille excuses, mais derrière mon ignorance se cache une belle envie d'apprendre.

Encore Merci pour toutes les explications, mais avant d'envoyer mon fichier pour la visu du résultat

je voudrais qu'il soit le plus "propre" possible et que je comprenne ce qu'il y a dedans...

J'y suis presque et j'ai bien compris pour la colonne Index la formule

=SIERREUR(EQUIV(A71;'Réponses'!C:C;0);0)

Je sais que le deuxième 0 correspond à ce qui est affiché dans la colonne index, quand il n'y a pas

d'équivalence entre le contenu de la cellule A71 et les résultats de la colonne C de ma feuille "Réponses", mais

le 0 juste aprèsC:C; ?

Pour la fourmule suivante, se trouvant en colonne D de ma feuille de synthèse, je cherche si c'est

possible à la simplifier.

=SI($B70=0;"";index(DECALER('Réponses'!D:D;0;B$2-1);$B70))

=SI($B70=0;"" je comprends bien et on affiche rien

après le ; dans le cas contraire index(DECALER('Réponses'!D:D;0;B$2-1);$B70)) ,je sais que j'affiche

qq chose de la colonne D de ma feuille de réponses, mais 0;B$2-1);$B70)) je ne comprends pas.

J'ose espérer que la "punition" n'est pas trop sévère et quand j'ai compris cela, j'envoi mon fichier complet

Merci Merci à toi et excellente journée

Bon et Jour

Quand c'est ton affaire, ton projet,

il arrive un moment où tu dois t'y pencher personnellement.

Et ce moment est arrivé.

A la place de poissons, voici quand même 2 cannes-à-pêche :

OFFSET = DECALER

MATCH = EQUIV

Et oui, la doc existe. Même les plus calés s'y réfèrent quand il le faut.

On y trouve les définitions précises et complètes des objets, méthodes, propriétés, fonctions, constantes...

Tout ce qui fait qu'à la fin, ça marche... ou pas.

Travaille donc la question... ou pas.

Et envoies ton "fichier complet" comme il sera, quand tu pourras, et à qui tu voudras.

Bonne suite.

Bonjour à tous

J' ai bien tenu compte des différents conseils et après 2 jours de recherches, et pas mal de tests,

j'arrive à une version qui me convient et que je "maîtrise", avec l'aide et assistance d'Exacel, encore Merci !

Durant ces 2 jours, j'ai découvert de nouvelles fonctions... qui m'ont données de nouvelles idées pour mes

feuilles de calcul.

Je joints une partie de mon document pour la question:

Ce tableau a en colonne A les dates et pour chaque fin de mois je fais des totaux, ce qui me fait passer des lignes

entre la dernière date du mois n et la première du mois n+1.

En colonne AN, je voudrais obtenir le total des heures de la semaine passée (je mets ce total à la hauteur du dimanche,

7e jour de la semaine de ma colonne AM)

je colle manuellement la formule de somme en regard du jour 7, mais on peut certainement automatiser la procédure..!

Mon souci est que des semaines sont souvent "à cheval" sur 2 mois et il faut "rebricoler" chaque fois la formule de somme,

Il y a certainement mieux à faire et je compte sur votre expertise pour m'aider dans cette recherche.

Merci et excellente journée

sheet

Bonjour,

Bravo pour les avancées depuis notre dernier échange.

On veut bien aider, mais si ça demande de se retaper tout le cas de figure, c'est beaucoup moins engageant.

Si tu partages un fichier, ce sera tellement plus facile pour comprendre ton problème de fin de mois et te proposer une solution.

Merci pour ça et à bientôt donc.

EMX

Merci pour la réponse, je viens de prendre mon fichier, dupliquer et simplifier pour que la question soit

plus compréhensible.

C'est la première fois que je fais ce type de manip, surtout il faut me dire si ça ne va pas !

Mon problème est par exemple à la cellule AN82 pour obtenir le Nb d'heures total de la semaine 27,

En clair trouver une formule me permettant d'obtenir le résultat quand une semaine est "à cheval" sur 2 mois

Merci pour l'expertise en restant à votre disposition pour tout compléments

Didier

Bonjour D&D

Ton tableau est bien structuré, il y a toutes les infos utiles à disposition.

Plusieurs façon de faire, comme d'hab.

Par exemple faire un somme.si full colonne sur le N° de semaine, ça suffit

En AN82, ça donnerait ça :

=SOMME.SI.ENS($AK:$AK;$AP:$AP;$AP82)

Essaie d'ailleurs d'utiliser plus largement ce principe d'approche ensembliste.

Parce qu'avoir des formules trop "positionnelles", qui tiennent compte de leur emplacement et de la présentation, ce n'est pas le top.

Si tu dois modifier l'un ou l'autre, ca demande gros travail de copier/coller subtils pour adapter les formules.

Tant qu'à faire, il faut aussi penser à se rendre le futur facile !

Au plaisir...

EMX

Un grand Merci pour la réponse, j'ai pris un peu de temps pour la compréhension et après étude, je comprends bien

à quoi sert cette fonction SOMME SI ENS .

Je l'utilise dans la colonne AM et n'affiche la valeur que pour le jour 7 (Dimanche), ça fonctionne parfaitement, il y a

peut- être une autre solution plus fonctionnelle ? ou d'autres endroit pour son utilisation ?

Merci pour le retour.

Ce tableau qui est mon premier avec Google sheet commence à prendre forme et je me demande si c'est jouable de n'avoir

qu'une seule feuille "Justine" ou un tableau complet par année. Il n'y aura pas beaucoup plus de colonnes et dans ce cas,

combien d'années pourraient être saisies? Y a t-il une limitation en taille ou nb de lignes?

En tout état de cause dans mon exemple il est arrêté à fin juillet et je cherche la meilleur solution pour créer le mois suivant

et que les dates s'enchaînent correctement et le reste aussi. Jusqu'à présent je copiais-collais en changeant les dates manuellement et adaptais les lignes en fonction du nb de jour ! Pas très pro!

Il pleut ici en Alsace, donc plus de Bureau que de jardin...

Merci par avance pour l'aide et j'apprécie en tout cas le fait de me faire progresser.

Didier

Mister DeeDee,

Si j'ai compris ta problématique, tu voudrais pouvoir initaliser facilement une année, ou les mois à venir,

sans avoir à tout retoucher manuellement. En tant que flemmard invétéré, je te comprends.

J'ai déjà été confronté au besoin, pour des suivis de temps, et pour des écritures comptables.

Mon approche est la suivante : Nous faisons un "bloc" de lignes, reproductible, qui va s'adapter tout seul, en fonction de ce qu'il y a au-dessus.

Avec un principe : les 31 lignes des jours sont identiques. Seules les 2 lignes de Synthèse du Mois diffèrent.

Partons sur un bloc de 33 lignes :

31 jours (pour les grands mois) + 1 total du Mois + 1 ligne de séparation.

Dans ce bloc, il faut s'adapter aux mois de 30, 29 ou 28 jours, en laissant les dernières lignes vide

(1, 2 ou 3 lignes non utilisées).

en début de bloc, pour le 1° du mois, il faut bien reprendre avec données du dernier jour du mois précédent.

Ce sont ces variabilités d'un mois l'autre qui demandent des formules évoluées, voires complexes.

J"en ai fait une illustration par ici :

J'ai modifié quelques couleurs pour y voir plus clair, et surtout, rétabli l'usage correct de AM et PM.

Ceux qui utilisent AM pour après-midi méritent d'être pendus haut et court. Qu'on se le dise !

Regarde le principe utilisé, et s'il te parait intéressant, reprends-le à ton compte et à ta façon.

Encore une fois, c'est une façon de faire parmi plein d'autres. Ce n'est pas une solution absolue.

J'aimerais bien voir d'autres propositions, plus élégantes ou plus simples...

S'il quelques Cadors du tableur veulent nous montrer leur talents, c'est le moment !

A prochaine,

EMX

Rechercher des sujets similaires à "tri date"