Tách dữ liệu từ một bảng tổng hợp

Liên hệ QC

Phanhanhdai

Thành viên tiêu biểu
Tham gia
16/3/08
Bài viết
733
Được thích
1,876
Nghề nghiệp
Thiết kế công trình
--=--Em xin nhờ các bác giúp em. Trong bảng tổng hợp của em là tổng hợp của rất nhiều các Công ty bây giờ em muốn tách theo dõi từng công ty ra từng bảng (Từ đó em có thể làm các sheet báo cáo riêng cho từng công ty. Xin cám ơn các bác.
 

File đính kèm

Lần chỉnh sửa cuối:
--=--Em xin nhờ các bác giúp em. Trong bảng tổng hợp của em là tổng hợp của rất nhiều các Công ty bây giờ em muốn tách theo dõi từng công ty ra từng bảng (Từ đó em có thể làm các sheet báo cáo riêng cho từng công ty. Xin cám ơn các bác.
Bạn xem trong file nhé
 

File đính kèm

--=--Em xin nhờ các bác giúp em. Trong bảng tổng hợp của em là tổng hợp của rất nhiều các Công ty bây giờ em muốn tách theo dõi từng công ty ra từng bảng (Từ đó em có thể làm các sheet báo cáo riêng cho từng công ty. Xin cám ơn các bác.

THÊM CHO BẠN 1 CÁCH ĐỂ NGHIÊN CỨU
 

File đính kèm

Từ bảng tổng hợp tách dữ liệu theo 2 điều kiện

Từ hôm qua em đã đọc hai bài viết của anh boyxin và salam rồi. Nhưng em lại có một vấn đề muốn hỏi:
- Nếu bảng tách trên em tách ra sheet khác, sau đó em dùng Protection Sheet để bảo vệ sheet mới thì mỗi lần em thay đổi tên chủ đầu tư thì nó không tự động thực hiện được.
- Nếu bảng trên em tách ra theo 2 điều kiện (gồm cả công ty và theo một tháng bất kỳ nữa) thì làm thế nào?
Mong các bác có ý kiến
 
em lại có một vấn đề muốn hỏi:
- Nếu bảng tách trên em tách ra sheet khác, sau đó em dùng Protection Sheet để bảo vệ sheet mới thì mỗi lần em thay đổi tên chủ đầu tư thì nó không tự động thực hiện được.
  1. Thì cả 2 phương án đều lọc ra sheet mới rồi đó thôi
  2. Muốn thay đổi tên chủ đầu tư thì phải tạo name cho linh động và gọn để tạo list.
- Nếu bảng trên em tách ra theo 2 điều kiện (gồm cả công ty và theo một tháng bất kỳ nữa) thì làm thế nào?
Mong các bác có ý kiến
Muốn thế nào thì hãy post file lên mới có thể ... hợp lý và nhanh chóng
 
Lần chỉnh sửa cuối:
Trích dữ liệu từ bảng tổng hợp theo 2 điều kiện

Em xin trân trọng gửi đến anh boxin file của em.
 

File đính kèm

Mình muốn tự lọc được cập nhật theo hình thức sử dụng công thức

Cám ơn bạn Thu Nghi mình đã biết đến chức năng tổng hợp của lọc đặc biệt. Nhưng mình đang đi theo con đường tự cập nhật của bạn Salam và anh Boyxin vì mình thấy cách đó có thể cập nhật dữ liệu có thể nhìn được toàn cảnh rất hay.
 
Cám ơn bạn Thu Nghi mình đã biết đến chức năng tổng hợp của lọc đặc biệt. Nhưng mình đang đi theo con đường tự cập nhật của bạn Salam và anh Boyxin vì mình thấy cách đó có thể cập nhật dữ liệu có thể nhìn được toàn cảnh rất hay.

Mình gửi bạn 2 file VD tổng hợp với 4 điều kiện : file 1 sử dụng công thức thường, file 2 sử dụng công thức mảng.
Bạn nghiên cứu rồi thử làm cho VD tổng hợp 2 diều kiện của bạn xem.
Cách học hay nhất là biến cái của người khác thành cái của mình.
Thân!
 

File đính kèm

Gửi anh Boyxin và mọi người giúp hộ

Em mới bắt đầu học excel lên làm mãi mà chưa được. Anh Boyxin và các anh làm giúp em bài toán trên với. Cảm ơn các anh.
 

File đính kèm

Salam giải thích hộ mình biến "-1" trong công thức này của bạn được ko?
==MATCH("*";Sheet1!$B:$B;-1) (Hay để nó =0 nên hok hiểu).
 
Em xin trân trọng gửi đến anh boxin file của em.

boyxin tách theo nhiều điều kiện

  1. Xem công thức Name:
    • Vào Insert\Name\Define =>Chọn Name cần xem​
    • Công thức trong khung Refers to (công thức dài thì copy sang word mà đọc)​
    • Bấm chuột vào công thức (có thể) thấy vùng được chọn của name​
  2. Có 3 Button lựa chọn để lọc:
    • Button = cả năm; AllCty; Other (xem file <-> thấy tác dụng của từng cái)​
  3. Công thức hiện kết quả lọc
    • Cột B, C, D dùng 1 công thức (dùng hàm OFFSET) rồi kéo fill (copy)​
Muốn tìm hiểu thêm về cấu trúc lệnh của các công thức thì bác BNTT viết rất chi tiết, bạn tìm tại đây: Tra cứu hàm Excel

-----------------------------------------------------------------------------
To Phanhanhdai: Kiểm tra và test các trường hợp xem còn sai sót gì không nhé
To CÁC BÁC: Xem file, có ý tưởng gì hay thì góp ý thêm nha​
 

File đính kèm

Lần chỉnh sửa cuối:
Tôi đang rất cần học VBA, rất mong các bác cho một giải pháp bài này theo VBA để tôi có dịp học tập
 
Em làm thế này sao không ra, nhờ mọi người chỉ giúp chỗ sai

PHP:
Sub Loc()
    Dim iDL, i As Long, j As Long, Er As Long
    Dim Cty As String, iCty As String
    Sheet1.Range("F2:H500").ClearContents
    j = 2
    Er = Range("Sheet1!A65000").End(xlUp).Row
    For i = 2 To Er
        Cty = Range("Sheet1!E1").Value
        iCty = Range("Sheet1!B" & i & ":B" & i).Value
        Set DL = Range("Sheet1!A" & i & ":C" & i)
        Set KQ = Range("Sheet1!F" & j & ":H" & j)
        If iCty = Cty Then
            DL.Value = KQ.Value
            j = j + 1
        End If
    Next
End Sub
 

File đính kèm

Em làm thế này sao không ra, nhờ mọi người chỉ giúp chỗ sai

Bạn thử với macro sự kiện sau; Sau đó nếu còn thắc mắt thì hỏi tiếp, nhen.

PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, [E1]) Is Nothing Then
    Dim Cls As Range, Rng As Range, Rw As Long

    Set Rng = Range([B3], [B65500].End(xlUp))
    Rw = Rng.Rows.Count
    [F2].Resize(Rw, 4).ClearContents
    For Each Cls In Rng
        If Cls.Value = Target.Value Then
            Cls.Offset(, -1).Resize(, 3).Copy Destination:=Cells(Rw, "F").End(xlUp).Offset(1)
        End If
    Next Cls
 End If
End Sub
 
Cảm ơn bác ChanhTQ, Code của bác rất chuẩn rồi ah, nhưng em xin hỏi làm cách nào ghi Macro để ra được cụm từ Destination đấy ah, bởi em ghi không thấy xuất hiện cụm này?
(Em bây giờ mới có thời gian bắt đầu học chưa biết nhiều cái, mong bác và mọi người chỉ giúp)
-----
To bác ChanhTQ: Tên của bác ấn tượng, giống một người quen của em quá, vậy em xin hỏi bác ở Đội Cấn - Hà nội không ah?

Em vẫn băn khoăn muốn biết Code của mình sai ở đâu để em rút kinh nghiệm.
 
Em nhờ mọi người chỉ giúp chỗ sai

PHP:
Sub Loc()
1    Dim iDL, i As Long, j As Long, Er As Long 
    Dim Cty As String, iCty As String

3    Sheet1.Range("F2:H500").ClearContents
    j = 2
5    Er = Range("Sheet1!A65000").End(xlUp).Row
    For i = 2 To Er
7        Cty = Range("Sheet1!E1").Value
        iCty = Range("Sheet1!B" & i & ":B" & i).Value
9        Set DL = Range("Sheet1!A" & i & ":C" & i)
        Set KQ = Range("Sheet1!F" & j & ":H" & j)
11        If iCty = Cty Then
            DL.Value = KQ.Value
13            j = j + 1
        End If
15    Next
End Sub

(1) Bạn không nên xài tên biến là Er, mà nên là eR

(2) Dòng lệnh mang số 5 nên đem trên dòng số 3; Khi đó ta có thể cụ thể hoá số dòng cần xoá chỉ là bằng với eR này mà thôi;

(3) Dòng lệnh mang số 7 nên đem ra ngoài vòng lặp để tiết kiệm thời gian cho máy & cho bạn; Chứ hiện đang là: Mỗi sau 1 vòng lặp lại xác định chính cái nó đang có;

(4) Bạn đang thừa biến J

(5). . . . . .

. . . . . . .

(n) Bạn ghi macro sẽ không có từ khoá Destinatrion xuất hiện đâu; Có lẻ nó chỉ có trong ngôn ngữ VBA mà thôi; Bạn chịu khó vô Help trong VBA tìm hiểu thêm vậy.

Chúc bạn sớm thành công.
 
Cảm ơn các bác, em đã tìm ra chỗ sai rồi

PHP:
Sub Loc()
    Dim iDL, i As Long, j As Long, eR As Long
    Dim Cty As String, iCty As String
    Sheet1.Range("F2:H500").ClearContents
    eR = Range("Sheet1!A65000").End(xlUp).Row
    Cty = Range("Sheet1!E1").Value
    j = 2
    For i = 2 To eR
        iCty = Range("Sheet1!B" & i & ":B" & i).Value
        Set DL = Range("Sheet1!A" & i & ":C" & i)
        Set KQ = Range("Sheet1!F" & j & ":H" & j)
        If iCty = Cty Then
            KQ.Value = DL.Value
            j = j + 1
        End If
    Next
End Sub

Chỗ sai rất cơ bản nhất là dòng DL.Value = KQ.Value (đúng ra phải là KQ.Value = DL.Value).
(DL phải có trước rồi mới suy ra KQ --->em lại vô tình làm ngược lại)

Không biết sư phụ Ndu có tối ưu gì thêm bài này nữa không?
 
Web KT

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

Back
Top Bottom