Tự động tách 1 dòng thành nhiều dòng theo điều kiện

Liên hệ QC

bigbabol89

Thành viên thường trực
Tham gia
15/10/12
Bài viết
224
Được thích
34
Em chào các anh, chị
Em nhờ các anh chị giúp nội dung như sau ( chi tiết em gửi ở file đính kèm ạ )
1637213222476.png
Rất hi vọng sớm nhận được sự giúp đỡ từ các anh, chị ạ
Em cám ơn các anh chị !
 

File đính kèm

  • Tach dong theo dieu kien.xlsx
    21.1 KB · Đọc: 5
Lần chỉnh sửa cuối:
Em chào các anh, chị
Em nhờ các anh chị giúp nội dung như sau ( chi tiết em gửi ở file đính kèm ạ )
View attachment 269307
Rất hi vọng sớm nhận được sự giúp đỡ từ các anh, chị ạ
Em cám ơn các anh chị !
Kết quả của bạn D bị thiếu sao ấy nhỉ?
Sheet kết quả vẫn cần mấy cái cột D,E,F để làm gì nhỉ
 
Dạ, đúng kết quả bạn D bị thiếu rồi.
Sheet kết quả cột D,E,F để trống thôi ạ. Ngoài ra, dữ liệu của em có nhiều cột nữa ạ
Em gửi lại file đính kèm ạ
1637224040291.png
 

File đính kèm

  • Tach dong theo dieu kien.xlsx
    21.1 KB · Đọc: 7
Dạ, đúng kết quả bạn D bị thiếu rồi.
Sheet kết quả cột D,E,F để trống thôi ạ. Ngoài ra, dữ liệu của em có nhiều cột nữa ạ
Em gửi lại file đính kèm ạ
View attachment 269319
File thật của bạn cấu trúc như này à
Kết quả ở sheet1 và cấu trúc kết quả ở sheet 2 của bạn sao không giống nhau nhỉ
 

File đính kèm

  • Tach dong theo dieu kien.xlsx
    13.4 KB · Đọc: 31
File thật của bạn cấu trúc như này à
Kết quả ở sheet1 và cấu trúc kết quả ở sheet 2 của bạn sao không giống nhau nhỉ
Dạ, anh xem giúp em mẫu kết quả ở bảng mô phỏng bên sheet 1 ạ.
Ở các cột ... nghĩa là còn nhiều cột ở khoảng đó nữa ạ, nếu em thao tác tay thì em sẽ :
- Insert thêm dòng.
- Copy dữ liệu cả hàng đó xuống ( tức là dữ liệu ở các cột ... cũng sẽ được copy xuống )
- Xóa Amount cũ và chia lại để được Amount mới ạ.
- Gõ lại no. còn lại
Bài đã được tự động gộp:

Bạn xem file.
--
Ký tên: XV
Thực sự thì công thức của anh vượt quá tầm hiểu biết của em @.@
Em đã thử và ra kết quả rất chính xác, tuy nhiên dữ liệu của em khá nhiều hàng và cột nên lúc em làm rất chậm ạ.
Anh có thể giúp em sử dụng VBA được không ạ.
 
.................
 
Lần chỉnh sửa cuối:
................
 
Bạn thử dùng Power Quyery
Mã:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
   CT = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Amount", Int64.Type}, {"No.", type text}, {"Loại bỏ no.", type text},{"Diễn giải", type text}}),
    Ad1 = Table.AddColumn(CT, "Tách thành", each List.Count(Text.Split([#"No."],","))-(try List.Count(Text.Split([#"Loại bỏ no."],",")) otherwise 0), type number),
    Ad2 = Table.AddColumn(Ad1, "AmountNew", each [Amount]/[Tách thành], type number),
    Split = Table.ExpandListColumn(Table.TransformColumns(Ad2, {{"No.", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "No."),
    Ad3 = Table.AddColumn(Split, "Custom", each try Text.PositionOf([#"Loại bỏ no."],Text.Trim([#"No."])) otherwise -1),
    Filter = Table.SelectRows(Ad3, each ([Custom] = -1)),
    Del = Table.RemoveColumns(Filter,{"Amount","Custom"}),
    Reordered = Table.ReorderColumns(Del,{"Name", "AmountNew", "No.", "Loại bỏ no.", "Tách thành", "Diễn giải"})
in
    Reordered
 

File đính kèm

  • Tach dong theo dieu kien.xlsx
    21.2 KB · Đọc: 10
Bạn xem thử file này rồi tùy chỉnh lại theo bảng dữ liệu thật của bạn.
Dạ, em cám ơn anh. Code chạy rất tốt ạ, em đang mò thêm để khớp với dữ liệu của em ạ.
Bạn thử dùng Power Quyery
Mã:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
   CT = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Amount", Int64.Type}, {"No.", type text}, {"Loại bỏ no.", type text},{"Diễn giải", type text}}),
    Ad1 = Table.AddColumn(CT, "Tách thành", each List.Count(Text.Split([#"No."],","))-(try List.Count(Text.Split([#"Loại bỏ no."],",")) otherwise 0), type number),
    Ad2 = Table.AddColumn(Ad1, "AmountNew", each [Amount]/[Tách thành], type number),
    Split = Table.ExpandListColumn(Table.TransformColumns(Ad2, {{"No.", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "No."),
    Ad3 = Table.AddColumn(Split, "Custom", each try Text.PositionOf([#"Loại bỏ no."],Text.Trim([#"No."])) otherwise -1),
    Filter = Table.SelectRows(Ad3, each ([Custom] = -1)),
    Del = Table.RemoveColumns(Filter,{"Amount","Custom"}),
    Reordered = Table.ReorderColumns(Del,{"Name", "AmountNew", "No.", "Loại bỏ no.", "Tách thành", "Diễn giải"})
in
    Reordered
Power Query em không có kiến thức về nó nên em cũng chưa biết làm như nào ạ. Em cám ơn anh ạ
 
Web KT
Back
Top Bottom