Convert data từ nhiều dòng về 1 dòng.

Liên hệ QC

trodoi123

Thành viên mới
Tham gia
27/1/16
Bài viết
36
Được thích
5
Dear các anh chị và các bạn

Hiện tại mình đang gặp khó khăn khi data được xuất từ web về thông tin khảo sát từ thị trường có tới hàng ngàn cửa hàng
nhưng mỗi 1 cửa hàng lại có hàng chục dòng chứ không gom về 1 dòng để có thể kiểm tra dữ liệu dễ dàng hơn.
Trong file đính kèm có sheet DATA xuất từ web về và sheet Convert là kết quả mong muốn.
Thậm chí có các data ít dòng hơn, và ít thông tin hơn. Hiện tại đang phải làm thủ công mất rất nhiều thời gian.
Mong các anh chị em diễn đàn hữu duyên giúp mình, hoặc có phương pháp nào chuyển đổi dữ liệu nhanh chóng hơn.
Xin cám ơn !
 

File đính kèm

  • Convert data.xlsx
    14.1 KB · Đọc: 21
Dear các anh chị và các bạn

Hiện tại mình đang gặp khó khăn khi data được xuất từ web về thông tin khảo sát từ thị trường có tới hàng ngàn cửa hàng
nhưng mỗi 1 cửa hàng lại có hàng chục dòng chứ không gom về 1 dòng để có thể kiểm tra dữ liệu dễ dàng hơn.
Trong file đính kèm có sheet DATA xuất từ web về và sheet Convert là kết quả mong muốn.
Thậm chí có các data ít dòng hơn, và ít thông tin hơn. Hiện tại đang phải làm thủ công mất rất nhiều thời gian.
Mong các anh chị em diễn đàn hữu duyên giúp mình, hoặc có phương pháp nào chuyển đổi dữ liệu nhanh chóng hơn.
Xin cám ơn !
Bạn gửi thêm 2 Wỏkid nữa đi vì chẳng biết id cột A và Question id cột F diễn tiến thế nào.
 
Upvote 0
Đưa cái trang web đó lên đây xem nào.

Ghép cột I và L với nhau, cùng với cột G, xoay chúng 90 độ là xong thôi mà.
 
Upvote 0
Dùng Power query
PHP:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    AddAnswer = Table.AddColumn(Source, "Answer", each [AnswerTitle] & (if [Value1] <> null then [Value1] else "")),
    RemoveColumn = Table.RemoveColumns(AddAnswer,{"Id", "SurveyId", "SurveyTitle", "SurveyDescription", "QuestionId", "AnswerId", "Value", "Type", "Status", "AnswerTitle", "Value1"}),
    ColumnData = List.Distinct(RemoveColumn[QuestionTitle]),
    PivotData = Table.Pivot(RemoveColumn,ColumnData,"QuestionTitle","Answer")
in
    PivotData
Đưa cái trang web đó lên đây xem nào.

Ghép cột I và L với nhau, cùng với cột G, xoay chúng 90 độ là xong thôi mà.
Xong rồi
 
Upvote 0
Đưa cái trang web đó lên đây xem nào.

Ghép cột I và L với nhau, cùng với cột G, xoay chúng 90 độ là xong thôi mà.
Tại tiếng Anh giỏi quá nên vượt trình độ mọi người.
Người thường thì từ "gộp" gọi là "converge", hay "combine"
Chuyển qua cột thì là "transform", nếu không biết dùng tiếng khoai chuối là "crosstab" hay "pivot"
 
Upvote 0
Dùng Power query
PHP:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    AddAnswer = Table.AddColumn(Source, "Answer", each [AnswerTitle] & (if [Value1] <> null then [Value1] else "")),
    RemoveColumn = Table.RemoveColumns(AddAnswer,{"Id", "SurveyId", "SurveyTitle", "SurveyDescription", "QuestionId", "AnswerId", "Value", "Type", "Status", "AnswerTitle", "Value1"}),
    ColumnData = List.Distinct(RemoveColumn[QuestionTitle]),
    PivotData = Table.Pivot(RemoveColumn,ColumnData,"QuestionTitle","Answer")
in
    PivotData

Xong rồi
Tuyệt vời cám ơn bác, giờ biết thêm chức năng này nữa quá hay.
 
Upvote 0
Bạn thấy hay, nhưng đã thấy lỗi dữ liệu của bạn khiến cho mất hay chưa?
Đúng là có lỗi thật bác ơi, có một số cột nó lỗi từ động bỏ trống mặc dù data lúc chưa chuển là có. Các code này em hoàn toàn mù tịt, Bác xem chỉnh lại giúp em với.
loi.png
 

File đính kèm

  • WorkResult_1dec.xlsx
    1 MB · Đọc: 10
Upvote 0
Dữ liệu không chuẩn:
Cùng 1 câu hỏi được hỏi 2 lần với 2 câu trả lời khác nhau. Phải là câu hỏi khác nhau, dù chỉ 1 khoảng trắng.
Dữ liệu không cùng mẫu, nên dùng code để giải quyết.
Lỗi này không phải lỗi "không cùng mẫu" mà là lỗi trùng dữ liệu, dùng code thì cũng không biết xử lý thế nào cho đúng.

1638428931692.png

1638429183240.png
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu dữ liệu chuẩn, Power query ra thế này: (1 câu hỏi 2, 3 lần phải là 3 câu hỏi khác nhau)

1638430518662.png
 
Upvote 0
Dạ cám ơn các bác nhé, đúng là dữ liệu so le và thiếu logic, xuất data không đầy đủ thật, dù sao củng chuyển được 50% phần thông tin quan trong phía trước. phần còn lại chắc em làm thủ công củng ổn. Cám ơn các bác.
 
Upvote 0
Làm thế này sẽ được ít nhất 1 giá trị trong số câu hỏi trùng:
PHP:
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    AddAnswer = Table.AddColumn(Source, "Answer", each [AnswerTitle] & (if [Value1] <> null then [Value1] else "")),
    SelectColumn = Table.SelectColumns(AddAnswer,{"WorkId","QuestionTitle","Answer"}),
    RemovedDuplicates = Table.Distinct(SelectColumn, {"WorkId", "QuestionTitle"}),
    ColumnData = List.Sort(List.Distinct(RemovedDuplicates[QuestionTitle])),
    PivotData = Table.Pivot(RemovedDuplicates,ColumnData,"QuestionTitle","Answer")
in
    PivotData
 
Upvote 0
Web KT

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

Back
Top Bottom