Chuyển đổi dữ liệu từ phần mềm lại cho phù hợp

Liên hệ QC

phihndhsp

Thành viên gạo cội
Tham gia
26/12/09
Bài viết
3,363
Được thích
2,488
Giới tính
Nam
Nghề nghiệp
Giáo Viên
Xin các cao thủ hướng dẫn cách làm file này 1 cách nhanh nhất có thể. dùng công thức hoặc VBA gì cũng đuợc.
tôi có 1 sheet Original muốn chuyển dữ liệu sang sheet DATABASE nhưng bỏ một vài dòng và thêm 1 cột
những dòng màu vàng là dòng bắt đầu dữ liệu của môt cửa hàng

những dòng màu xanh là dòng bắt đầu 1 phân loại hàng( cái này chuyển thành cột 14 trong sheet Database)

những dòng thổng kê là màu đen, xoá tất cả

trong file tôi có file mẫu mà tôi cần, xin được giúp đỡ, xin chân thành cảm ơn

Xin lỗi file XNT_dung mới là file đúng
 

File đính kèm

Lần chỉnh sửa cuối:
Dữ liệu mẫu sang sheet Database của bạn chưa được xử lý nên tôi không so sánh. Với 3 yêu cầu như trong file thì tôi thấy:
1/ Các thông số cửa hang, phân loại, tong phụ thì cột Đơn giá sẽ không có dữ liệu => duyệt 1 vòng lặp qua dữ liệu nếu các vị trí trên không chứa dữ liệu, có thì bỏ qua
2/ Lấy phân loại: duyệt 1 vòng nễu cột 1 có chứ "phân loại hàng:" thì lấy dữ liệu tại cột kế tiếp cho và cột 14
Bạn tham khảo Code rồi tùy biến
Mã:
Sub Combine()
Dim Arr, sArr
Dim i As Long, jC As Long, k As Long
Dim Clfshop As String           'Phan loai cua hang
Arr = Sheet1.Range("A13:Q" & Sheet1.Range("A65536").End(3).Row)
ReDim sArr(1 To UBound(Arr, 1), 1 To UBound(Arr, 2) + 1)
Clfshop = [B11]
For i = 1 To UBound(Arr, 1)
    If Arr(i, 6) <> "" Then
        k = k + 1
        For jC = 1 To UBound(sArr, 2) - 1
            sArr(k, jC) = Arr(i, jC)
        Next
        If Arr(i, 1) = Trim([A11]) Then Clfshop = Arr(i, 2)
        sArr(k, 14) = Clfshop
    End If
Next
Sheet2.Range("A3:A65536").NumberFormat = "@"
Sheet2.Range("A65536").End(3).Offset(1, 0).Resize(UBound(sArr, 1), 14) = sArr
End Sub
-----------------------------------------
Xem lại File mình thấy: việc lựa chon lấy chữ nào, bỏ chữ nào thì bạn có thể đặt diều kiện, nếu "cột đó" có chứa "chữ đó" thì lấy, không thì bỏ qua. Mình nghĩ bạn làm được điều này.
 
Lần chỉnh sửa cuối:
Đã tìm ra hướng giải quyết, dùng công thức và sử dụng chức năng Gotospecial cũng ra được kết quả mỹ mãn, xin chân thành cảm ơn
 
Tôi xin lỗi đã trả lời hơi muộn vì tác giả cũng đã có cách giải, tuy nhiên, tôi muốn chia sẻ cách làm theo từng bước với hi vọng đóng góp thêm một cách làm cho những ai cần!
Bài này làm bằng công thức là được và cách làm cần qua 1 số bước với việc sử dụng công cụ lọc. Số liệu khá quy củ vì thế công thức của Excel giải quyết tốt). Cách làm cơ bản như sau:
+ Tại ô R11 bạn sử dụng công thức này: =IF(A11="Phân loại hàng:",B11,R10)
+ Tại ô S13, thêm công thức sau: =IF(OR(LEN(A13)=7,LEN(A13)=13,LEN(A13)=14),"Lọc","Bỏ")
+ Sử dụng tính năng dán công thức theo giá trị (chọn tất cả các ô có công thức trên 2 cột này, nhấn CTRL+C, sau đó dán giá trị).
+ Thiết lập bộ lọc Autofilter và lọc theo cột S với giá trị Bỏ;
+ Xóa các dòng có giá trị này sau khi lọc, bạn đã có số liệu mình cần.
Xem file đính kèm
 

File đính kèm

Web KT

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

Back
Top Bottom