Macro chuyển đổi và loại bỏ dữ liệu trùng lặp trong Excel

CHÀO

Tôi đã cố gắng tìm hiểu cách thực hiện một tác vụ bằng Macro nhưng không may là nó vượt quá khả năng hiểu biết "Ghi lại, chỉnh sửa và hy vọng mọi thứ ổn" của tôi về VBA.

Tóm lại, tôi có một danh sách trông như thế này:

Tên câu lạc bộ

Tên giải đấu

Luân Đôn

Giải đấu London

Luân Đôn

Liên đoàn miền Nam

Luân Đôn

Liên minh Liên minh

Luân Đôn

Giải đấu thành phố

Nottingham

Giải đấu vùng Midlands

Nottingham

Giải đấu Notts

Nottingham

Giải Trent League

Newcastle

Giải đấu Tyneside

Newcastle

Giải đấu phía Bắc

Newcastle

Giải đấu Đông Bắc

Newcastle

Giải đấu Northumberland

Và tôi muốn nó trông như thế này:

Tên câu lạc bộ

Giải hạng nhất

Giải hạng 2

Giải hạng 3

Giải hạng 4

Luân Đôn

Giải đấu London

Liên đoàn miền Nam

Liên minh Liên minh

Giải đấu thành phố

Nottingham

Giải đấu vùng Midlands

Giải đấu Notts

Giải Trent League

Newcastle

Giải đấu Tyneside

Giải đấu phía Bắc

Giải đấu Đông Bắc

Giải đấu Northumberland

Có hơn 600 câu lạc bộ khác nhau, đó là lý do tại sao tôi không muốn làm thủ công.

Mọi sự giúp đỡ đều được đánh giá cao và xin cảm ơn trước.




Trả lời:
Đây nè:

Sub Transform()
Bảng tính Dim ws As
Bảng tính Dim wt
Dim s As Long
Dim m As Long
Dim t As Long
Dim c As Long
Dim n As Long
Ứng dụng.Màn hình cập nhật = Sai
Đặt ws = ActiveSheet
Đặt wt = Worksheets.Add(After:=ws)
wt.Cells(1, 1).Value = ws.Cells(1, 1).Value
t = 1
m = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
Đối với s = 2 đến m
Nếu ws.Cells(s, 1).Value <> ws.Cells(s - 1, 1).Value thì
t = t + 1
wt.Cells(t, 1).Value = ws.Cells(s, 1).Value
c = 1
n = 1
Kết thúc nếu
c = c + 1
wt.Cells(t, c).Value = ws.Cells(s, 2).Value
Nếu c > n thì
n = c
wt.Cells(1, n).Value = "League " & n - 1
Kết thúc nếu
Tiếp theo là
wt.UsedRange.EntireColumn.AutoFit
Ứng dụng.Màn hình cập nhật = Đúng
End Sub

Comments

Popular posts from this blog

Xử lý hàng loạt các tệp Excel được bảo vệ bằng mật khẩu

Thu hẹp và mở rộng cột trong Excel

Hàm IF của Excel