Tập hợp dữ liệu nhiều sheet (hỗ trợ)

  • Thread starter Thread starter vudao
  • Ngày gửi Ngày gửi
Liên hệ QC

vudao

Thành viên mới
Tham gia
23/11/09
Bài viết
36
Được thích
3
Dear các anh chị GPE
em đang có file mẫu thế này, em muốn tập hợp tất cả những mã hàng có phát sinh từ các sheet (số) về sheet(All)
trong sheet (All) em làm mẫu dữ liệu em cần tập hợp tương tự từ các sheet khác.
em xin cám ơn
 

File đính kèm

Dear các anh chị GPE
em đang có file mẫu thế này, em muốn tập hợp tất cả những mã hàng có phát sinh từ các sheet (số) về sheet(All)
trong sheet (All) em làm mẫu dữ liệu em cần tập hợp tương tự từ các sheet khác.
em xin cám ơn
Để xem ai giải bài này bằng công thức.Mà tại sao không lấy các giá trị ở giữa vậy.
 
Để xem ai giải bài này bằng công thức.Mà tại sao không lấy các giá trị ở giữa vậy.
Cám ơn bạn đã góp ý.
công thức hay VBA đều được cả.
trả lời câu hỏi của bạn : minh cần lấy các giá trị trong các ngày của bảng bên phải, nếu nhiều ngày thì sẽ chèn thêm xuống dưới cũng 1 mã hàng.
mình muốn nó copy ra theo từng ngày.
xin cám ơn
 
Dear các anh chị GPE
em đang có file mẫu thế này, em muốn tập hợp tất cả những mã hàng có phát sinh từ các sheet (số) về sheet(All)
trong sheet (All) em làm mẫu dữ liệu em cần tập hợp tương tự từ các sheet khác.
em xin cám ơn
Tôi không xem kỹ nên chót code, thôi đành up lên vậy
Do bạn không nói rõ là lấy dữ liệu theo tiêu chí nào nên tôi (lấy tạm tiêu chí là Ô B1, B2 /Sh ALL) và các loại định dạng cho các cột bạn tự chỉnh, nhé : Đại khái code cơ bản như sau:
Mã:
For each Ws in WorkSheets     'Quét chọn lần lượt các sheet nêu Không phải là "ALL" thì
If Ws.name<>"ALL" then
       'tìm dòng cuối có dữ liệu
        Lấy vùng "B9:K"&Lr gán vào mảng
         Duyệt từng dòng trong mảng đó
........
lấy dữ liệu đưa vào mảng KQ
end If
Next Ws
gán xuống sheet
End Sub
Xem file đính kèm. nhấn vào mặt cười để xem kết quả từ A15/Sh ALL
 

File đính kèm

Tôi không xem kỹ nên chót code, thôi đành up lên vậy
Do bạn không nói rõ là lấy dữ liệu theo tiêu chí nào nên tôi (lấy tạm tiêu chí là Ô B1, B2 /Sh ALL) và các loại định dạng cho các cột bạn tự chỉnh, nhé : Đại khái code cơ bản như sau:
Mã:
For each Ws in WorkSheets     'Quét chọn lần lượt các sheet nêu Không phải là "ALL" thì
If Ws.name<>"ALL" then
       'tìm dòng cuối có dữ liệu
        Lấy vùng "B9:K"&Lr gán vào mảng
         Duyệt từng dòng trong mảng đó
........
lấy dữ liệu đưa vào mảng KQ
end If
Next Ws
gán xuống sheet
End Sub
Xem file đính kèm. nhấn vào mặt cười để xem kết quả từ A15/Sh ALL
cám ơn bạn.
yêu cầu của mình là lọc ra được theo từng sheet với các số "lần" về
trong file của mình gửi trên sheet(All) có 2 dòng tô đỏ đó, tương ứng với 2 lần về cùng 1 mã hàng bên sheet(1943)
 
Cám ơn bạn đã góp ý.
công thức hay VBA đều được cả.
trả lời câu hỏi của bạn : minh cần lấy các giá trị trong các ngày của bảng bên phải, nếu nhiều ngày thì sẽ chèn thêm xuống dưới cũng 1 mã hàng.
mình muốn nó copy ra theo từng ngày.
xin cám ơn
Cho cái kết quả chuẩn của sheets 1943 đã được tách ngày xem nào.
 
cám ơn bạn.
yêu cầu của mình là lọc ra được theo từng sheet với các số "lần" về
trong file của mình gửi trên sheet(All) có 2 dòng tô đỏ đó, tương ứng với 2 lần về cùng 1 mã hàng bên sheet(1943)
Bạn nên mô tả ro tiêu chí cần lọc (như bạn nói ở bài #5 là Cột G có dữ liệu -Đúng không? và G... = 2 , 5. thì là nhập 2 lần, 5 lần... đúng không?) tránh để người đọc bài muốn giúp họ phải đoán mò ý định của chủ thớt.
 
Cho cái kết quả chuẩn của sheets 1943 đã được tách ngày xem nào.
Ví dụ:
Sheet(1943) mã hàng D5FA6-E92F7-00 tổng số lượng về 100
Nhưng lại về 2 ngày là ngày 1 và 2 mỗi lần về số lượng 50
em có tô đỏ bên sheet(All) và sheet(1943)
Bài đã được tự động gộp:

Bạn nên mô tả ro tiêu chí cần lọc (như bạn nói ở bài #5 là Cột G có dữ liệu -Đúng không? và G... = 2 , 5. thì là nhập 2 lần, 5 lần... đúng không?) tránh để người đọc bài muốn giúp họ phải đoán mò ý định của chủ thớt.
bên sheet(1943) có vùng để ngày 1 đến 25 đó huynh ơi.
Số dòng của mã nguyên liệu tương ứng với số lần về
trong vùng em tô đỏ thì tổng nguyên liệu về là 100 và về trong 2 lần
 

File đính kèm

cám ơn bạn.
yêu cầu của mình là lọc ra được theo từng sheet với các số "lần" về
trong file của mình gửi trên sheet(All) có 2 dòng tô đỏ đó, tương ứng với 2 lần về cùng 1 mã hàng bên sheet(1943)

Ví dụ:
Sheet(1943) mã hàng D5FA6-E92F7-00 tổng số lượng về 100
Nhưng lại về 2 ngày là ngày 1 và 2 mỗi lần về số lượng 50
em có tô đỏ bên sheet(All) và sheet(1943)
Bài đã được tự động gộp:


bên sheet(1943) có vùng để ngày 1 đến 25 đó huynh ơi.
Số dòng của mã nguyên liệu tương ứng với số lần về
trong vùng em tô đỏ thì tổng nguyên liệu về là 100 và về trong 2 lần
Do file của bạn toàn là tiếng Nhật do vậy....
Bạn xem lại file. Tôi chịu thua với định dạng file của bạn. Tôi để kết quả có cả dòng chứa dữ liệu của sh gốc đê bạn đõi chiếu cho tiện.
 

File đính kèm

Do file của bạn toàn là tiếng Nhật do vậy....
Bạn xem lại file. Tôi chịu thua với định dạng file của bạn. Tôi để kết quả có cả dòng chứa dữ liệu của sh gốc đê bạn đõi chiếu cho tiện.
dạ cám ơn sự giúp đỡ nhiệt tình của anh
trong sheet(All) là kết quả e mong muốn khi lọc ở sheet(1943)
Số em cần lấy theo mã hàng và ngày tại vùng M9:AK495
file em gửi là kết quả đúng sau khi lọc ở sheet(1943)
chứ không phải lấy cột số liệu như file a gửi
xin cám ơn
 
dạ cám ơn sự giúp đỡ nhiệt tình của anh
trong sheet(All) là kết quả e mong muốn khi lọc ở sheet(1943)
Số em cần lấy theo mã hàng và ngày tại vùng M9:AK495
file em gửi là kết quả đúng sau khi lọc ở sheet(1943)
chứ không phải lấy cột số liệu như file a gửi
xin cám ơn
Vậy tiêu chí lọc của bạn LÀ GÌ? Cái bảng bên cạnh đó (M9:AK...) có trước hay bảng (B9:K...) có trước
Tôi cũng dừng ở đây. và lót dép ngồi chờ xem ai hiểu được ý bạn và giải được bài này mà không phải đoán mò.
 
Dear các anh chị GPE
em đang có file mẫu thế này, em muốn tập hợp tất cả những mã hàng có phát sinh từ các sheet (số) về sheet(All)
trong sheet (All) em làm mẫu dữ liệu em cần tập hợp tương tự từ các sheet khác.
em xin cám ơn
Chạy code . . .
Mã:
Sub ABC()
  Dim i&, j&, c&, sCol&, k&, shName$
  Dim Arr(), aDate(), Res(), Ws As Worksheet

  sCol = 25 'So cot Ngay
  ReDim Res(1 To 10000, 1 To 9)
  For Each Ws In Worksheets
    shName = Ws.Name
    If shName <> "ALL" Then
      i = Ws.Cells(Rows.Count, 2).End(xlUp).Row
      If i > 8 Then
        Arr = Ws.Range("B9:K" & i).Value
        aDate = Ws.Range("M9:M" & i).Resize(, sCol).Value
        For i = 1 To UBound(Arr)
          If Arr(i, 6) > 0 Then
            For j = 1 To sCol
              If aDate(i, j) <> Empty Then
                k = k + 1
                Res(k, 1) = shName
                Res(k, 9) = aDate(i, j)
                For c = 2 To 6
                  Res(k, c) = Arr(i, c - 1)
                Next c
              End If
            Next j
          End If
        Next i
      End If
    End If
  Next Ws
  Sheets("All").Range("A5").Resize(10000, 9).ClearContents
  If k Then Sheets("All").Range("A5").Resize(k, 9) = Res
End Sub
 
Chạy code . . .
Mã:
Sub ABC()
  Dim i&, j&, c&, sCol&, k&, shName$
  Dim Arr(), aDate(), Res(), Ws As Worksheet

  sCol = 25 'So cot Ngay
  ReDim Res(1 To 10000, 1 To 9)
  For Each Ws In Worksheets
    shName = Ws.Name
    If shName <> "ALL" Then
      i = Ws.Cells(Rows.Count, 2).End(xlUp).Row
      If i > 8 Then
        Arr = Ws.Range("B9:K" & i).Value
        aDate = Ws.Range("M9:M" & i).Resize(, sCol).Value
        For i = 1 To UBound(Arr)
          If Arr(i, 6) > 0 Then
            For j = 1 To sCol
              If aDate(i, j) <> Empty Then
                k = k + 1
                Res(k, 1) = shName
                Res(k, 9) = aDate(i, j)
                For c = 2 To 6
                  Res(k, c) = Arr(i, c - 1)
                Next c
              End If
            Next j
          End If
        Next i
      End If
    End If
  Next Ws
  Sheets("All").Range("A5").Resize(10000, 9).ClearContents
  If k Then Sheets("All").Range("A5").Resize(k, 9) = Res
End Sub
Cám ơn anh, code này chạy đúng như em yêu cầu ạ.
xin cám ơn các anh chị đã góp ý.
 
Web KT

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

Back
Top Bottom