Tổng hợp từ sheet phụ sang sheet tổng (6 người xem)

Người dùng đang xem chủ đề này

  • Gà Công Nghệ

    Thành viên mới
    Tham gia
    11/8/15
    Bài viết
    861
    Được thích
    456
    Em xin nhờ anh chị trên diễn đàn giúp đỡ.
    - Khi nhập hay xoá dữ liệu các sheet phụ thì sheet tổng sẽ cập nhật theo.
    - Khi chọn năm sinh ô H4 (tô vàng) sheet tổng thì sẽ lọc các bé ở sheet tổng theo năm sinh.
    - Số thứ tự ở sheet tổng sẽ tự cập nhật tổng học sinh, và khi lọc năm sinh học sinh thì số thứ tự cũng lọc theo.
     

    File đính kèm

    Em xin nhờ anh chị trên diễn đàn giúp đỡ.
    - Khi nhập hay xoá dữ liệu các sheet phụ thì sheet tổng sẽ cập nhật theo.
    - Khi chọn năm sinh ô H4 (tô vàng) sheet tổng thì sẽ lọc các bé ở sheet tổng theo năm sinh.
    - Số thứ tự ở sheet tổng sẽ tự cập nhật tổng học sinh, và khi lọc năm sinh học sinh thì số thứ tự cũng lọc theo.
    Bác thử xem, cách dùng:
    - Nhập/xoá ở sheet lớp nào cũng được, quay sang sheet TONG là thấy đủ ngay.
    - Ô H4 (ô vàng) có menu xổ xuống, chọn "Tất cả" hoặc chọn năm sinh muốn xem.
    Danh sách năm tự sinh từ dữ liệu, bác không phải khai báo tay.
    - STT tự đánh lại 1, 2, 3... theo đúng danh sách đang hiện; ngay dưới bảng có
    dòng "Tổng số: n" chạy theo luôn.
     

    File đính kèm

    Bác thử xem, cách dùng:
    - Nhập/xoá ở sheet lớp nào cũng được, quay sang sheet TONG là thấy đủ ngay.
    - Ô H4 (ô vàng) có menu xổ xuống, chọn "Tất cả" hoặc chọn năm sinh muốn xem.
    Danh sách năm tự sinh từ dữ liệu, bác không phải khai báo tay.
    - STT tự đánh lại 1, 2, 3... theo đúng danh sách đang hiện; ngay dưới bảng có
    dòng "Tổng số: n" chạy theo luôn.
    Vâng à, cám ơn bạn nhiều
     
    File này cũng có thể xài Power Query và Pivlot table để tổng hợp nhanh nè. Gửi bác thêm thông tin để làm.
     

    File đính kèm

    Bác thử xem, cách dùng:
    - Nhập/xoá ở sheet lớp nào cũng được, quay sang sheet TONG là thấy đủ ngay.
    - Ô H4 (ô vàng) có menu xổ xuống, chọn "Tất cả" hoặc chọn năm sinh muốn xem.
    Danh sách năm tự sinh từ dữ liệu, bác không phải khai báo tay.
    - STT tự đánh lại 1, 2, 3... theo đúng danh sách đang hiện; ngay dưới bảng có
    dòng "Tổng số: n" chạy theo luôn.
    Bạn cho mình hỏi thêm là sheet phụ mình xoá dữ liệu nhưng không có phục hồi lại được, vậy có cách nào khi xoá dữ liệu vẫn phục hồi lại không bạn.
    Bài đã được tự động gộp:

    File này cũng có thể xài Power Query và Pivlot table để tổng hợp nhanh nè. Gửi bác thêm thông tin để làm.
    Cách này làm như thế nào vậy bạn, hướng dẫn mình với.
     
    Bạn cho mình hỏi thêm là sheet phụ mình xoá dữ liệu nhưng không có phục hồi lại được, vậy có cách nào khi xoá dữ liệu vẫn phục hồi lại không bạn.
    Bài đã được tự động gộp:


    Cách này làm như thế nào vậy bạn, hướng dẫn mình với.
    Bạn tải file về rồi kiểm tra nhé.
     

    File đính kèm

    Bạn tải file về rồi kiểm tra nhé.
    Nhờ bạn sửa lại giùm mình file này với, sếp đổi ý đưa mẫu khác và bổ sung thêm các trường gộp lại. Dữ liệu khoảng 2000 học sinh khi tổng hợp ở sheet TONG. Ở Sheet phụ mình xóa hay sửa, khi qua sheet khác quay về sheet vừa xóa vẫn phục hồi lại được.
     

    File đính kèm

    Lần chỉnh sửa cuối:
    Nhờ bạn sửa lại giùm mình file này với, sếp đổi ý đưa mẫu khác và bổ sung thêm các trường gộp lại. Dữ liệu khoảng 2000 học sinh khi tổng hợp ở sheet TONG. Ở Sheet phụ mình xóa hay sửa, khi qua sheet khác quay về sheet vừa xóa vẫn phục hồi lại được.
    Bạn kiểm tra lại . . .
     

    File đính kèm

    @Chủ bài đăng:
    File nhân sự của bạn còn thiếu 1 trường dữ liệu quan trọng; đó là [Mã NS]

    Bạn có thể chiêm nghiệm hệ mã sau (thực tiển đã xài cho 1 trương khoảng 5 ngàn học sinh)

    1788619046487.png
     
    Góp vui cho diễn đàn thêm nhộn nhịp.
    @Chủ bài đăng:
    File nhân sự của bạn còn thiếu 1 trường dữ liệu quan trọng; đó là [Mã NS]

    Bạn có thể chiêm nghiệm hệ mã sau (thực tiển đã xài cho 1 trương khoảng 5 ngàn học sinh)

    View attachment 312570
    Theo tôi là : Có lẽ cũng không cần thiết, bởi nếu học sinh đã được cập nhật trong Phần mềm QLGD của Bộ GD ĐT( Thường gọi là Phần mềm PCGD) thì đã có 1 mã số do phần mềm cấp-mã số này cũng không trùng cho toàn bộ người có tên trên phần mềm.

    Nhờ bạn sửa lại giùm mình file này với, sếp đổi ý đưa mẫu khác và bổ sung thêm các trường gộp lại. Dữ liệu khoảng 2000 học sinh khi tổng hợp ở sheet TONG. Ở Sheet phụ mình xóa hay sửa, khi qua sheet khác quay về sheet vừa xóa vẫn phục hồi lại được.
    bạn chủ thớt có thể tham khảo file dưới đây:
    Tất cả các thay đổi của các sheet (trừ sh TongHop và Sh ThayDoi) đều được ghi lại (bản log) từ ngày giờ, tên sheet, địa chỉ ô bị thay đổi, Giá trị trước khi thay đổi, gía trị sau khi thay đổi. Như vậy từ bảng theo dõi thay đổi ở các sh này ta có thể khôi phục lại.
    Trong file tôi đã đề xuất 2 lựa chọn khôi phục: Theo lần và theo ngày trên tất cả các Sh (trừ Sh Tong và ThayDoi
    + Theo lần: Bạn nhập vào ô S1 1 số nào đó: 1,2,3,... Thì số lần Undo sẽ đưa bạn trở lại giá trị của sh như lúc trước khi thay đổi bấy nhiêu lần.
    + Theo ngày: Bạn click vào ô T1 sẽ xuất hiện 1 List trong đó có liệt kê các ngày đã có sự thay đổi,==> bạn click chọn 1 dòng ===> code chạy và Undo dữ liệu lại đúng ngày trước đây(ngày Chọn) mà bạn đã sửa (xóa, thêm,...), có cả Undo và khôi phục lại đến ngày cuối cùng.
    *) Lưu ý nếu bạn xóa dòng mà dòng này nằm giữa vùng dữ liệu thì khi Undo lại dữ liệu có thể sai. (tôi cũng chưa test trường hợp này).
    + Các Tiện ích chọn năm sinh ở ô S4/Sh TONG vẫn thực hiện bình thường ( Tất cả, 2020,2021,...,2026), xóa, thêm, hoặc sửa dữ liệu ở các sh Lớp thì sh TONG cũng được cập nhật theo.
    + Trong file đã làm cả hyperlink đến các sheet.
    + Việc thay đổi dữ liệu trong phạm vi từ dòng 7:50 thì cập nhật lại vào sheet Tong, ngoài phạm vi đó thì không cập nhật .Thực ra DS học sinh 1 lớp mầm non cúng không thể quá 50 cháu.
    Hy vọng giúp được bạn phần nào.
    P/S: Code trong file có 1 phần có được sự hỗ trợ của Copylot. Rất mong nếu có ai đó ghé xem góp ý thêm để hoàn thiện.
    Còn đoạn code dùng để xóa bớt dữ liệu (ở sheet ThayDoi) sau 1 khoảng thời gian nhất định cho nhẹ file mà chán quá rồi. Thôi bỏ đi
     

    File đính kèm

    T
    Bạn cho mình hỏi thêm là sheet phụ mình xoá dữ liệu nhưng không có phục hồi lại được, vậy có cách nào khi xoá dữ liệu vẫn phục hồi lại không bạn.
    Bài đã được tự động gộp:


    Cách này làm như thế nào vậy bạn, hướng dẫn mình với.
    Trong 4rum mình có đầy đủ tài liệu, bài chia sẽ rất có tâm của các thành viên, admin. Bạn tìm và xem nhé. Mình cũng học trong này!
     
    ........Còn đoạn code dùng để xóa bớt dữ liệu (ở sheet ThayDoi) sau 1 khoảng thời gian nhất định cho nhẹ file mà chán quá rồi. Thôi bỏ đi
    Hôm nay, nhân có lúc rỗi rãi, thêm vào cho nó đủ bộ, hy vọng biết đâu có ai cần.
    Tôi cho rằng file này sẽ cần cho các thầy cô giáo nhất là các cô giáo mầm non phải phụ trách công tác PCGD.
    Mở 1 module nữa và paste code này vào.

    Mã:
    Option Explicit
    
    Sub XoaDuLieu()
    Dim i&, Lr&, t&, DayNow As Date, Rng As Range
    Dim Sh As Worksheet, ws As Worksheet
    Set Sh = Sheets("ThayDoi")
    Lr = Sh.Cells(Rows.Count, 2).End(xlUp).Row
    DayNow = Date - 10  ' Điều chỉnh chỗ này để xóa số ngày truơc ngày  hiện tại
    t = 0
    For i = Lr To 4 Step -1
        If Sh.Range("B" & i) < DayNow Then
            If Rng Is Nothing Then
                Set Rng = Sh.Rows(i)
                t = t + 1
            Else
                Set Rng = Union(Rng, Sh.Rows(i))
                t = t + 1
            End If
        End If
    Next i
    If Not Rng Is Nothing Then Rng.Delete Shift:=xlUp
    If t = 0 Then MsgBox " Khong có dong du liêu nao phu hop" Else MsgBox "Da xoa " & t & " dong du lieu cu truoc ngay hôm nay 10 ngày"
    End Sub

    và thêm đoạn này vào trong module của ThisWorkbook

    Mã:
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        XoaDuLieu
    End Sub
     
    Lần chỉnh sửa cuối:
    Cách này làm như thế nào
    Đọc và thực hành; Từ khóa QUERY hoặc M code...
    https://www.giaiphapexcel.com/diend...-về-power-query-và-m-code-của-ptm0412.162699/
    Áp dụng cho bài này:
    Mã:
    let
        Source = Excel.Workbook(File.Contents("C:\Users\Ms.Vy\Downloads\DS HS GPE.xlsx"), null, true),
        FilteredRows = Table.SelectRows(Source, each Text.StartsWith([Name], "N") or Text.StartsWith([Name], "M") or Text.StartsWith([Name], "C") or Text.StartsWith([Name], "L")),
        AddCol = Table.AddColumn(FilteredRows, "ColTrans", each let
    a= [Data],
    b= Table.PromoteHeaders(Table.Skip(a,5)),
    lColName= {"Họ và tên","Nữ","Năm sinh","SĐT","GHI CHÚ","LỚP"},
    c= Table.SelectColumns(b,lColName),
    d= Table.SelectRows(c, each ([Họ và tên] <> null and  not Text.Contains([Họ và tên],"Giáo viên chủ nhiệm") and not Text.StartsWith([Họ và tên] ,"Tổng số:"))),
    e= Table.AddColumn(d,"YYYY", each Text.End(Text.From([Năm sinh]),4)),
    f= Table.TransformColumns(e,{}, each Text.From(_))
    in
    e),
        TongHop = Table.Combine(AddCol[ColTrans]),
        Type = Table.TransformColumns(TongHop, {}, Text.From)
    in
        Type
     

    File đính kèm

    Đọc và thực hành; Từ khóa QUERY hoặc M code...
    https://www.giaiphapexcel.com/diendan/threads/danh-sách-các-tài-liệu-và-bài-thực-hành-về-power-query-và-m-code-của-ptm0412.162699/
    Áp dụng cho bài này:
    Mã:
    let
        Source = Excel.Workbook(File.Contents("C:\Users\Ms.Vy\Downloads\DS HS GPE.xlsx"), null, true),
        FilteredRows = Table.SelectRows(Source, each Text.StartsWith([Name], "N") or Text.StartsWith([Name], "M") or Text.StartsWith([Name], "C") or Text.StartsWith([Name], "L")),
        AddCol = Table.AddColumn(FilteredRows, "ColTrans", each let
    a= [Data],
    b= Table.PromoteHeaders(Table.Skip(a,5)),
    lColName= {"Họ và tên","Nữ","Năm sinh","SĐT","GHI CHÚ","LỚP"},
    c= Table.SelectColumns(b,lColName),
    d= Table.SelectRows(c, each ([Họ và tên] <> null and  not Text.Contains([Họ và tên],"Giáo viên chủ nhiệm") and not Text.StartsWith([Họ và tên] ,"Tổng số:"))),
    e= Table.AddColumn(d,"YYYY", each Text.End(Text.From([Năm sinh]),4)),
    f= Table.TransformColumns(e,{}, each Text.From(_))
    in
    e),
        TongHop = Table.Combine(AddCol[ColTrans]),
        Type = Table.TransformColumns(TongHop, {}, Text.From)
    in
        Type
    Đây mới là Mcode của dân chuyên này. Còn em chỉ Xài UI, cái nào k thuận mắt thì chỉnh sửa lại một xíu thôi. Múa rìu qua mắt thợ là chính kkk
     
    Hôm nay, nhân có lúc rỗi rãi, thêm vào cho nó đủ bộ, hy vọng biết đâu có ai cần.
    Tôi cho rằng file này sẽ cần cho các thầy cô giáo nhất là các cô giáo mầm non phải phụ trách công tác PCGD.
    Mở 1 module nữa và paste code này vào.

    Mã:
    Option Explicit
    
    Sub XoaDuLieu()
    Dim i&, Lr&, t&, DayNow As Date, Rng As Range
    Dim Sh As Worksheet, ws As Worksheet
    Set Sh = Sheets("ThayDoi")
    Lr = Sh.Cells(Rows.Count, 2).End(xlUp).Row
    DayNow = Date - 10  ' Điều chỉnh chỗ này để xóa số ngày truơc ngày  hiện tại
    t = 0
    For i = Lr To 4 Step -1
        If Sh.Range("B" & i) < DayNow Then
            If Rng Is Nothing Then
                Set Rng = Sh.Rows(i)
                t = t + 1
            Else
                Set Rng = Union(Rng, Sh.Rows(i))
                t = t + 1
            End If
        End If
    Next i
    If Not Rng Is Nothing Then Rng.Delete Shift:=xlUp
    If t = 0 Then MsgBox " Khong có dong du liêu nao phu hop" Else MsgBox "Da xoa " & t & " dong du lieu cu truoc ngay hôm nay 10 ngày"
    End Sub

    và thêm đoạn này vào trong module của ThisWorkbook

    Mã:
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        XoaDuLieu
    End Sub
    Em có thêm nhiều cột (em tô màu xanh ở sheet phụ) anh có thể hỗ trợ code đến các cột tô màu xanh và sheet tổng lại giùm em với (sheet tổng em thêm cột không được). Em xin cám ơn.
     

    File đính kèm

    Em có thêm nhiều cột (em tô màu xanh ở sheet phụ) anh có thể hỗ trợ code đến các cột tô màu xanh và sheet tổng lại giùm em với (sheet tổng em thêm cột không được). Em xin cám ơn.
    Trả bài:
    Tôi đã thêm vào cho bạn:định dạng 2 cột số điện thoại ở Sh Tong là 10 số (có số 0 là số đầu tiện : 0########); Cố định ngăn để khi lăn chuột không cuộn mất các dòng tiêu đề.
    Bài này có thể từ Sh TONG nhập ngược lại các sheet có tên ở cột LOP. (sẽ rất là cần thiết khi sửa chữa dữ liệu trên sh TONG mà không cần sửa lại trên sh có tên ở cột LOP)
     

    File đính kèm

    Trả bài:
    Tôi đã thêm vào cho bạn:định dạng 2 cột số điện thoại ở Sh Tong là 10 số (có số 0 là số đầu tiện : 0########); Cố định ngăn để khi lăn chuột không cuộn mất các dòng tiêu đề.
    Bài này có thể từ Sh TONG nhập ngược lại các sheet có tên ở cột LOP. (sẽ rất là cần thiết khi sửa chữa dữ liệu trên sh TONG mà không cần sửa lại trên sh có tên ở cột LOP)
    Anh ơi, ở phần địa chỉ nhà đưa ra mẫu kêu tách ra, cột G6 bây giờ chèn thêm 2 cột rồi gộp lại (gộp 3 cột thành 1 cột, địa chỉ nhà tách ra gồm có: tổ, ấp, xã). Anh có thể hỗ trợ giùm em với anh.
     
    Anh ơi, ở phần địa chỉ nhà đưa ra mẫu kêu tách ra, cột G6 bây giờ chèn thêm 2 cột rồi gộp lại (gộp 3 cột thành 1 cột, địa chỉ nhà tách ra gồm có: tổ, ấp, xã). Anh có thể hỗ trợ giùm em với anh.
    Bạn gủi file mới sửa lại theo yêu cầu của bạn (còn code cũ) lên nhé để tôi sửa lại từ đó. file cũ trên máy tôi đã xóa rồi. Giải thích kết quả mong muốn càng tỷ mỉ càng tốt nhé.
    Tôi vừa xem lại. Rất may là vẫn còn bản cũ .
    Theo tôi hiểu thì các sheets LOP thì cột G (Chỗ ở Số nhà, tổ, ấp (khu phố), xã (phường, thị trấn), huyện, thị) được tách thành 3 cột gồm : Số nhà; Và tổ, ấp (khu phố); và xã (phường, thị trấn), huyện, thị). còn ở sheet Tổng thì vẫn giữ nguyên (tức là gộp 3 cột kia của các sheet LOP lại.
     
    Lần chỉnh sửa cuối:
    Bạn gủi file mới sửa lại theo yêu cầu của bạn (còn code cũ) lên nhé để tôi sửa lại từ đó. file cũ trên máy tôi đã xóa rồi. Giải thích kết quả mong muốn càng tỷ mỉ càng tốt nhé.
    em có chèn thêm vài cột em tô màu vàng, em gửi anh xem giùm em với
     

    File đính kèm

    em có chèn thêm vài cột em tô màu vàng, em gửi anh xem giùm em với
    Trong file bạn vừa gửi tôi thấy:
    1/Các cột G đến I là nối thông ô không có tên của từng cột và G7:I7 thì nối thông ô (mergeCell) ở cả sh TONG và các sh LOP. do vậy code sẽ không hiểu được. Nếu G7:I7 ở các sh này có tên hoặc số thì sẽ làm được.
    2/ Và thấy cũng hơi vô lý là cũ là Cột G (G6=Chỗ ở Số nhà, tổ, ấp (khu phố), xã (phường, thị trấn), huyện, thị) và mới là nối thông ô Từ G6:I6 và có giá trị như trên. đó là địa chỉ của học sinh, vậy các cột W:Z thì là địa chỉ cụ thể của ai? Phải chăng là địa chỉ của Cha(mẹ) hoặc người đỡ đầu? và nếu chỗ ở của Cha(mẹ).. thì nếu là trẻ trong độ tuổi mầm non thì có bao giờ chỗ ở của trẻ khác với chỗ ở của Cha (mẹ) hoặc người đỡ đầu? Theo tôi thì được biết thì chỉ có bé Tý con của chị Dậu (Tắt đèn-Ngô Tất Tố) phải đi ở cho Bá kiến mới có địa chỉ chỗ ở khác với chỗ ở của Cha (mẹ).
    3/cột S=Số điện thoại; cột AD cũng là số diện thoại; và cột AH cũng là số điện thoại 1: Cho rằng Số Đt ở cột AD là số của Hiệu trưởng (bên cạnh -cột AC = Hiệu trưởng 1) , vậy cho hỏi : Số Đt ở cột S và cột AD là của phụ huynh hay của học sinh hay của giáo viên?
    Nếu đả thông được vấn đề 1 nêu trên (đặt tên cho các cột ) thì sửa lại code cũng không còn khó nữa.
     
    Lần chỉnh sửa cuối:
    em có chèn thêm vài cột em tô màu vàng, em gửi anh xem giùm em với
    Trả bài:
    File của bạn không đồng nhất ở hàng tiêu đề. Có sheet có cột thừa, có sheet thì tiêu đề nằm ở dòng khác với các sheet khác. phần này tôi giữ nguyên.
    Tôi chỉ Paste dòng tiêu đề của sheet TONG và dòng tiêu đề các Sh để đảm bảo đồng nhất.
    Lưu ý bạn không được xóa hoặc thay đổi dòng thứ tự các cột (phía dưới dòng tiêu đề), nếu xóa code chạy sẽ sai kết quả.
     

    File đính kèm

    Trong file bạn vừa gửi tôi thấy:
    1/Các cột G đến I là nối thông ô không có tên của từng cột và G7:I7 thì nối thông ô (mergeCell) ở cả sh TONG và các sh LOP. do vậy code sẽ không hiểu được. Nếu G7:I7 ở các sh này có tên hoặc số thì sẽ làm được.
    2/ Và thấy cũng hơi vô lý là cũ là Cột G (G6=Chỗ ở Số nhà, tổ, ấp (khu phố), xã (phường, thị trấn), huyện, thị) và mới là nối thông ô Từ G6:I6 và có giá trị như trên. đó là địa chỉ của học sinh, vậy các cột W:Z thì là địa chỉ cụ thể của ai? Phải chăng là địa chỉ của Cha(mẹ) hoặc người đỡ đầu? và nếu chỗ ở của Cha(mẹ).. thì nếu là trẻ trong độ tuổi mầm non thì có bao giờ chỗ ở của trẻ khác với chỗ ở của Cha (mẹ) hoặc người đỡ đầu? Theo tôi thì được biết thì chỉ có bé Tý con của chị Dậu (Tắt đèn-Ngô Tất Tố) phải đi ở cho Bá kiến mới có địa chỉ chỗ ở khác với chỗ ở của Cha (mẹ).
    3/cột S=Số điện thoại; cột AD cũng là số diện thoại; và cột AH cũng là số điện thoại 1: Cho rằng Số Đt ở cột AD là số của Hiệu trưởng (bên cạnh -cột AC = Hiệu trưởng 1) , vậy cho hỏi : Số Đt ở cột S và cột AD là của phụ huynh hay của học sinh hay của giáo viên?
    Nếu đả thông được vấn đề 1 nêu trên (đặt tên cho các cột ) thì sửa lại code cũng không còn khó nữa.
    Dạ, vâng. Em có sửa lại anh xem hộ giùm em với ạ. Cột Lớp code cũ cột P giờ thành cột T, dữ liệu cập nhật đến cột AD.
     

    File đính kèm

    Dạ, vâng. Em có sửa lại anh xem hộ giùm em với ạ. Cột Lớp code cũ cột P giờ thành cột T, dữ liệu cập nhật đến cột AD.
    Bạn gửi tôi cái file không phải là file tôi gửi ở #23. Ở file ấy tôi đã sửa code để bạn có cấu trúc như thế nào ở sheet TONG thì chỉ cần nhấn nút "Paste Tiêu đề..." code ở module 3 (sub PasteTieuDe) sẽ chạy và Tiêu đề các sheet LOP sẽ đồng nhất theo như tiêu đề ấy.
    Code trong file đã tính đến trường hợp bạn thay đổi vị trí các cột thì kết quả trả về vẫn đúng.
    Như vậy bạn có thể thay đổi vị trí tiêu đề ở cả sh Tong và các sheet LOP (cột này đổi thành cột khác) thì vẫn cứ OK.

    File gửi kèm dưới đây sẽ luôn cho kết quả đúng cho dù bạn có chèn thêm hàng thêm cột
     

    File đính kèm

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

    Back
    Top Bottom