Microsoft 365 POWERQUERY - ajouter des cellules par rapport à des colonnes

Moi69

XLDnaute Occasionnel
Bonjour le Forum,

Je suis à la recherche d'une astuce me permettant d'ajouter des lignes et d'inscrire dans la cellules des données par rapport à la ligne du dessus et d'entête de colonne.
Un schéma valant mieux qu'un long discours, je vous ai mis en PJ le fichier.
L'onglet "BASE" contient des données fait à partir de powerquerry. Et je souhaiterait avoir automatiquement ce que j'ai mis dans l'onglet "RESULTAT" (que j'ai fait manuellement pour le moment).
Je ne sais pas si j'ai été assez clair, je reste à votre écoute si vous avez beoin de précision.
Par avance merci aux personnes qui se pencheront sur mon problème.
 

Pièces jointes

  • AU_SECOUR.xlsx
    25.8 KB · Affichages: 6

Cousinhub

XLDnaute Barbatruc
Bonjour,
Avec ce code, tu devrais y arriver (sinon, tu reviens)
VB:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau2"]}[Content],
    UnPivot = Table.UnpivotOtherColumns(Source, {"TYPE"}, "Attribut", "Valeur"),
    RemplElement = Table.ReplaceValue(UnPivot,"ELEMENT","",Replacer.ReplaceText,{"Attribut"}),
    Fusion = Table.CombineColumns(RemplElement,{"TYPE", "Attribut"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Fusionné")
in
    Fusion
Bon appétit
 

Cousinhub

XLDnaute Barbatruc
Re-,
Et pour transformer en valeur numérique, insère/rajoute ces 2 lignes :
VB:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau2"]}[Content],
    UnPivot = Table.UnpivotOtherColumns(Source, {"TYPE"}, "Attribut", "Valeur"),
    RemplElement = Table.ReplaceValue(UnPivot,"ELEMENT","",Replacer.ReplaceText,{"Attribut"}),
    RemplEspace = Table.ReplaceValue(RemplElement," ","",Replacer.ReplaceText,{"Valeur"}),
    Fusion = Table.CombineColumns(RemplEspace,{"TYPE", "Attribut"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Fusionné"),
    ModType = Table.TransformColumnTypes(Fusion,{{"Valeur", Currency.Type}})
in
    ModType
 

chris

XLDnaute Barbatruc
Bonjour à tous
Une autre
VB:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau2"]}[Content],
    #"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns(Source, {"TYPE"}, "Attribut", "Valeur"),
    #"Valeur remplacée" = Table.ReplaceValue(#"Supprimer le tableau croisé dynamique des autres colonnes","ELEMENT","",Replacer.ReplaceText,{"Attribut"}),
    #"Colonnes fusionnées" = Table.CombineColumns(#"Valeur remplacée",{"TYPE", "Attribut"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"TYPE"),
    #"Type modifié" = Table.TransformColumnTypes(#"Colonnes fusionnées",{{"Valeur", Currency.Type}})
in
    #"Type modifié"

Code modifié : je n'avais pas vu le voltage
 
Dernière édition:

Moi69

XLDnaute Occasionnel
Re
Re-,
Et pour transformer en valeur numérique, insère/rajoute ces 2 lignes :
VB:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau2"]}[Content],
    UnPivot = Table.UnpivotOtherColumns(Source, {"TYPE"}, "Attribut", "Valeur"),
    RemplElement = Table.ReplaceValue(UnPivot,"ELEMENT","",Replacer.ReplaceText,{"Attribut"}),
    RemplEspace = Table.ReplaceValue(RemplElement," ","",Replacer.ReplaceText,{"Valeur"}),
    Fusion = Table.CombineColumns(RemplEspace,{"TYPE", "Attribut"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Fusionné"),
    ModType = Table.TransformColumnTypes(Fusion,{{"Valeur", Currency.Type}})
in
    ModType

Je n'arrive pas à insérer le code dans powerquery sachant qu'en VBA je suis nul :-(
 

Moi69

XLDnaute Occasionnel
Bonjour à tous
Une autre
VB:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau2"]}[Content],
    #"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns(Source, {"TYPE"}, "Attribut", "Valeur"),
    #"Colonnes supprimées" = Table.RemoveColumns(#"Supprimer le tableau croisé dynamique des autres colonnes",{"Attribut"}),
    #"Type modifié" = Table.TransformColumnTypes(#"Colonnes supprimées",{{"Valeur", Currency.Type}})
in
    #"Type modifié"
Re,
je ne comprends pas la code car je n'ai pas de TCD 🤔
 

Moi69

XLDnaute Occasionnel
Bonjour

Désolé pour cette réponse tardive, un petit souci qui m'a pris plus de temps que prévu...
En tout cas, merci ça fonctionne. Je vais me pencher sur son fonctionnement car j'ai souvent besoin de ce type de mouvement.
Un grand merci
 

Discussions similaires

Réponses
2
Affichages
162

Statistiques des forums

Discussions
312 209
Messages
2 086 270
Membres
103 168
dernier inscrit
isidore33