Forum Discussion
Christian_Ecijan
Jan 16, 2024Copper Contributor
Excel formatting
Hi, I am trying to create a Macro for formatting some stuff but I'm not sure how to go about it. I want it to become like this. Please help
Lorenzo
Jan 18, 2024Silver Contributor
Adding a Power Query option (attached) for the record as VBA is probably (much) faster
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
CustomDelim = ", ",
AddedNextRefs = Table.AddColumn(Source, "NEXT_REFS", each
if Text.Contains([Reference], CustomDelim)
then Text.AfterDelimiter([Reference], CustomDelim)
else null
),
SplittedRefToRows = Table.ExpandListColumn(
Table.TransformColumns(AddedNextRefs,
{"Reference", Splitter.SplitTextByDelimiter(CustomDelim, QuoteStyle.Csv)}
),
"Reference"
),
AddedClusterIndex = Table.Group(SplittedRefToRows, {"Part Number"},
{"DATA", each Table.AddIndexColumn(_, "IDX", 0, 1), type table}
),
CombinedNestedTables = Table.Combine(AddedClusterIndex[DATA]),
UpdatedQtyAndNextRefs = Table.ReplaceValue(CombinedNestedTables, each [IDX], null,
(v,i,n)=> if i = 0 then v else null,
{"Qty", "NEXT_REFS"}
),
SplittedNextRefsToCols = Table.SplitColumn(UpdatedQtyAndNextRefs, "NEXT_REFS",
Splitter.SplitTextByDelimiter(CustomDelim, QuoteStyle.Csv),
List.Transform({2..List.Max(AddedNextRefs[Qty])}, each "Reference" & Text.From(_))
),
RemovedIndex = Table.RemoveColumns(SplittedNextRefsToCols,{"IDX"}),
RenamedRef = Table.RenameColumns(RemovedIndex, {{"Reference", "Reference1"}})
in
RenamedRefany question let me know