Re,
Nous n'avons pas les mêmes versions d'excel et j'ai bien peur que powerquery ait évolué depuis la version addin 2010. Quoiqu'il en soit, la démarche générale et de décrire à travers différentes étapes, comment manipuler les données. Je ne connais pas de Tuto sur le sujet, même pour votre exemple j'ai du me débrouiller avec la doc miséreuse de MS
https://docs.microsoft.com/fr-fr/powerquery-m/index (le chapître sur les fonctions M).
En sachant que la requête nommé 'prmCompteRecherché' ne fait que retourner la valeur de la cellule nommée 'Compte.Recherché' (D1),
je vais vous décrire les étapes de la requête 'DétailsCompte':
1 - la source :
Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content]
Ramène toutes les données du tableau "Tableau1"
2 - établir une liste des noms de colonnes des 'CompteG' :
List.Select(Table.ColumnNames(Source),each Text.StartsWith(_,"CompteG"))
3 - établir une liste des colonnes 'Montant?' :
List.Select(Table.ColumnNames(Source),each Text.StartsWith(_,"Montant"))
4 - sélectionner les colonnes du tableau 'Tri' à 'Description' plus celles des deux listes précédentes :
Table.SelectColumns(Source,List.Combine({{"Tri", "Date", "Nom", "Description"},lstColsComptes,lstColsMontants}))
5 - sélectionner les lignes dont au moins une colonne est égale au paramètre 'prmCompteRecherché' : =
Table.SelectRows(SelectionColonnes, each List.Contains(Record.FieldValues(Record.SelectFields(_,lstColsComptes)),prmCompteCherché))
6 - ajouter une colonnes 'Montants' chargée de sommer les valeurs des colonnes idoines.
Table.AddColumn(SelectionLignes, "Montants", each fnSommer(_))
Pour cette étape j'ai créé à l'intérieur de la requête une fonction nommer 'fnSommer' qui reçoit en paramètre une ligne d'enregistrement.
La fonction transforme la ligne d'enregistrement en Table, établit une liste des noms de CompteG qui ont pour valeur le compte recherché.
A partir de cette liste, par remplacement de 'CompteGL' par 'Montant' est établit une liste des lignes à sommer.
Cordialement