Microsoft 365 TCD : impossible conserver mise en forme étiquette lignes après actualisation TCD

bencheuch

XLDnaute Nouveau
Bonjour à tous,

J'utilise Office 365.
J'ai un problème sur un TCD que je n'arrive pas à résoudre, malgré de nombreuses recherches sur Google. Pour mon entreprise, je dois créer une statistique qui mélange des données au mois et à l'année, que je vais requêter en SQL. Je ne peux pas utiliser les valeurs de TCD pour présenter mes résultats sinon j'obtiens des sommes non voulues et cela fausse mes calculs : j'utilise donc uniquement des champs en lignes.

Jusque là tout va bien mais la seule chose que je n'arrive pas à faire c'est appliquer aux champs en lignes un format de Cellule (Monétaire ou Pourcentage) qui persiste après actualisation du TCD. J'ai bien coché "Conserver la mise en forme lors de la mise à jour" et décoché "Ajuster automatiquement la largeur des colonnes lors de la mise à jour", mais la mise en forme ne persiste pas après actualisation.
De plus si je clique sur le triangle noir du champs en lignes, le bouton "Format de Nombre" n'est pas disponible, alors qu'il l'est pour les champs en valeurs (c'est logique je suis d'accord).

A noter que j'ai essayé en utilisant des champs en valeur et cela fonctionne correctement : la mise en forme persiste.

Existe-t-il une solution à mon problème ?


Je joins un petit fichier test avec 2 TCD :
  • 1 en lignes : la conservation de la mise en forme ne fonctionne pas
  • 1 en valeurs : la conservation de la mise en forme fonctionne


Tant que j'en suis à parler de TCD j'en profite aussi pour poser une question que je me pose depuis longtemps : pourquoi Excel rajoute-t-il systématiquement une valeur à "vide" quand je créé un TCD ?

Merci d'avance pour vos réponses.
 

Pièces jointes

  • 221101-FICHIER_TEST_MEF_TCD.xlsx
    16.4 KB · Affichages: 6
Dernière édition:

chris

XLDnaute Barbatruc
Bonjour

Un TCD ne doit jamais être construit sur des colonnes entières mais sur un tableau structuré : c'est la raison pour laquelle tu as des vides (il y a valeurs mai 1 million de vides)

Un TCD sans calcul n'est pas un véritable TCD ce qui explique ton problème sur TCD LIGNES

Les mises en forme conservées sont celles appliquées aux champs du TCD.
Celles appliquées aux cellules situées sous le TCD, ne faisant pas partie du TCD, le sont de façon aléatoire.

Je ne peux pas utiliser les valeurs de TCD pour présenter mes résultats sinon j'obtiens des sommes non voulues et cela fausse mes calculs

Tu ne pourras de toute façon pas utiliser correctement des données en étiquettes de lignes pour des calculs

Il faudrait avoir une vision plus détaillée de ce que tu cherches à faire.

Là on n'a pas assez de billes pour te donner une piste concrète

Il faut probablement préparer les données en amont ou utiliser PowerPivot pour le TCD.
 
Dernière édition:

bencheuch

XLDnaute Nouveau
Bonjour chris et merci pour ta réponse,

en fait j'ai simplement besoin de pouvoir présenter des données issues de ma requête SQL et de permettre à mon patron de jouer avec les filtres, ajouter des chronologies. Je sais que je détourne son usage premier mais je n'ai pas trouvé d'alternatives.

En gros j'utilise un TCD sous forme Tabulaire, avec uniquement des étiquettes de lignes car tous les calculs sont fait en amont en base de données, et utiliser les étiquettes Valeurs comme Somme ou Nombre donnerait un résultat faux.
J'ai simplement besoin de présenter "proprement" les données, c'est à dire 3 types différents de formats de cellule : Texte, Monétaire €, Pourcentage %, et je cherchais désespérément à le faire sans l'aide du VBA (j'ai des mauvais souvenirs avec l'éditeur :p )
 

chris

XLDnaute Barbatruc
RE

Alors pourquoi utiliser un TCD ? Ce n'est pas sa vocation qui est le calcul statistique...

Là tu reproduis très exactement le tableau source : quel intérêt ?

Cela donne l'impression d'utiliser un tournevis pour enfoncer un clou

PowerQuery serait plus adapté à mon avis.
D'autant que PowerQuery peut directement récupérer les données SQL et les mettre en forme.
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Bonjour à toute et tous
Je plussoie les réponses déjàs données.

Heu...
Un exemple représentatif et anonyme est demandé. Le côté anonyme je ne dits pas, mais représentatif....
Les données présentes dans l'exemple;
1667318546012.png

Les demandes

ajouter des chronologies
un format de Cellule (Monétaire ou Pourcentage)

Mes questions :
Où sont les dates ?
Ou sont les données Monétaire ou Pourcentage ?
Si le calcul de pourcentage M-1 M doit être fait ou est le test dans l'exemple ?

Enfin bref encore une demande sans queue ni tête.

Cordialement
 

bencheuch

XLDnaute Nouveau
Bonjour et merci pour vos réponses,

je m'aperçois en effet que les informations fournies ne vous permettaient pas d'avoir une vision d'ensemble de mon problème : je pensais simplement que si mon problème de conservation du format de cellules sur les étiquettes de lignes du TCD s'applique à un type de champ, alors ça sera la même chose pour l'ensemble des champs.
C'est la raison pour laquelle j'ai simplement fourni un mini jeu de données.

En outre, je tiens à vous présenter mes excuses si j'ai offensé qui que ce soit, ce n'est surtout pas mon intention. Je ne pensais également pas que poster ma question sur un autre forum serait un problème. Je ne me rends pas régulièrement du tout sur lesdits forums et je ne sais pas s'ils sont fréquentés ou non, je voulais simplement augmenter mes chances de réponse. Je vous prie donc de bien vouloir m'excuser si j'ai causé du tort, d'autant que je suis reconnaissant pour quiconque passe un peu de temps sur mes problématiques.

Cela étant, si jamais la discussion se poursuit quand même, je joins un fichier de données plus complet cette fois-ci, qui illustrera mieux la réalité de ma demande.
Je réalise que j'aurais du exposer exactement ce que je comptais faire et donc voici mon cheminement :

Je dois présenter des statistiques pour chaque Client avec
Une ligne par mois de chaque chaque année, et sur chaque ligne
  • le CA MENSUEL
  • le CA MENSUEL N-1
  • l'écart entre les deux en %
  • le CA par catalogue
  • le CA par catalogue N-1
  • l'écart entre les deux en %

Je dois faire figurer impérativement une ligne pour chaque mois pour chaque client même si ce dernier n'a pas généré de CA : c'est la raison pour laquelle il peut y avoir des cases vides.
Tous les calculs sont effectués en amont en Base de données (différence en valeur, différence en %).
Une des spécificités de notre activité et que nous raisonnons en catalogue et non en année civile, ce qui explique pourquoi je crée des champs ANNEE + MOIS qui ne sont pas des dates : ils me servent à faire le lien pour les CA mensuels et les CA par catalogue.


En fait je parle de TCD parce que c'est ce que nous utilisions jusque là : j'effectuais des requêtes SQL qui me renvoyaient une ligne par ligne de facture. En les mettant dans des TCD nous arrivions à avoir ce que nous voulions. Le problème c'est qu'avec ce fonctionnement je ne peux pas mélanger les données mensuelles et les données par catalogue, et qu'en plus ça génère rapidement des très gros fichiers.
Je ne sais pas s'il existe de meilleures alternatives pour présenter les données sous cette forme, et permettre de jouer avec les dates en appliquant une chronologie. J'ai d'ailleurs un peu triché pour générer la date : je l'ai générée en SQL au 1er du mois en tenant compte du mois et de l'année de la ligne.

En suivant vos indications j'ai regardé brièvement Power Query : cela me permet en effet de pré-formater les colonnes mais cela s'applique uniquement au champs de valeurs (sauf erreur de ma part bien sûr) et cela ne règle donc pas le problème.


J'espère avoir été suffisamment clair et exhaustif cette fois-ci et je tiens une fois de plus à m'excuser si mon comportement n'a pas été respectueux à vos yeux.
Merci à tous,
 

Pièces jointes

  • 221102-TEST_MEF_TCD.xlsx
    61.9 KB · Affichages: 6

chris

XLDnaute Barbatruc
Bonjour

Je vois que tu reste scotché à l'idée d'un pseudo TCD qui n'a, comme déjà dit, aucun intérêt

Sa seule vocation pour toi ici est une chronologie qui peut être aisément remplacée dans un tableau structuré par un segment.

Le rôle de PowerQuery n'est pas la mise en forme préalable à un TCD mais la possibilité de croiser.

Ceci me parait plus logique
1667377462887.png
 

merinos

XLDnaute Accro
Bonjour @bencheuch ,

Je regarde tes données...

Elles sont mal struturées. Pour un client j'ai analysé toutes ses transactions sur 5 ans... 22 millions de lignes.
Si tu veux pouvoir faire ce que tu veux, tu dois cxommencer au niveau des transactions. Et les lier a des tables de descriptions. description produits, revendeur, calendrier, ...

Exemple de probleme: Tu importes des données de type mois precedant, chiffre d'affaire total de la période,...

Mais ce type de chose doit être calculé sur les transactions.

Si CA = sum(transaction[prix de vente])

alors :
CA du mois passé : CA_LM= Calculate(CA, Parallelperiod(Calendrier[Date], -1 , "month")
CA cumulé de l'année: CA_Cumul = TotalYTD(CA, Calendrier[date])
CA cumulé l'an passé: CA_Cumul_LY= Calculate(CA_Cumul, parallelperiod(calendrier[date],-12, "month")
La croisssance... CA_Cumul/CA_Cumul_LY

Tu peux calculer le CA sur l'ensemble des clients en enlevant les filtres :
CA_tousClients= Calculate(CA, all(Clients[Code Clients]))

Et comme les filtres appliqués sur les tables restent valables, la selection sur la table "produits" reste valable.
Si j'ai selectionné les produits "bleus"

j'ai le CA (produits bleus) les CA_tousClients (produitsbleus) la croissance du client par rapport aux autres...
 

bencheuch

XLDnaute Nouveau
Bonjour à tous et merci pour vos réponses,

@merinos : j'avoue ne pas comprendre ta remarque parce que mon fichier d'exemple fait simplement 300 lignes et que notre activité a seulement 2 ans d'ancienneté sur ce modèle informatique. De plus une seule ligne par mois est rapatriée au niveau de chaque client (et non une par transaction). Peut-être as-tu confondu le fichier ? Ou peut-être que je n'ai pas bien saisi ? Merci de ton aide en tous les cas.

@chris : désolé d'avoir persisté, je ne connaissais pas du tout PowerQuery et je pense qu'en effet ta capture d'écran c'est EXACTEMENT ce que je cherche à faire. Je suis ravi de cette découverte.
Est-ce qu'il te serait possible de me donner brièvement les grandes étapes de ce que tu as fait pour en arriver à ce résultat (le type de tableau à utiliser par exemple) et/ou le fichier d'exemple que tu as généré stp ?
Je vais en effet commencer à me former sur PowerQuery si cela me permet de croiser des données parce que je suis de plus en plus amené à le faire pour les besoins de mon travail.

Merci en tous les cas beaucoup pour cette découverte parce que je ne connaissais pas du tout
 

merinos

XLDnaute Accro
re :

Ce que tu peux produire est beaucoups plus large que ce que tu envisages.

J'ai un exemple, si tu emploies les filtres inclus, tu verras l'avantage de garder plus d'info... Assembler les transactions en SQL c'est perdre beaucoups de possibilité d'analyse.

Les filtres a cocher donnent un bel apercu de possibilités... Impossible si on assemble les données.
De plus comment calculer la croissance si les données n'y sont plus?
Comment calculer la croissance des produits de luxe via revendeur, si on n'a pas gardé ces info?

Pour moi les analyses se font à la plus base couche possible. Ce qui donne le plus de liberté par la suite.

Mais bien sûr c'est juste un conseil.


Si tu dois charger trop de lignes (et excel ne peut montrer qu'un million de lignes) tu peux ne charger le resultat SQL qu'en mémoire. C'est comme cela que j'ai pu analyser 22 millions de lignes.
 

Pièces jointes

  • Exemple analyse transactions.xlsx
    950.6 KB · Affichages: 4

chris

XLDnaute Barbatruc
RE
Il y a 3 requêtes :
Période sert à extraire les mois et leur ordre dans un exercice (catalogue)
Données SQL récupère le tableau source et l'allège des colonnes inutiles
Catalogues
  • récupère les mois des différents catalogues et utilise Période pour le classement
  • croise avec Données SQL
  • dévipote les valeurs, les retitre en fonction du catalogue puis les recroise
  • renumérote les mois puis que le segment Mois soit dans l'ordre des catalogues
 

Pièces jointes

  • 221102-TEST_MEF2_PQ.xlsx
    48.2 KB · Affichages: 6
Dernière édition:

merinos

XLDnaute Accro
On peut même créer des mesures qui affichent plusieurs info dans une seule cellule

Ici je vois que, question croissance, les femmes font moins bien en mai-juin juillet que les hommes, et que leur portion est seulement de 22% en juillet.
1667398043236.png
 

Pièces jointes

  • Exemple analyse transactions.xlsx
    956.3 KB · Affichages: 5

Statistiques des forums

Discussions
311 720
Messages
2 081 900
Membres
101 834
dernier inscrit
Jeremy06510