Forum Discussion

PatrickatBengs's avatar
PatrickatBengs
New Member
1 year ago
Solved

Problem with types on ExpandTableColumn function

Hi,

 

I have an issue when expanding columns from a set of tables in Power Query.

 

Using a "source" folder containing several excel files with identical columns and in order to consolidate them, I follow the following steps:

  1. remove the 4-lines header on each file (function "Transformer le fichier"); line 4 only contains the lowest 
  2. keep only the source.name column (which results in #"Autres colonnes supprimées1")
  3. use the ExpandTableColumn function as follows: "= Table.ExpandTableColumn(#"Autres colonnes supprimées1", "Transformer le fichier", Table.ColumnNames(#"Transformer le fichier"(#"Exemple de fichier")))"
  4. I get the message "Sorry... We couldn't convert a value type Table into type Binary" with details:
    Value=[Table]
    Type=[Type]

 

Based on several posts on the same subject, I've changed the ExpantTableColumn to

"=Table.ExpandTableColumn(#"Autres colonnes supprimées1", "Transformer le fichier", Record.FieldValues(Table.First(Table.Skip(Table.First(Excel.Workbook(List.First(Table.Column(#"Exemple de fichier", "Content"))))[Data], 3))))"

 

But I still get an error message: "The field "Invoicing Plan" already exists in the record". For full understanding, the original excel files do have 2 columns named "invoicing plan" referring to different points in time for tthe line item.

 

Any idea on how to consolidate those files into one (adding as first column the name of the original file) without error?

 

Thanks in advance to anyone identifying what I did wrong

  • slorin's avatar
    slorin
    1 year ago

    Bonjour Patrick

    A mon sens, il faut faire le maximum de modifications dans la fonction et regrouper les fichiers source le plus tard possible. mais je comprends que ce n'est pas toujours possible de remettre à plat l'existant
    Je commencerai par réduire le nombre de fichier pour voir ceux qui passent et ceux qui ne passent pas.

    et je regarderai dans le détail les modifications intervenues depuis juillet dans ces fichiers Excel (nom de l'onglet, structure de l'onglet "Etat locatif", ...)

     

    Sinon, sans exemple de source pour les analyser il est compliqué d'apporter plus d'aide.

     

    Stéphane

5 Replies

  • Patrick

    C'est dans cette fonction qu'il faut ajouter des étapes pour gérer le conflit de nom de colonnes (en conservant la ligne 3 qui contient a priori ces noms en double).
    Ensuite, dans le regroupement de vos fichiers, l'étape Table.ExpandTableColumn(#"Autres colonnes supprimées1", "Transformer le fichier", Table.ColumnNames(#"Transformer le fichier"(#"Exemple de fichier"))) sera automatique sans avoir besoin d'ajouter Record.FieldValues(Table.First(Table.Skip(Table.First(Excel.Workbook(List.First...

     

    Stéphane

  • Bonjour  PatrickatBengs 

     

    est-ce que vous gérez le conflit de nom « plan de facturation » en double dans votre fonction ""Transformer le fichier"" ?

     

    Stéphane

    • PatrickatBengs's avatar
      PatrickatBengs
      New Member

      Bonjour Stéphane,

       

      Non ce conflit n'est pas géré dans la fonction : ce n'est que plus tard, après l'étape de ExpandTableColumn, que les colonnes sont nommées (ce qui explique la suppresssion de 4 lignes d'entête plutôt que 3).

       

      Pour information, je débuggue un PowerBI conçu par un collègue qui a quitté la structure mais ne peux me livrer à un réengineering complet car l'outil fonctionnait jusqu'à juillet 2024).

       

      Patrick

      • slorin's avatar
        slorin
        Super User

        Bonjour Patrick

        A mon sens, il faut faire le maximum de modifications dans la fonction et regrouper les fichiers source le plus tard possible. mais je comprends que ce n'est pas toujours possible de remettre à plat l'existant
        Je commencerai par réduire le nombre de fichier pour voir ceux qui passent et ceux qui ne passent pas.

        et je regarderai dans le détail les modifications intervenues depuis juillet dans ces fichiers Excel (nom de l'onglet, structure de l'onglet "Etat locatif", ...)

         

        Sinon, sans exemple de source pour les analyser il est compliqué d'apporter plus d'aide.

         

        Stéphane

  • Bonjour slorin 

     

    Ma fonction se comporte ainsi :

    = (Paramètre1 as binary) => let
    Source = Excel.Workbook(Paramètre1, null, true),
    #"Etat locatif_Sheet" = Source{[Item="Etat locatif",Kind="Sheet"]}[Data],
    #"Premières lignes supprimées" = Table.Skip(#"Etat locatif_Sheet",4)
    in
    #"Premières lignes supprimées"

     

    Or le conflit est présent en ligne 4 (une des 4 lignes d'entête qui est supprimée).

     

    Patrick