Lọc dữ liệu khách hàng theo mã hàng.

Liên hệ QC

huyngo19888

Thành viên mới
Tham gia
2/7/19
Bài viết
10
Được thích
0
Thân gửi các bác,

Em có 1 line dữ liệu gồm mã hàng + khách hàng, rất dài. e cần lọc dữ liệu khách hàng theo cùng 1 mã hàng trong cùng 1 hàng như file đính kèm. Nhờ các bác hướng dẫn em với ạ.

Em cảm ơn.
 

File đính kèm

  • help.xlsx
    12.5 KB · Đọc: 39
Đoạn group by, bác gõ lệnh chứ không dùng thao tác ạ,
Nếu dùng thao tác bác có thể hướng dẫn em ko ạ.
Em làm đến đây rồi mà ko làm được tiếp.
View attachment 278330
Tôi dùng thao tác Group By với Sum, sau đó sửa lại thành Text.Combine(List.Distinct(...)))
Toàn bộ đây bạn ạ:
Mã:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Mã hàng ( cố định 9 số )", Int64.Type}, {"Khách hàng ( tổng 12 ký tự - bao gồm số và chữ )", type text}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Mã hàng ( cố định 9 số )"}, {{"Result", each Text.Combine(List.Distinct([#"Khách hàng ( tổng 12 ký tự - bao gồm số và chữ )"]),", ")}})
in
    #"Grouped Rows"
 
Upvote 0
Tôi dùng thao tác Group By với Sum, sau đó sửa lại thành Text.Combine(List.Distinct(...)))
Toàn bộ đây bạn ạ:
Mã:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Mã hàng ( cố định 9 số )", Int64.Type}, {"Khách hàng ( tổng 12 ký tự - bao gồm số và chữ )", type text}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Mã hàng ( cố định 9 số )"}, {{"Result", each Text.Combine(List.Distinct([#"Khách hàng ( tổng 12 ký tự - bao gồm số và chữ )"]),", ")}})
in
    #"Grouped Rows"
Em đoán ở chỗ như bác viết , nhưng làm thao tác add colum mới, gõ cũng không ra
Chắc do em chưa hiểu hết, làm hơi khó.
Em thử làm Sum nó lỗi,

1656918311231.png
 
Upvote 0
Em thử làm Sum nó lỗi,
Chỉ dữ liệu là số mới cộng được chứ nhỉ?
Mã:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Renamed Columns" = Table.RenameColumns(Source,{{"Mã hàng ( cố định 9 số )", "MH"}, {"Khách hàng ( tổng 12 ký tự - bao gồm số và chữ )", "KH"}}),
    #"Grouped Rows" = Table.Group(#"Renamed Columns", {"MH", "KH"}, {{"Count", each "KQ"}}),
    #"Pivoted Column" = Table.Group(#"Grouped Rows", {"MH"}, {{"Count", each Text.Combine(List.Sort([KH]),", "), type text}})
in
    #"Pivoted Column"
 
Upvote 0
Chỉ dữ liệu là số mới cộng được chứ nhỉ?
Mã:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Renamed Columns" = Table.RenameColumns(Source,{{"Mã hàng ( cố định 9 số )", "MH"}, {"Khách hàng ( tổng 12 ký tự - bao gồm số và chữ )", "KH"}}),
    #"Grouped Rows" = Table.Group(#"Renamed Columns", {"MH", "KH"}, {{"Count", each "KQ"}}),
    #"Pivoted Column" = Table.Group(#"Grouped Rows", {"MH"}, {{"Count", each Text.Combine(List.Sort([KH]),", "), type text}})
in
    #"Pivoted Column"
Cũng tính thử Pivot column, nhưng vẫn ko ra đúng ý.
 
Upvote 0
Em đoán ở chỗ như bác viết , nhưng làm thao tác add colum mới, gõ cũng không ra
Chắc do em chưa hiểu hết, làm hơi khó.
Em thử làm Sum nó lỗi,

View attachment 278332
Lỗi là do cột Khách Hàng không phải định dạng number, mục đích bài này là nối chuỗi và loại trùng,
Bạn thay List.Sum bằng {{"Count",each Text.Combine(List.Distinct([cột KH]),"|")}, type text}) là được.
 
Lần chỉnh sửa cuối:
Upvote 0
Em đoán ở chỗ như bác viết , nhưng làm thao tác add colum mới, gõ cũng không ra
Chắc do em chưa hiểu hết, làm hơi khó.
Em thử làm Sum nó lỗi,

View attachment 278332
Do dữ liệu là Text nên đương nhiên Sum sẽ ra lỗi.
Bạn sửa chữ List.Sum đó thành Text.Combine(List.Distinct(...), ", ") là ra kết quả ngay đó.
 
Upvote 0
Do dữ liệu là Text nên đương nhiên Sum sẽ ra lỗi.
Bạn sửa chữ List.Sum đó thành Text.Combine(List.Distinct(...), ", ") là ra kết quả ngay đó.
Sửa công thức từ List... lồng thêm Text.combine kia em thấy khá nhiều hướng dẫn, nhưng lâu không dùng nên hơi khó nhớ,
làm 1 hồi thì cũng ra được thao tác làm đến đây,
:))))))))
1656993286659.png
 
Upvote 0
Sửa công thức từ List... lồng thêm Text.combine kia em thấy khá nhiều hướng dẫn, nhưng lâu không dùng nên hơi khó nhớ,
làm 1 hồi thì cũng ra được thao tác làm đến đây,
:))))))))
View attachment 278361
Chịu khó sẽ có kết quả.
Sai rồi mới đến lúc đúng vì không làm chắc chắn không bao giờ đúng.
 
Upvote 0
Mình cần lấy dữ liệu ntn, nhờ ae giúp đỡ, cảm ơn
1657156281871.png
 

File đính kèm

  • Book3.xlsx
    8.6 KB · Đọc: 13
Upvote 0
Mình cần lấy dữ liệu ntn, nhờ ae giúp đỡ, cảm ơn
View attachment 278465


Yêu cầu này dùng Power Query xử lý được.
1. Split cột ra rồi unpivot
2. Loại bỏ các cặp trùng nhau (đơn giản nhất cứ nối lại và remove duplicate)

Sau đó được kết quả như hình dưới.
Bước tiếp theo thì không khác gì các bài trên.
 

File đính kèm

  • 111.png
    111.png
    27.6 KB · Đọc: 18
Upvote 0
Mình cần lấy dữ liệu ntn, nhờ ae giúp đỡ, cảm ơn
View attachment 278465
Bạn dùng M code này
Mã:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(Source, {{"Col2", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Col2"),
    #"Trimmed Text" = Table.TransformColumns(#"Split Column by Delimiter",{{"Col2", Text.Trim, type text}}),
    #"Grouped Rows" = Table.Group(#"Trimmed Text", {"Col2"}, {{"KQ", each Text.Combine(List.Distinct([Col1]),", "), type text}})
in
    #"Grouped Rows"
1657159209675.png
 
Upvote 0
Công thức trên MS365 bạn nhé:

E10=UNIQUE(FILTERXML("<p><c>"&SUBSTITUTE(TEXTJOIN(", ",,C3:C9),", ","</c><c>")&"</c></p>","//c"))
F10=TEXTJOIN(", ",1,IF(ISNUMBER(FIND(E10,$C$3:$C$9)),$B$3:$B$9,"")) kéo xuống.
 

File đính kèm

  • 1657159701103.png
    1657159701103.png
    195.4 KB · Đọc: 13
  • 1657159729280.png
    1657159729280.png
    188.4 KB · Đọc: 16
Upvote 0
Bạn dùng M code này
Mã:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(Source, {{"Col2", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Col2"),
    #"Trimmed Text" = Table.TransformColumns(#"Split Column by Delimiter",{{"Col2", Text.Trim, type text}}),
    #"Grouped Rows" = Table.Group(#"Trimmed Text", {"Col2"}, {{"KQ", each Text.Combine(List.Distinct([Col1]),", "), type text}})
in
    #"Grouped Rows"
View attachment 278472
Mình dùng code này mà ko đc, bạn có thể cho mình xin file đã làm đc ko, cảm ơn nhiều
 
Upvote 0
1657165760504.png
Test thử, hay quá, :)))))
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom