Chào anh/chị/em trong nhóm. Trước đây em có làm file theo dõi hóa đơn điện tử bằng excel (Office 2021), giờ em qua công ty mới thì sử dụng office 2016 nên nó báo lỗi, em kiểm tra thì Office 2016 không có hàm Text.Middle(). Nhờ ACE xem giúp mình với.
Mình có dữ liệu HD_1C23TYY_230925_00000045-NHAN.pdf. Trong đó 230925 mình dùng hàm Text.Middle() để tách và xử lý thành ngày 25/09/2023.
Chú ơi, con không rành về code nên không biết thêm đoạn chủ gửi vào đâu cho đúng. Nhưng trong đoạn chú gửi con thấy có dùng hàm Text.Middle(), mà con đang dùng Office 2016 thì nó không có hàm đó, Nó báo lỗi như hình bên dưới á chú. Code file excel con gửi đính kèm bài 1:
let
Source = Excel.CurrentWorkbook(){[Name="DATA"]}[Content],
#"Removed Other Columns" = Table.SelectColumns(Source,{"Name", "Folder Path"}),
#"Duplicated Column" = Table.DuplicateColumn(#"Removed Other Columns", "Name", "Name - Copy"),
#"Split Column by Delimiter" = Table.SplitColumn(#"Duplicated Column", "Name - Copy", Splitter.SplitTextByDelimiter("_", QuoteStyle.Csv), {"Name - Copy.1", "Name - Copy.2", "Name - Copy.3", "Name - Copy.4"}),
#"Split Column by Delimiter1" = Table.SplitColumn(#"Split Column by Delimiter", "Name - Copy.4", Splitter.SplitTextByDelimiter(".", QuoteStyle.Csv), {"Name - Copy.4.1", "Name - Copy.4.2"}),
#"Added Custom" = Table.AddColumn(#"Split Column by Delimiter1", "Ngày HĐ", each "20"&Text.Middle([#"Name - Copy.3"],0,2)&"/"&Text.Middle([#"Name - Copy.3"],2,2)&"/"&Text.Middle([#"Name - Copy.3"],4,2)),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Đường dẫn", each [Folder Path]&[Name]),
#"Renamed Columns" = Table.RenameColumns(#"Added Custom1",{{"Name - Copy.2", "Ký hiệu"}, {"Name - Copy.4.1", "Số Hóa đơn"}, {"Ngày HĐ", "Ngày Hóa đơn"}}),
#"Reordered Columns" = Table.ReorderColumns(#"Renamed Columns",{"Ký hiệu", "Số Hóa đơn", "Ngày Hóa đơn", "Đường dẫn", "Name", "Folder Path", "Name - Copy.1", "Name - Copy.3", "Name - Copy.4.2"}),
#"Removed Other Columns1" = Table.SelectColumns(#"Reordered Columns",{"Ký hiệu", "Số Hóa đơn", "Ngày Hóa đơn", "Đường dẫn"}),
#"Sorted Rows" = Table.Sort(#"Removed Other Columns1",{{"Số Hóa đơn", Order.Ascending}, {"Đường dẫn", Order.Ascending}}),
#"Changed Type with Locale" = Table.TransformColumnTypes(#"Sorted Rows", {{"Ngày Hóa đơn", type date}}, "en-US"),
#"Split Column by Delimiter2" = Table.SplitColumn(#"Changed Type with Locale", "Số Hóa đơn", Splitter.SplitTextByDelimiter("-", QuoteStyle.Csv), {"Số Hóa đơn.1", "Số Hóa đơn.2"}),
#"Renamed Columns1" = Table.RenameColumns(#"Split Column by Delimiter2",{{"Số Hóa đơn.1", "Số Hóa đơn"}, {"Số Hóa đơn.2", "Nhân viên Sale"}}),
#"Reordered Columns1" = Table.ReorderColumns(#"Renamed Columns1",{"Ký hiệu", "Số Hóa đơn", "Ngày Hóa đơn", "Nhân viên Sale", "Đường dẫn"})
in
#"Reordered Columns1"
Chào anh/chị/em trong nhóm. Trước đây em có làm file theo dõi hóa đơn điện tử bằng excel (Office 2021), giờ em qua công ty mới thì sử dụng office 2016 nên nó báo lỗi, em kiểm tra thì Office 2016 không có hàm Text.Middle(). Nhờ ACE xem giúp mình với.
Mình có dữ liệu HD_1C23TYY_230925_00000045-NHAN.pdf. Trong đó 230925 mình dùng hàm Text.Middle() để tách và xử lý thành ngày 25/09/2023.
let
Source = Excel.CurrentWorkbook(){[Name="DATA"]}[Content],
Custom1 = #table({"Ký hiệu","Số hóa đơn","Nhân viên Sale","Ngày hóa đơn","Đường dẫn"}, List.Transform(Table.ToRows(Source), (x)=> let t= Text.SplitAny(x{1},"-_") in {t{1}}&{t{3}}&{Text.Split(t{4},"."){0}}&{Date.FromText(t{2},[Format="yyMMdd"])}&{x{6}&x{1}})),
#"Sorted Rows" = Table.Sort(Custom1,{{"Ngày hóa đơn", Order.Ascending}, {"Đường dẫn", Order.Ascending}})
in
#"Sorted Rows"
Con cảm ơn chú @ptm0412 và bạn @hocexcel_1991 đã hỗ code rất thú vị. Nhưng con làm mà cột ngày lỗi Error, con thử đổi change date local mà không hết lỗi.