Tổng hợp từ sheet phụ sang sheet tổng (1 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
855
Đượ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

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

Back
Top Bottom