let
Source = Excel.CurrentWorkbook(){[Name="Datas"]}[Content],
// Sauter la ligne d'entête qui est inutile
#"Sauter première ligne" = Table.Skip(Source,1),
// retourner la liste des noms de colonnes pour utilisation ultérieure
#"Noms colonnes" = Table.ColumnNames(#"Sauter première ligne"),
// Création d'une liste numérique de 1 au nombre de colonnes de la table.
// Sélection des colonnes dont le reste de l'index ordinal divisé par 5 est 1 ou 4.
// pour ne conserver que les colonnes de référence et de valeur
#"Colonnes a conserver" = List.RemoveNulls( List.Transform({1..List.Count(#"Noms colonnes")},each let M=Number.Mod(_,5) in if M=1 or M=4 then #"Noms colonnes"{_-1} else null)),
// Faire des sous listes des noms de colonnes à conserver afin de les traiter par 2.
#"En sous-listes" = List.Split( #"Colonnes a conserver",2),
// Sélectionner les colonnes de la table d'origine correspondant à nos sous listes
#"En Tables" = List.Transform(#"En sous-listes",each Table.SelectColumns(#"Sauter première ligne",_)),
// Transformer les tables en lignes et les combiner ensemble.
#"En Lignes" = List.Combine( List.Transform( #"En Tables",Table.ToRows)),
// Transformer la liste des lignes en table, avec les nouveaus noms de colonnes.
Resultat = Table.FromRows(#"En Lignes",{"Référence", "Valeur"})
in
Resultat