XL 2016 (résolu) fusionner 2 lignes

petitbuzuc

XLDnaute Nouveau
Bonjour à tous,
dans le cadre de mon boulot, je récupère une extraction excel d'un logiciel. Je travaille sous excel 2016
On a une clé unique : le code article. Pour ce code article, on a les quantités du 1er trimestre, 2e, 3e, 4e et les ajustements de fin d'année

mon pb est que on peut avoir 2 lignes par article car il y a une colonne "compte secondaire" qui prend soit la valeur vide, soit la valeur C.

et du coup, on peut avoir :
article 1, compte sec = null ==> quantité_T1 = 15; quantité_t2=10, quantité T3-T4-ajustement non renseignées
article 1, compte sec = 'C' ==> quantité_T1 et T2 non renseignées; quantité_T3 = 15; quantité_t4=12; quantité_ajus=3

moi j'aimerai "fusionner" les 2 lignes et ne pas tenir compte du critère compte secondaire. et avoir du coup dans le cas précédent :
article 1, ==> quantité_T1 = 15; quantité_t2=10, quantité_T3 = 15; quantité_t4=12; quantité_ajus=3



y'a t il un moyen simple de le faire ? idéalement sans passer par macro car les macro nécessitent de la maintenance dans le temps or personne ne sait code en VBA à part moi un tout petit peu ? en excel ? en powerquery ?

je vous mets un fichier test qui illustre la structure de mon fichier (mais j'ai quelques milliers de lignes en temps normal ! ). Dans l'onglet "source", ce sont mes données de base.
Dans l'onglet "souhaite" : c'est le résultat que je souhaite obtenir

Merci bcp
Anne
 

Pièces jointes

  • Test_comptesec.xlsx
    16.5 KB · Affichages: 4

Cousinhub

XLDnaute Barbatruc
Bonjour,
Par le biais de Power Query.
Dans le 2 ème onglet, la requête est chargée à partir de la ligne 6.
Je n'ai pas mis la colonne "compte secondaire" mais il y a possibilité de la rajouter.
Pour mettre à jour, clic droit dans une cellule de la requête, "Actualiser"
Si ça convient
Bonne fin d'apm
 

Pièces jointes

  • Somme T.xlsx
    25.6 KB · Affichages: 3

petitbuzuc

XLDnaute Nouveau
Merci beaucoup @Cousinhub ! j'ai réussi à comprendre et je sais maintenant faire des actions simples avec powerquery. Un petit pas pour l'homme, un grand pas pour petitbuzuc 🤣
par contre, j'aimerai effectivement garder la structure de mon fichier et donc conserver la colonne "compte secondaire" : mais je voudrais la laisser à blanc. Je ne trouve pas comment forcer une colonne avec une variable

là, j'ai fait le nécessaire dans powerquery pour la rajouter dans l'étape où on regroupe, dans la partie en faisant une somme

1691409355712.png


mais du coup, quand j'excute, ça me dit que j'ai toutes les lignes en erreur a cause de "compte secondaire"....
peux tu m'aider à résoudre ça ?

merci bcp
 

Cousinhub

XLDnaute Barbatruc
Bonjour,
Dans le fichier joint, j'ai rajouté une deuxième méthode, qui s'affranchit des derniers noms de colonnes, appelés, je pense, à évoluer. (Donc, à privilégier?)
Et j'ai rajouté dans les deux requêtes la colonne "secondaire"
Bonne découverte de PQ
 

Pièces jointes

  • Somme T_V2.xlsx
    30 KB · Affichages: 2

Cousinhub

XLDnaute Barbatruc
Re-,
En vidant auparavant la colonne "secondaire", on peut simplifier ainsi :
VB:
let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    #"Texte nettoyé" = Table.TransformColumns(Source,{{"compte secondaire", each null, type text}}),
    #"Supprimer le tableau croisé dynamique des autres colonnes" = Table.UnpivotOtherColumns(#"Texte nettoyé", {"Chef de rayon", "Univers", "Filière", "Sous filiere", "Libellé article", "Code article", "compte secondaire", "Unité d'œuvre"}, "Attribut", "Valeur"),
    #"Colonne dynamique" = Table.Pivot(#"Supprimer le tableau croisé dynamique des autres colonnes", List.Distinct(#"Supprimer le tableau croisé dynamique des autres colonnes"[Attribut]), "Attribut", "Valeur", List.Sum)
in
    #"Colonne dynamique"

Ouvrir l'éditeur PQ (Alt + F12), sélectionner la requête "Data_V2" dansle panneau de gauche, puis ruban "Accueil", "Éditeur avancé", remplacer le code présent.
Bonne apm
 

Discussions similaires

Statistiques des forums

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