Khắc phục Lỗi lặp lại các file trong Power Query

Blue Softs Liên hệ QC

maily mai

Thành viên mới
Tham gia
10/4/21
Bài viết
21
Được thích
0
Giúp e với ạ, em đang tổng hợp 4 file mà khi Expanded custom 4 file bị lặp lại 4 lần, dữ liệu cũng bị lặp lại như vậy, em đang không biết xử lý lỗi này như nào, Mong mọi người giúp e với ạ!
 

File đính kèm

  • th corona - Copy.rar
    59 KB · Đọc: 5
  • THDL.xlsx
    18.5 KB · Đọc: 5
  • ảnh.PNG
    ảnh.PNG
    192.3 KB · Đọc: 6

ptm0412

Bad Excel Member
Thành viên BQT
Super Moderator
Tham gia
4/11/07
Bài viết
11,479
Được thích
32,424
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Consultant
Giúp e với ạ, em đang tổng hợp 4 file mà khi Expanded custom 4 file bị lặp lại 4 lần, dữ liệu cũng bị lặp lại như vậy, em đang không biết xử lý lỗi này như nào, Mong mọi người giúp e với ạ!
Step Add column bạn trùng add 2 tầng:

1631714540941.png

Nếu làm đúng thì chỉ như vầy:

1631714596179.png

Kết quả step Expand phải lấy thêm cột Kind để lọc chỉ lấy sheet, vì có những name được tạo ra do filter

1631715027305.png

Của bạn lại 2 step Expand?

1631714781464.png

Chỉ expand 1 lần ở trên, them step filter lấy sheet

1631715180862.png

Expand lần nữa là ra kết quả.
 

ptm0412

Bad Excel Member
Thành viên BQT
Super Moderator
Tham gia
4/11/07
Bài viết
11,479
Được thích
32,424
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Consultant
Nếu dùng bộ M-code này thì chỉ cần sửa tên folder ở dòng 1
JavaScript:
let
  
    FolderName ="D:\MyPham\GPE\th corona - Copy\CORONA",
    FileNameList= Folder.Files(FolderName)[Name],
    FileNum={0..List.Count(FileNameList)-1},
    DataF= List.Transform(FileNum, (f) =>
    let
        FFullName =FolderName & "\" & FileNameList{f},
        Source1 = Table.SelectRows(Excel.Workbook(File.Contents(FFullName), null, true),each ([Kind] = "Sheet")),
        SourceData=Source1[Data],
        SheetName=Source1[Name],
        SheetNum={0..List.Count(SheetName)-1},
        DataN= List.Transform(SheetNum, (i) =>
        let
            Data0 = (SourceData{i}),
            DataFName = Table.AddColumn(Table.PromoteHeaders(Data0), "File", each FileNameList{f}),
            Datai = Table.AlternateRows(DataFName,0,1,10000)
        in Datai),
        List1 =  Table.FromList(DataN, Splitter.SplitByNothing()),
        ListColumns = Table.ColumnNames(List1{0}[Column1]),
        Ketqua1 = Table.ExpandTableColumn(List1,"Column1",ListColumns)
    in Ketqua1),
    List2 =Table.FromList(DataF,Splitter.SplitByNothing()),
    ListColumns2 = Table.ColumnNames(DataF{0}),
    Ketqua = Table.ExpandTableColumn(List2, "Column1", ListColumns2)
  
in Ketqua
 

maily mai

Thành viên mới
Tham gia
10/4/21
Bài viết
21
Được thích
0
Nếu dùng bộ M-code này thì chỉ cần sửa tên folder ở dòng 1
JavaScript:
let
 
    FolderName ="D:\MyPham\GPE\th corona - Copy\CORONA",
    FileNameList= Folder.Files(FolderName)[Name],
    FileNum={0..List.Count(FileNameList)-1},
    DataF= List.Transform(FileNum, (f) =>
    let
        FFullName =FolderName & "\" & FileNameList{f},
        Source1 = Table.SelectRows(Excel.Workbook(File.Contents(FFullName), null, true),each ([Kind] = "Sheet")),
        SourceData=Source1[Data],
        SheetName=Source1[Name],
        SheetNum={0..List.Count(SheetName)-1},
        DataN= List.Transform(SheetNum, (i) =>
        let
            Data0 = (SourceData{i}),
            DataFName = Table.AddColumn(Table.PromoteHeaders(Data0), "File", each FileNameList{f}),
            Datai = Table.AlternateRows(DataFName,0,1,10000)
        in Datai),
        List1 =  Table.FromList(DataN, Splitter.SplitByNothing()),
        ListColumns = Table.ColumnNames(List1{0}[Column1]),
        Ketqua1 = Table.ExpandTableColumn(List1,"Column1",ListColumns)
    in Ketqua1),
    List2 =Table.FromList(DataF,Splitter.SplitByNothing()),
    ListColumns2 = Table.ColumnNames(DataF{0}),
    Ketqua = Table.ExpandTableColumn(List2, "Column1", ListColumns2)
 
in Ketqua
e cảm ơn anh ạ,
"Không thầy đố mà làm nên"
Bài đã được tự động gộp:

Step Add column bạn trùng add 2 tầng:

View attachment 266146

Nếu làm đúng thì chỉ như vầy:

View attachment 266147

Kết quả step Expand phải lấy thêm cột Kind để lọc chỉ lấy sheet, vì có những name được tạo ra do filter

View attachment 266150

Của bạn lại 2 step Expand?

View attachment 266149

Chỉ expand 1 lần ở trên, them step filter lấy sheet

View attachment 266151

Expand lần nữa là ra kết quả
ôi, e cảm ơn ạ, đúng là lỗi nhỏ mà e lại không biết
 

maily mai

Thành viên mới
Tham gia
10/4/21
Bài viết
21
Được thích
0
Step Add column bạn trùng add 2 tầng:

View attachment 266146

Nếu làm đúng thì chỉ như vầy:

View attachment 266147

Kết quả step Expand phải lấy thêm cột Kind để lọc chỉ lấy sheet, vì có những name được tạo ra do filter

View attachment 266150

Của bạn lại 2 step Expand?

View attachment 266149

Chỉ expand 1 lần ở trên, them step filter lấy sheet

View attachment 266151

Expand lần nữa là ra kết quả.
anh cho e hỏi thêm với ạ, e muốn làm tiêu đề như ảnh mà e chưa biết cách làm như nào ạ
 

File đính kèm

  • ảnh 1.PNG
    ảnh 1.PNG
    12.8 KB · Đọc: 3

ptm0412

Bad Excel Member
Thành viên BQT
Super Moderator
Tham gia
4/11/07
Bài viết
11,479
Được thích
32,424
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Consultant
Cho vào dòng đầu của dữ liệu. Trong code thì xóa 2 dòng 2 và 3
 

hpkhuong

######
Tham gia
20/5/11
Bài viết
4,643
Được thích
4,104
Nghề nghiệp
Đi Rông
Nếu dùng bộ M-code này thì chỉ cần sửa tên folder ở dòng 1
JavaScript:
let
 
    FolderName ="D:\MyPham\GPE\th corona - Copy\CORONA",
    FileNameList= Folder.Files(FolderName)[Name],
    FileNum={0..List.Count(FileNameList)-1},
    DataF= List.Transform(FileNum, (f) =>
    let
        FFullName =FolderName & "\" & FileNameList{f},
        Source1 = Table.SelectRows(Excel.Workbook(File.Contents(FFullName), null, true),each ([Kind] = "Sheet")),
        SourceData=Source1[Data],
        SheetName=Source1[Name],
        SheetNum={0..List.Count(SheetName)-1},
        DataN= List.Transform(SheetNum, (i) =>
        let
            Data0 = (SourceData{i}),
            DataFName = Table.AddColumn(Table.PromoteHeaders(Data0), "File", each FileNameList{f}),
            Datai = Table.AlternateRows(DataFName,0,1,10000)
        in Datai),
        List1 =  Table.FromList(DataN, Splitter.SplitByNothing()),
        ListColumns = Table.ColumnNames(List1{0}[Column1]),
        Ketqua1 = Table.ExpandTableColumn(List1,"Column1",ListColumns)
    in Ketqua1),
    List2 =Table.FromList(DataF,Splitter.SplitByNothing()),
    ListColumns2 = Table.ColumnNames(DataF{0}),
    Ketqua = Table.ExpandTableColumn(List2, "Column1", ListColumns2)
 
in Ketqua

Nếu thay FolderName bằng 1 Name thì bị lỗi ngay dòng này thầy Mỹ.

FolderName = Excel.CurrentWorkbook(){[Name="Source"]}[Content]{0}[Column1],

-> lỗi dòng: DataF= List.Transform(FileNum, (f) =>
 

ptm0412

Bad Excel Member
Thành viên BQT
Super Moderator
Tham gia
4/11/07
Bài viết
11,479
Được thích
32,424
Donate (Momo)
Donate
Giới tính
Nam
Nghề nghiệp
Consultant
Nếu thay FolderName bằng 1 Name thì bị lỗi ngay dòng này thầy Mỹ.

FolderName = Excel.CurrentWorkbook(){[Name="Source"]}[Content]{0}[Column1],

-> lỗi dòng: DataF= List.Transform(FileNum, (f) =>
Vào query option, mục Privacy, đánh dấu Always Ignore

1631762645661.png
 
Top Bottom