Date: prev next · Thread: first prev next last
2023 Archives by date, by thread · List index


Merci Claire, Beaucoup de choses à digérer dans ce que tu proposes et des fonctions à creuser que je ne connaissais. Je vais m'y pencher. Concrètement pour ma difficulté actuelle j'ai choisi de recréer les deux colonnes mois et année et ensuite je crée une table dynamique. Je retiens également ce que tu as dit, je vais travailler sur l'outil de saisie pour obtenir ces deux colonnes (ou une seule si je décide de mettre uniquement la date du premier jour du mois) avant l'import de manière à ne pas avoir à retravailler le fichier une fois les données importées. Merci encore pour ce temps passé et les propositions faites. C'est toujours enrichissant de confronter les approches de chacun avec les siennes.
très bonne fin de semaine
Martine

Le 05/06/2023 à 21:09, Ocleyr2lalune a écrit :

Re

je coince dans une table dynamique mais je pense qu'on s'en passe, sans avoir à ajouter de colonnes...

Quelques pistes... Et une solution sans tables dynamiques (voir à la fin)

résumé : c'est bon les tables dynamiques, oubliez-les (parfois !)

=> *Sur la source de données *(confère à l'autre discussion en cours depuis qq jours sur le choix du bon outil, et je dirais même dans l'outil, de la bonne méthode) :

Je ne crois pas qu'il soit judicieux, de mélanger dans la même feuille, l'extraction de la source, et des calculs supplémentaires. surtout si l'actualisation est automatique, mais même si c'est manuel. 2-3 réponses à ça

Si ton extraction (que tu dis modifier) est donc personnalisable, c'est via  l'outil qui te permet de faire les extractions que tu dois faire l'essentiel des calculs, des manipulations, ajouter de nouvelles colonnes (issues éventuellement de calculs). Il faut toujours quand on manipulent des données "volumineuses" réserver la manipulation, le traitement de la donnée, à l'outil qui est fait pour. Dans Calc, tu dois réserver le calcul final, ultime.

Tu pourrais aussi, car il semble que c'est ton nombre de colonnes qui t'encombre l'esprit, selon ton besoin, concevoir une extraction différente à chaque type d'analyse.

Enfin, voire surtout, j'aurais tendance, pour éviter de tout refaire à chaque fois, de mettre en place un fichier où les calculs restent valables malgré le nombre de valeurs croissantes. (bien sur tes colonnes doivent être stabilisées). Ainsi, tu pourrais avoir une feuille "source", et une autre, où les valeurs sont copiées (avec liaison), qui ne prend que les colonnes utiles, si tu n'as qu'une source, et auxquelles tu ajoutes tes calculs. Là encore, isole les thèmes dans des feuilles différentes. Si tout est issu de la même source, quand tu changes d'axe d'analyse, c'est pertinent d'avoir une feuille différente.

*=> La solution la plus simple, que l'on va toujours recommander, celle qui est naturelle, pas prise de tête : *

De là, tu pourrais "accepter" (je n'aime pas du tout ce terme...) 2 colonnes supplémentaires mois(date en C) et annee(date en C), oui car en réalité, à moins que tu veuilles cumuler janvier de 2022 et 2023, il te faut l'année aussi. C'est ce que plusieurs préconisent. Et c'est juste car c'est franchement simple d'obtenir ce qu'il te faut ensuite. Reste à gérer ce qui te dérange dans cette pratique (d'où ce qui précède)

*=> Les sous totaux dans la table dynamique*

Si ton champ est en ligne par exemple, tu doubles cliques sur le champ, et tu peux faire un sous total (oui au fait le sous total, c'est pas toujours une somme, voir pour cela, la doc de la fonction sous.total)

Sauf que comme tu es sur une date, il n'y a pas de sous total apparent, donc on oublie (mais au moins, une prochaine fois, dans d'autres cas...)

*=> Il existe une solution manuelle, mais qui devra être refaite à chaque fois que la table dynamique est actualisée:*

Grouper les valeurs d'un même mois (sélectionner dans la table, puis données grouper, renommer le groupe...)

C'est quelque chose d'assez utilisé, mais là encore dans ton cas, c'est très empirique, et peu satisfaisant...

*Il y aurait probablement une solution dans Excel*

oui en toute honnêteté... Il y a un peu moins de 10 ans, quand au boulot on travaillait sur le passage à LibreOffice, on m'a parlé des champs calculés des TCD dans Excel. Cela permet de créer des champs de tables supplémentaires par exemple un mois(date). Mais des choses bien plus complexes aussi...

De là ce serait tout bête.

C'était tellement important qu'on a été à 2 doigts de financer le dév de la fonction dans LibreOffice 25000€ en devis initial, puis devis monté à 50000€. On n'est pas allés au bout, car quand même c'est bien aussi d'utiliser des outils spécialisés, qui sont déjà disponibles (confère plus haut).

Mais il existe une fonction un peu intermédiaire qui ne répond pas à toutes les situations...

*Extraire données pilote*

La doc de l'aide ne donne pas d'exemple, du coup c'est abscon... La page FR du wiki est plus claire https://wiki.documentfoundation.org/FR/Calc:_fonction_EXTRAIRE.DONNEES.PILOTE

Selon le besoin, il y a 2 syntaxes différentes. Quand on manipule déjà le somme.si.ens, ça doit être moins dur d'accès (parce qu'en formation c'est pas le moment le plus zen de la journée....)

Je coince, principalement parce qu'on est sur une date. J'arrive à récupérer le total des entretiens, l'entretien d'un jour (avec en critère la date en nombre, et non pas saisie comme une date, passer par la valeur dans une cellule).

Ce qui serait idéal serait d'avoir dans un tableau les dates du premier jour du mois, et de demander le cumul des entretiens pour les dates comprises dans l'intervalle. En cherchant les valeurs dans la table dynamique, je trouve pas. Mais ceci dit, à bien y réfléchir, je ne vois pas pourquoi passer par une table dynamique pour ça...

*un somme.si.ens ? non un sommeprod !*

Pour que le somme.si.ens fonctionne il faudrait que le mois et l'année de la date soient déjà dispo... on revient à la même question qu'avec une table dynamique :-( Ou alors, on part des dates du 1er jour du mois (principe évoqué plus haut)

Mais on pense moins à....

SommeProd, fonction magique (un peu compliquée aussi à présenter en formation, mais plus simple que extraire données pilotes quand même)

Comme il y a de nombreux usages détournés de cette fonction, il faut ensuite une petite gymnastique d'esprit. Mais en comparaison avec le somme si ens, dans le cas de cet usage, on met les critères en premiers, la plage à additionner en dernier. Beaucoup ont l'habitude d'utiliser un index(equiv) à la place. Il a moins de limitation, mais je préfère le sommeprod quand il peut fonctionner...

*Pour la somme des lignes non vides (par mois)*

estvide, esttexte, nbval, le souci c'est bien qu'on les veut par mois... et le nb.si.ens coince aussi... Mais puisque sommeprod a déjà fonctionné, rien ne l'arrête...

on peut automatiquement construire une colonne dans sommeprod, le résultat de esttexte pour chaque ligne, et, de là...

https://lufi.ethibox.fr/r/tuxwH_qunP#n2IOxV2+6YYrmvm2pGsNDJIHQrLFpQDKjDlv6gpeTyg=

Donc, si on oublie les tables dynamiques, on s'en sort mieux... si on veut bien mettre des colonnes en plus, et pérenniser notre fichier, on peut faire des tables dynamiques qu'il n'y aurait qu'à actualiser à chaque nouvelle extraction...

Bonne nuit !


Claire

Le 2023-06-04 23:15, Martine Chazelas a écrit :

Oui c'est vrai mais ce tableau n'arrête pas d'être modifié et comme il est alimenté par une extraction automatique à chaque fois que je rajoute une colonne il me faut changer le format d'extraction mais bon oui c'est faisable.
Je ne sais pas faire des sous totaux dans une table dynamique.
Je joins un fichier quasi vide mais avec quelques lignes et les colonnes qui me sont utiles. J'ai besoin d'avoir par mois le nombre d'inscrits (1) dans la colonne AI en fonction de la date inscrite dans la colonne C et toujours par mois le nombre de lignes non vides dans la colonne AJ selon la même date. En plus de la difficulté sur le total par mois j'ai du mal à compter le nombre de ligne non vides. Je crois qu'il faut utiliser la formule =".*" mais cela ne donne aucun résultat dans une formule NB.SI.ENS. Je me trompe quelque part mais je ne vois pas.
=NB.SI.ENS($'liste_entretiens'.AJ$2:$'liste_entretiens'.AJ$1000;"=.*";$'liste_entretiens'.C$2:$'liste_entretiens'.C$1000;">=1/09/2021";$'liste_entretiens'.C$2:$'liste_entretiens'.C$1000;"<=30/09/2021")
merci d'avance
Martine

J'ai lié un fichier à ce message :

  * test_.ods
    <https://cloud.retzien.fr/index.php/s/KjJqY6CYcak3PzA/download>
    Taille : 23,8 Ko
    Service Filelink : *cloud
    Lien :
    https://cloud.retzien.fr/index.php/s/KjJqY6CYcak3PzA/download
    <https://cloud.retzien.fr/index.php/s/KjJqY6CYcak3PzA/download>


Le 04/06/2023 à 21:23, Ocleyr2lalune a écrit :
Bonjour Martine
Ce n'est pas une colonne de plus qui changera grand chose si tu en as déjà une trentaine. De toute façon tu manipules ça avec une table dynamique...

Un sous total dans la table dynamique tu as essayé ? (La colonne supplémentaire c'est pour simple).

Sinon un extrait de ton fichier ça aiderait à tester si tu peux...

Bonne soirée

/Claire/
Le 4 juin 2023, à 19:43, Martine Chazelas <martine.chazelas@free.fr <mailto:martine.chazelas@free.fr>> a écrit:

    Oui j'y ai pensé mais si je peux éviter de rajouter une colonne ce
    serait mieux car c'est un fichier avec beaucoup de colonnes et le
    fichier n'est pas simple à manipuler.
    Mais ce sera peut-être la solution que j'utiliserais si pas de solutions
    via une table dynamique sans modifier le fichier ou alors j'utiliserais
    les fonctions NB.SI ou somme.NB.SI sans passer par une table dynamique.
    Martine

    Le 04/06/2023 à 19:15,prog.amateur@free.fr  <mailto:prog.amateur@free.fr>  a écrit :

        Bonjour, Si tu peux changer la structure du fichier, tu
        pourrais rajouter une colonne calculée avec le mois et faire
        ta table dynamique sur cette colonne. Claude Le 04/06/2023 à
        19:06, Martine Chazelas a écrit :

            Bonjour, J'ai un tableau comportant plusieurs colonnes
            et beaucoup de lignes. Ce tableau est mis à jour
            régulièrement par ajout de lignes et je produis à chaque
            mise à jour un certain nombre de stats utilisant des
            table dynamiques. Cela fonctionne très bien. Je bute sur
            une table dynamique que je n'arrive pas à produire. J'ai
            une colonne comportant une date (colonne C par ex) et je
            voudrais compter le nombre de lignes qui contiennent du
            texte dans une autre colonne (colonne AJ par ex) avec
            les données regroupées par mois et non pas date par
            date. Ex j'ai ajouté 10 lignes pour le mois de juin 2021
            aux dates suivantes  3/06/2021, 10/06/2021,
            27/06/2021,... je voudrais que ma table dynamique ne me
            donne pas le nombre par jour mais par mois c'est à dire
            en juin 2021 10, en sept 2022 6, etc Je ne voudrais pas
            changer le paramétrage de ma date car pour d'autres stat
            j'ai besoin de ce format de date. Je n'ai pas trouvé. La
            seule chose trouvée est de rajouter un filtre à la table
            et je peux une fois la table créée, trier sur une
            période mais cela ne produit pas un tableau complet du
            nombre de lignes entrées par mois de 2021 à 2023 par ex.
            Merci d'avance si vous avez une piste Martine Chazelas


--

*En recherche d'emploi, ne restez pas seuls*
Solidarités Nouvelles face au chômage
https://snc.asso.fr/snc-nantes <https://snc.asso.fr/snc-nantes>
tel 06 18 24 39 40
n'hésitez à diffuser ce message à toute personne en recherche d'emploi autour de vous



--

*En recherche d'emploi, ne restez pas seuls*
Solidarités Nouvelles face au chômage
https://snc.asso.fr/snc-nantes
tel 06 18 24 39 40
n'hésitez à diffuser ce message à toute personne en recherche d'emploi autour de vous

--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour vous désinscrire
Les archives de la liste sont disponibles à https://listarchives.libreoffice.org/fr/users/
Privacy Policy: https://www.documentfoundation.org/privacy

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.