Bonjour,
Une alternative, par le biais de Power Query. (PQ)
Ce complément est nativement intégré à votre version d'Excel (365, selon vos dires)
Pour mettre à jour, clic droit dans la requête (à partir de la colonne V), "Actualiser"
J'ai "dispatché" sur plusieurs colonnes, mais on pourrait tout mettre dans une seule
Le code (il s'agit de code M, langage utilisé par PQ)
let
Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
SupprCol = Table.SelectColumns(Source,List.Range(Table.ColumnNames(Source),11,3)),
Idx = Table.AddIndexColumn(SupprCol, "Index", 1, 1, Int64.Type),
UnPivot = Table.UnpivotOtherColumns(Idx, {"Index"}, "Attribut", "Valeur"),
FractV = Table.ExpandListColumn(Table.TransformColumns(UnPivot, {{"Valeur", Splitter.SplitTextByDelimiter("GO_", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Valeur"),
Filtr = Table.SelectRows(FractV, each Text.StartsWith([Valeur], "function") or Text.StartsWith([Valeur], "process") or Text.StartsWith([Valeur], "component")),
Extract = Table.TransformColumns(Filtr, {{"Valeur", each Text.BeforeDelimiter(_, " -"), type text}}),
NbCol= List.Max(Table.Group(Extract, {"Index"}, {{"Nombre", each Table.RowCount(_)}})[Nombre]),
Fractt = Table.SplitColumn(Table.Group(Extract, {"Index"}, {{"GO", each Text.Combine([Valeur],"\")}}), "GO", Splitter.SplitTextByDelimiter("\", QuoteStyle.Csv), NbCol),
Fusion = Table.NestedJoin(Idx, {"Index"}, Fractt, {"Index"}, "Fraction", JoinKind.LeftOuter),
Expand = Table.ExpandTableColumn(Fusion, "Fraction", List.Range(Table.ColumnNames(Fractt),1,NbCol), List.Range(Table.ColumnNames(Fractt),1,NbCol)),
Tri = Table.Sort(Expand,{{"Index", Order.Ascending}}),
SelectCol = Table.SelectColumns(Tri,List.Range(Table.ColumnNames(Fractt),1,NbCol))
in
SelectCol
Bonne journée