Contact: 514-605-7112 / info@lecfomasque.com
Contact: 514-605-7112 / info@lecfomasque.com

Toutes mes réponses sur les forums

15 sujets de 1 à 15 (sur un total de 27)
  • Auteur
    Articles
  • en réponse à : Agrégation automatique de colonne #71163
    philippe.muniesa
    Participant

    Merci,

    Mon but est de fournir un tableau Excel permettant de contrôler la cohérence des données comptables.

    Les données ne sont pas évolutives, et il est clair qu une fois le tableau construit, il ne doit pas y avoir de mises à jour, car comme vous dites, le tableau sera reconstruit.

    Merci

    Cordialement

    PH Muniesa

    en réponse à : Agrégation automatique de colonne #71093
    philippe.muniesa
    Participant

    Suite du message précédent. Avec mes excuses un Enter intempestif. Je recommence.

    re-bonsoir,

    J’ai besoin de créer un tableau dans excel qui est construit comme un TCD, mais dans PQ et dont le résultat est un simple tableau excel dans lequel les utilisateurs pourront créer des colonnes personnalisée, ce que ne permet pas le TCD.

    ce serait simple si les colonnes à agréger étaient toujours les mêmes, mais il s’agit d’écritures comptable (ventes). Chaque compte utilisé (compris dans la colonne CompteNum) donne lieu à la création d’une colonne avec la fonction basculer..

    Par la suite, il faut agréger ces colonnes en fonction du numéro de pièce colonne PieceREF.

    Comme le nombre de comptes et les numéros de compte sont variables d’une entreprise à une autre ou d’une période à l’autre, il faut que l’agrégation des colonnes soit dynamique.

    J’ai donc généré la liste des colonnes à agréger, mais la fonction Table.Group me pose des problèmes.

    Si un sachant peu m’aider à avancer, je joins un fichier excel avec, un extrait de la table d’origine, le résultat que je souhaite obtenir, et mes requêtes dans l’état actuel d’avancement. La requête Output, est celle qui coince avec une erreur sur table.goupe dont j’ai adapté la syntaxe à partir de mes recherches, mais visiblement, ça ne va pas

    Merci d’avance

    Philippe Muniesa

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Référence à étape de requête dans une autre requête #71090
    philippe.muniesa
    Participant

    Re-Bonsoir,

    Je planche sur un autre problème, je cherche à obtenir ce que fait un tableau croisé dynamique, mais sous la forme d’un simple tableau Excel, car ce tableau pourra être agrémenté de colonne que l’utilisateur pourra personnaliser et utiliser dans EXCEL,. ce que ne permet pas un TCD

    Le problème est qu’il s’agit d’une base comptable, et que les colonnes agrégées devront correspondre aux numéros de compte utilisés dans la colonne CompteNum de cette base, le nombre de ces numéros de compte étant variable d’un cas à l’autre, cette agrégation doit être dynamique.

    J’ai commencé par basculer la colonne des numéro des compte en indiquant la colonne montant comme colonne des valeurs. Mais je coince au niveau de l’agrégation. L’agrégation doit être faite sur la base de la colonne PeiceRef.

    Je pensais m’en sortir avec Table.Agregate.TableColumn ,mais visiblement, soit j’utilise mal la fonction, soit elle n’est pas adaptée.

    Ci-joint un fichier excel avec base de départ, le résultat souhaité, et les requêtes dans l’état actuel de mes réflexions.
    J’ai pu créer la liste des colonnes à agréger, en créant une liste , mais pour la suite j’aurais besoin d’un coup de pouce.

    Merci aux sachants pour leur aide précieuse.

    Cordialement

    Ph Muniesa

    Attachments:
    You must be logged in to view attached files.
    en réponse à : Référence à étape de requête dans une autre requête #71088
    philippe.muniesa
    Participant

    Sophie,

    Merci de cette réponse.
    Ce que j’envisageais n’est donc pas possible, je garde donc ma méthode actuelle qui fonctionne.

    Cordialement

    PH MUNIESA

    en réponse à : If then. … ajouter colonne personnalisée #68148
    philippe.muniesa
    Participant

    Merci,

    Je suis arrivé à faire ce que je voulais, pour ceux que ça pourrait intéresser, je vous joins mon fichier Excel contenant le code Langage M, et le fichier texte d’origine.

    Le chemin du fichier Texte est paramétrable dans la feuille Excel « paramètres »

    Maintenant j’ai un second problème que je ne vois pas comment résoudre.

    Les fichiers texte peuvent utiliser deux séparateurs au choix, soit tab (tabulation) , soit | (alt+M).

    Je souhaiterais reconnaitre le séparateur utilisé avant de faire le split

    L’idée serait de lire le fichier sans délimiteur, et de tester si il contient des | , puis de faire un drillDown et d’utiliser ce paramètre dans la requête de split.

    J’ai cherché dans Table.FindText ou d’autres instructions, mais je coince.

    Une âme charitable pourrait-elle me donner un tuyau.

    Merci d’avance.

    Philippe Muniesa

    Attachments:
    You must be logged in to view attached files.
    en réponse à : DATESMTD équivlalent DatesYTDmaison #64681
    philippe.muniesa
    Participant

    Sophie,

    Merci de votre intérêt à ces questions de débutant, mais je pense avoir mal posé ma question.

    La mesure ci-après issue du cours donne sur chaque ligne le total correspondant à l’expression Ventes_$ évaluée selon le contexte de filtre explicite. Par ailleurs, dans le tableau croisé dynamique en résultant (excel 2019) de la colonne correspondante, on obtient le total 6944170 qui correspond au total de l’année 2014 pour Ventes_$ de 2014

    Ventes$YTDMaison:=CALCULATE([Ventes_$];
    FILTER(
    ALL(DimDates[Date]);
    DimDates[Date]>= DATE(MAX(DimDates[Année]);1;1)
    && DimDates[Date]<=MAX(DimDates[Date])))

    La Mesure suivante adaptée de la première en utilisant DATE(MAX(DimDates[Année]);MAX(DimDates[mois]);1) au lieu de DATE(MAX(DimDates[Année]);1;1), fait apparaitre sur chaque ligne le cumul de ventes mensuel correspondant bien au filtre explicite. Cependant le total de la colonne du tableau croisé dynamique dans lequel cette mesure est utilisé est à 0. C’EST CE QUE JE NE COMPRENDS PAS puisque en toute logique, si la première mesure produit une colonne dont le total est celui de l’année 2014 (l année de la dernière vente de la table VENTES); la seconde mesure devrait produire une colonne dont le total devrait être le montant des ventes du dernier mois de la table des ventes, soit 06/2014 1089940.

    Ventes_$MTDMaison2:=CALCULATE([Ventes_$];
    FILTER(
    ALL(DimDates);
    AND(DimDates[Date]>= DATE(MAX(DimDates[Année]);MAX(DimDates[mois]);1);
    DimDates[Date]<=MAX(DimDates[Date]))
    )
    )

    Et ceci comme la mesure Ventes_$MTD:=CALCULATE([Ventes_$];DATESMTD(DimDates[Date])) dont la colonne présente bien le total 1089940.

    Sans titre 3.png.png

    Dans le même esprit, et toujours dans l’objectif de comprendre le fonctionnement des formules Timeintelligence et de DAX, j’ai construit la mesure ci-dessous (maxx et Startofmonth).

    Ventes_$MTD_Maison:=Calculate([Ventes_$];
    Filter(All(DimDates[Date]);And(DimDates[date]>= maxx(Dimdates;STARTOFMONTH(Dimdates[Date]));
    DimDates[Date]<=maxx(Dimdates;Dimdates[Date]))))

    Dont la colonne fait apparaitre un total identique à la mesure Ventes_$MTD, soit 1089940

    Enfin une autre mesure censés pour moi avoir les mêmes effets, produit également une colonne sans total.

    Ventes$MTD_Maison4:=CALCULATE([Ventes_$];
    FILTER(
    ALL(DimDates);
    (DimDates[Année]=MAX(DimDates[Année])
    && DimDates[Mois]=MAX(DimDates[Mois])
    && DimDates[Date]<=MAX(DimDates[Date]))))

    Vous l’aurez compris, ce qui m’échappe c’est les conditions pour lesquelles, le total général de colonne est renseigné d’un total ou pas.

    Merci à vous

    Cordialement

    Philippe Muniesa

    Attachments:
    You must be logged in to view attached files.
    en réponse à : DATESMTD équivlalent DatesYTDmaison #64618
    philippe.muniesa
    Participant

    Ok Sophie, merci

    Effectivement après vérification et utilisation de la mesure, elle fonctionne correctement.

    En fait, en tant que mesure, elle retourne (vide) et c’est ce qui m’a fait penser qu’elle ne fonctionnait pas, mais placée dans un TCD ELLE EST OK.

    CE que je ne comprends pas c est que la mesure initiale avec Max(dimdates[annees]) seulement retourne un total en bas de colonne, et que la formule avec [annees] et [mois], mais identique par ailleurs, retourne un total de colonne.

    Il y a deux années dans la table et douze mois pour chaque année, donc des conditions similaires.

    Y a t il une raison spécifique que je ne vois pas à cette différence de fonctionnement au niveau des totaux de colonne?.

    Merci d’avance

    Philippe

    en réponse à : Table test dans power Pivot (excel) #64298
    philippe.muniesa
    Participant

    Ok

    C’est fait

    Merci

    Philippe

    en réponse à : Déplacement colonne par numéro #64240
    philippe.muniesa
    Participant

    Stéphane,

    Merci pour Ces techniques qui permettent de s’affranchir des noms de colonne, et des casses tête que ça pose quand le nombre de colonnes ou leur nom est modifié dans une procédure.

    Cordialement

    Philippe Muniesa

    en réponse à : Déplacement colonne par numéro #64083
    philippe.muniesa
    Participant

    Merci,

    Je vais essayer votre solution, mais j’imaginais une solution où l’on ne fait pas référence aux noms des colonnes, mais à leur rang dans la liste des colonnes

    Tout simplement en indiquant Table.DeplaceColumns(5,1) ou quelque chose de similaire.(malheureusement cette instruction ne semble pas exister).

    Ce qui m ennuie avec table.Reorder, c’est qu’il faut lister tous les noms des colonnes présentes dans la table.

    Cordialement

    Philippe Muniesa

    en réponse à : Utilisation du # ou dans les listes #63521
    philippe.muniesa
    Participant

    Bonjour,

    Je me réponds à moi-même,car je viens d’avoir la réponse en reprenant le détail de la formation Power Query et initiation au langage M.

    C’est une convention du langage M qui stipule que lorsque le nom d’une étape ou d’une colonne contient un espace, la référence à ce non doit être encadré de guillemets  »  » (comme dans beaucoup de langages ou formule), mais il doit aussi être précédé d’un #.

    dont j’en conclus que pour la simplicité, il faut éviter les espaces et préférer des noms de colonne ou des noms d’étapes sans espace, en remplaçant par exemple par — « underscore »

    ainsi il suffira de faire référence au nom de colonne ou d’étape, sans avoir à utilise le # et entourer ce nom de «  »

    bon courage à tous.

    Philippe

    en réponse à : Type de cellule, null "" , 0 rien #63422
    philippe.muniesa
    Participant

    Stéphane et Sophie,

    Merci à vous deux.

    Tip Top ces fonctions qui permettent d’éviter des modifications de table (remplacement de null par 0 ou par (rien)),
    Maintenant que null soit considéré comme 1 avec List.Product et qu’il ne puisse tout simplement être considéré comme un champ vide (puisque par ailleurs Vide = 0 ou rien) me laisse toujours aussi perplexe.

    Dans Excel une cellule vide = 0 ou rien, elle peut être utilisée en tant que tel dans des opérations arithmétiques ou dans des concaténations. Le remplissage automatique des cellules vides dans Excel fonctionne à peu près comme remplir vers .. avec les champs null.

    Bon, il suffit de le savoir, mais microsoft pourrait avoir la bonne idée d’harmoniser les principes de base entre Power Query et Excel.

    Cordialement

    Philippe

    en réponse à : Type de cellule, null "" , 0 rien #63351
    philippe.muniesa
    Participant

    Stéphane,

    Super, merci pour le tuyau,

    J’essaie ça dans la journée.

    Philippe

    en réponse à : Calculate avec Countrows et Earlier #60345
    philippe.muniesa
    Participant

    Sophie,

    J’ai bien compris que Dax était complexe et ne pouvait s’acquérir sans efforts.
    C’est la raison pour laquelle je suis sur le sujet depuis plusieurs jours et que j’essaie de décortiquer les formules. Que je cherche des alternatives pour comprendre toute la subtilité du langage et de ses possibilités.

    Mais du fait de cette complexité, et malgré une bonne maîtrise d’excel, mais aussi de vba et d’autres langages, en tant que débutant en Dax, je bute sur des difficultés qui peuvent vous paraître stupides, mais qui m’interpellent.

    Comme votre réponse m’éclaire pas vraiment je vais reprendre la partie du cours dédiée à calculate pour essayer de mieux comprendre ce qui se passe et surtout dans quel conditions il convient d’utiliser calculate.

    En tout cas ne vous méprenez pas, je consacrerais tout le temps qu’il faudra pour comprendre et maîtriser convenablement le sujet.

    Cordialement

    PH Muniesa

    en réponse à : problème avec Earlier DAX dans powerPivot excel #60338
    philippe.muniesa
    Participant

    Sophie,

    Merci, je n’avais pas lu l’énoncé de façon suffisamment précise… :-(.
    En tout cas ça m’aura permis de comprendre une chose de plus (si j’ai bien compris).

    Une mesure peut adresser des éléments de différentes colonnes positionnées sur la même ligne, mais ne peut adresser des éléments situés sur des lignes différentes d’une même colonne (et sans doute d’ailleurs de colonnes différentes).

    Bon je vais continuer cette excellente formation.

    Cordialement.

    PH MUNIESA

15 sujets de 1 à 15 (sur un total de 27)