Forum Discussion

omrangassan's avatar
omrangassan
New Member
1 year ago
Solved

combine csv files with inconsistent columns and missing columns

hi   i have attached many csv files that I want to combine together and get columns matched under same header. i can combine them in the cmd csv but columns are not matched and inconsistent. I kn...
  • dufoq3's avatar
    1 year ago

    Hi omrangassan, this will do the job, just change folder address in Source step.

     

    Without CSV FileNames:

    let
        Source = Folder.Files("c:\Users\YourUser\finbox\"),
        ColNames = List.Buffer(Text.Split("a263ff10 href,d6d4b13f,f397a0c8,b343055e href,b343055e,b343055e href (2),b343055e (2),b343055e href (3),b343055e (3),b343055e href (4),b343055e (4),b343055e href (5),b343055e (5),b343055e href (6),b343055e (6),b343055e href (7),b343055e (7),b343055e href (8),b343055e (8),b343055e href (9),b343055e (9),b343055e href (10),b343055e (10),b343055e href (11),b343055e (11),b343055e href (12),b343055e (12),b343055e href (13),b343055e (13),b343055e href (14),b343055e (14),b343055e href (15),b343055e (15),b343055e href (16),b343055e (16),b343055e href (17),b343055e (17),b343055e href (18),b343055e (18),b343055e href (19),b343055e (19),b343055e href (20),b343055e (20),b343055e href (21),b343055e (21),b343055e href (22),b343055e (22),b343055e href (23),b343055e (23),b343055e href (24),b343055e (24),b343055e href (25)", ",")),
        Combined = Table.Combine(Table.AddColumn(Source, "T", each Table.SelectColumns(Table.PromoteHeaders(Csv.Document([Content],[Delimiter=",", Columns=52, Encoding=1250, QuoteStyle=QuoteStyle.None])), ColNames, MissingField.UseNull))[T])
    in
        Combined

     

    If you want to preserve CSV FileNames, use this query:

    let
        Source = Folder.Files("c:\Users\YourUser\finbox\"),
        ColNames = List.Buffer(Text.Split("a263ff10 href,d6d4b13f,f397a0c8,b343055e href,b343055e,b343055e href (2),b343055e (2),b343055e href (3),b343055e (3),b343055e href (4),b343055e (4),b343055e href (5),b343055e (5),b343055e href (6),b343055e (6),b343055e href (7),b343055e (7),b343055e href (8),b343055e (8),b343055e href (9),b343055e (9),b343055e href (10),b343055e (10),b343055e href (11),b343055e (11),b343055e href (12),b343055e (12),b343055e href (13),b343055e (13),b343055e href (14),b343055e (14),b343055e href (15),b343055e (15),b343055e href (16),b343055e (16),b343055e href (17),b343055e (17),b343055e href (18),b343055e (18),b343055e href (19),b343055e (19),b343055e href (20),b343055e (20),b343055e href (21),b343055e (21),b343055e href (22),b343055e (22),b343055e href (23),b343055e (23),b343055e href (24),b343055e (24),b343055e href (25)", ",")),
        Combined = Table.Combine(Table.AddColumn(Source, "T", each Table.SelectColumns(Table.AddColumn(Table.PromoteHeaders(Csv.Document([Content],[Delimiter=",", Columns=52, Encoding=1250, QuoteStyle=QuoteStyle.None])), "Name", (x)=> [Name]), {"Name"} & ColNames, MissingField.UseNull))[T])
    in
        Combined

     

    CSV files and their missing columns:

    finbox-2025-08-14 (43).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (5), b343055e (6), b343055e (7), b343055e (8), b343055e (9), b343055e (10), b343055e (12), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (20), b343055e (21), b343055e (24)
    finbox-2025-08-14 (44).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (5), b343055e (6), b343055e (7), b343055e (8), b343055e (9), b343055e (10), b343055e (12), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (20), b343055e (21), b343055e (24)
    finbox-2025-08-14 (45).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (5), b343055e (6), b343055e (7), b343055e (8), b343055e (9), b343055e (10), b343055e (12), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (20), b343055e (21), b343055e (24)
    finbox-2025-08-14 (46).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (5), b343055e (6), b343055e (7), b343055e (8), b343055e (9), b343055e (10), b343055e (12), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (20), b343055e (21), b343055e (24)
    finbox-2025-08-14 (47).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (5), b343055e (6), b343055e (7), b343055e (8), b343055e (9), b343055e (10), b343055e (12), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (20), b343055e (21), b343055e (24)
    finbox-2025-08-14 (48).csv b343055e (4), b343055e (16), b343055e (17)
    finbox-2025-08-14 (49).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (7), b343055e (8), b343055e (9), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (21), b343055e (24)
    finbox-2025-08-14 (50).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (5), b343055e (6), b343055e (7), b343055e (8), b343055e (9), b343055e (10), b343055e (12), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (20), b343055e (21), b343055e (24)
    finbox-2025-08-14 (51).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (5), b343055e (6), b343055e (7), b343055e (8), b343055e (9), b343055e (10), b343055e (12), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (20), b343055e (21), b343055e (24)
    finbox-2025-08-14 (52).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (8), b343055e (9), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (21), b343055e (24)
    finbox-2025-08-14 (53).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (7), b343055e (8), b343055e (9), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (21), b343055e (24)
    finbox-2025-08-14 (54).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (5), b343055e (6), b343055e (7), b343055e (8), b343055e (9), b343055e (10), b343055e (12), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (20), b343055e (21), b343055e (24)
    finbox-2025-08-14 (55).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (8), b343055e (9), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (21), b343055e (24)
    finbox-2025-08-14 (56).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (5), b343055e (6), b343055e (7), b343055e (8), b343055e (9), b343055e (10), b343055e (12), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (20), b343055e (21), b343055e (24)
    finbox-2025-08-14 (57).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (5), b343055e (6), b343055e (7), b343055e (8), b343055e (9), b343055e (10), b343055e (12), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (20), b343055e (21), b343055e (24)
    finbox-2025-08-14 (58).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (7), b343055e (8), b343055e (9), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (21), b343055e (24)
    finbox-2025-08-14 (59).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (7), b343055e (8), b343055e (9), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (21), b343055e (24)
    finbox-2025-08-14 (60).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (6), b343055e (8), b343055e (9), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (21), b343055e (24)
    finbox-2025-08-14 (61).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (7), b343055e (8), b343055e (9), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (21), b343055e (24)
    finbox-2025-08-14 (62).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (5), b343055e (6), b343055e (7), b343055e (8), b343055e (9), b343055e (10), b343055e (12), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (20), b343055e (21), b343055e (24)
    finbox-2025-08-14 (63).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (8), b343055e (9), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (21), b343055e (24)
    finbox-2025-08-14 (64).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (8), b343055e (9), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (21), b343055e (24)
    finbox-2025-08-14 (65).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (8), b343055e (9), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (21), b343055e (24)
    finbox-2025-08-14 (66).csv b343055e, b343055e (2), b343055e (3), b343055e (4), b343055e (8), b343055e (9), b343055e (13), b343055e (14), b343055e (15), b343055e (16), b343055e (17), b343055e (18), b343055e (19), b343055e (21), b343055e (24)
    finbox-2025-08-14 (84).csv b343055e (16)