Forum Discussion
combine csv files with inconsistent columns and missing columns
- 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 CombinedIf 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 CombinedCSV 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)
I tried to do this but it gave me this error :
Expression.Error: The import FolderConnection matches no exports. Did you miss a module reference?
I have no experience in coding, i just copy/paste to advanced editor.
That is referring to the
Source = FolderConnection
line at the top. The text FolderConnection should be replaced with whatever query you already have set up that connects to your folder of csvs. As long as that query has your binaries in a column called Content, the code I shared should work.
If you share more about where your csvs are sitting (SharePoint? local folder? etc), then I could provide some more guidance.