PB REF & bascule formules Excel en langage M Power Query

Accueil – Le CFO masqué Forums Excel PB REF & bascule formules Excel en langage M Power Query

  • Ce sujet contient 9 réponses, 4 participants et a été mis à jour pour la dernière fois par anne.leschallier, le il y a 1 semaine et 4 jours.
10 sujets de 1 à 10 (sur un total de 10)
  • Auteur
    Articles
  • #122125
    anne.leschallier
    Participant

    Bonjour,
    Cela fait plusieurs fois que je visite le site du CFO masqué et je vous remercie de l’avoir créé, j’ai appris déjà beaucoup de choses et cela est loin d’être fini. Merci pour ça!
    Sans raconter ma vie on peut dire que je bricole et rafistole en excel.
    Je commence à utiliser Power Query.
    J’ai créé un fichier Excel dans lequel je connecte deux sources de données via Power Query (excel, et fichiers d’un répertoire), afin de les comparer (en clair: est ce que ma liste de photos sur excel correspond aux photos de mon répertoire).
    Comme je bricole, j’ai réussi à faire quelques manipulations dans Power Query au préalable, et les requêtes une fois chargées dans leurs onglets respectifs, j’ajoute des colonnes intermédiaires pour appliquer des formules simples.
    Je rencontre un problème REF au changement de source, alors que je n’ai pas touché à la requête autrement (j’appelle la même colonne renommée) donc je ne comprends pas pourquoi il ne le reconnaît pas.
    J’ai ajouté des colonnes dans Excel pour pallier à ma méconnaissance de Power Query: des formules recherchev, concatener, et si imbriqués => ce n’est pas un problème en soi, mais je ne suis pas sûre que cela soit possible à faire dans Power Query.
    J’aimerai vous joindre le fichier mais celui ci est déjà très lourd (6 Mo) (une idée pour le réduire?)

    Merci pour votre retour,

    Bien à vous

    Anne

    #122127
    Éric Ste-Croix
    Participant

    Bonjour,

    Une suggestion pour reduire la taille de votre fichier Excel,
    tenter de l’enregistrez en format binaire (.xlsb).
    Dans Enregistrer sous / Type = Classeur Excel Binaire

    Cordialement

    #122128
    anne.leschallier
    Participant

    Merci pour le tip, ça réduit de 7 à 4 Mo, c’est déjà une belle perf!

    #122147
    Martin Turmel
    Participant

    Bonjour,
    sans fichier il est difficile de bien répondre mais pour ce commentaire :
    “J’ai ajouté des colonnes dans Excel pour pallier à ma méconnaissance de Power Query: des formules recherchev, concatener, et si imbriqués”
    Ce sont des actions assez facile à compléter via Power Query:
    -Un recherche V sera remplacé par une fusion de requête
    -un concatener par une fusion de colonne
    -Pour les si imbriqués il faut bricoler souvent une colonne conditionnelle.

    Cordialement

    #122209
    anne.leschallier
    Participant

    Bonsoir,
    La concaténation: parfait (post trouvé sur le CFO masqué)
    La recherche V: pas encore testé mais vu la fusion de requêtes: si je me base sur la colonne de chaque requête effectivement ça devrait aller
    – vu une formule de SI imbriqués, à tester également cela n’a pas l’air effectivement très compliqué

    Par contre, chose que je n’ai pas indiqué – et trouvé une partie de la solution sur le CFO masqué (encore! :))
    J’avais besoin aussi de faire une création d’index incrémenté par ID: J’ai trouvé ce post très clair et efficace de Sophie Marchand (merci!)

    En réponse à une question sur notre forum: Créer une liste d’identifiants incrémentés à chaque changement de date


    Le problème c'est qu'en groupant cela supprime toutes les autre colonnes que je souhaitais garder et pour lesquelles je voulais incrémenter cet index (des noms de fichiers, le groupement s'effectuant sur le dossier de ces fichiers - je simplifie)
    Or j'aurai voulu ajouter un numéro à ces fichiers, incrémenté.

    Exemple: fichier Paul, fichier Pierre dans dossier A => le regroupement m'a permis de faire une colonne avec les valeurs A_1 et A_2 (concaténation colonne nom dossier et incrémentation, après groupement), mais je n'ai plus la colonne avec les noms de fichiers.
    J'aurai besoin de conserver cette information.

    Pour contextualiser j'ai une base access de laquelle j'extrais sous excel une table avec deux colonnes d'identifiants (un numéro auto, et un identifiant saisi manuellement -oui je sais-) et une colonne de l'orientation de la photo. Je n'ai pas le nom de la photo (argh)

    et de l'autre j'ai un répertoire de photos portant seulement des noms commençant par cet identifiant manuel_numéro de photo.

    Les photos ayant été saisies dans l'ordre dans la base (à priori), et les noms des photos étant incrémentés par défaut, je dois associer l'orientation à la bonne photo. Pour ceci je créé des incrémentations des deux côtés pour ensuite faire une recherchev et comparer ce qui matche ou manque de chaque côté) - en base, ou dans le répertoire.

    Description longue mais je pense que c'est toujours intéressant d'avoir un peu de contexte.

    Merci à vous!

    #122210
    anne.leschallier
    Participant

    j’essaie également de faire une formule simple de si pour remplir une colonne mais visiblement ça bloque:
    if colonne A est null, mais colonne B sinon mais colonne A

    Merci encore

    #122211
    Stéphane Lorin
    Participant

    Bonjour

    Vous pouvez utiliser
    = if [A] = null then [B] else [A]

    mais je préfère ?? coalescence

    = [A] ?? [B]

    voir des explications en anglais
    https://gorilla.bi/power-query/coalesce/

    Stéphane

    #122284
    anne.leschallier
    Participant

    Merci Stéphane j’ai testé les deux cela fonctionne très bien et j’ai été voir (et enregistrer) la page fournie en lien: merci beaucoup!

    Une idée pour créer un index par ID sur Power BI?
    Dans l’idée j’aurai besoin d’extraire les 8 premiers caractères d’une colonne (qui constitue l’ID), et ensuite de lui associer un numéro pour fournir un ordre.
    Je fais également cela dans une autre requête et ensuite je fusionnerai les deux pour remplacer une recherchev 🙂

    Merci!

    #122308
    Stéphane Lorin
    Participant

    Bonjour

    le plus simple est d’ajouter une colonne “Clé” avec ces 8 premiers caractères
    de regrouper sur cette nouvelle colonne en ajoutant un index

    du style
    = Table.Group(Etape_précédente, {“Clé”}, {{“Données”, each Table.AddIndexColumn(_,”Index”,1)}})

    puis de développer l’ensemble.

    Stéphane

    #122418
    anne.leschallier
    Participant

    ça fonctionne à merveille! merci beaucoup, j’ai appris beaucoup de choses!

10 sujets de 1 à 10 (sur un total de 10)
  • Vous devez être connecté pour répondre à ce sujet.