Giúp giùm hàm tự động lấy dữ liệu (1 người xem)

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

dangngocthuyen

Thành viên thường trực
Tham gia
14/5/08
Bài viết
218
Được thích
11
Mong mọi người giúp giùm đơn giản công thức, và lấy dữ liệu giùm: file lớp... tối giản công thức... File Thi đua toàn trường, xếp loại hạnh kiểm giúp giùm lấy dữ liệu từ các lớp qua.
Chân thành cảm ơn mọi người nhiều.
 

File đính kèm

Mọi người chỉ cần tải về là biết à, em cũng để em cầu trong file ròi... Em không rành nên cũng không biết như thế nào nữa...
 
Bác hỏi bài kiểu này chắc tới tết mới được giúp quá.
Chỉ cần tải về, mở file lên là thấy mà.
- File lớp: đây là file nhập lỗi vi phạm của học sinh.... nhưng phần tính điểm lỗi mình làm thủ công quá... mong mọi người giúp công thức tối ưu hóa, giúp công thức tính tuần tự động
- File Thi đua toàn trường: mọi người giúp lấy dữ liệu từ file lớp đưa vào giúp... không biết kết hợp VLOOK với cái gì nữa.
- File hạnh kiểm thì lấy dữ liệu từ file Thi đua đưa qua: chỉ lấy phần điểm của từng lớp thôi...
Chân thành cảm ơn mọi người
 
Chỉ cần tải về, mở file lên là thấy mà.
- File lớp: đây là file nhập lỗi vi phạm của học sinh.... nhưng phần tính điểm lỗi mình làm thủ công quá... mong mọi người giúp công thức tối ưu hóa, giúp công thức tính tuần tự động
- File Thi đua toàn trường: mọi người giúp lấy dữ liệu từ file lớp đưa vào giúp... không biết kết hợp VLOOK với cái gì nữa.
- File hạnh kiểm thì lấy dữ liệu từ file Thi đua đưa qua: chỉ lấy phần điểm của từng lớp thôi...
Chân thành cảm ơn mọi người
Hic, file dữ liệu của bạn nhiều quá, mình giúp bạn phần 1, mấy phần kia thì chịu dữ liệu nhiều quá: !$@!!!$@!!
1. File lớp: đây là file nhập lỗi vi phạm của học sinh.... nhưng phần tính điểm lỗi mình làm thủ công quá... mong mọi người giúp công thức tối ưu hóa, giúp công thức tính tuần tự động
CT tại sheet "1" lớp 6A, CT tại AR9:
Mã:
AR9=VLOOKUP(AR$8,INDIRECT("[TCTĐ.xlsx]TCTĐ!B"&MATCH(LOOKUP(2,1/($AR$7:AR$7<>""),$AR$7:AR$7),TCTĐ.xlsx!$C$7:$C$49,)&":E100"),4,0)*C9
Fill sang phải rồi fill sang xuống!!!
Bạn nhận lại file file TCTĐ, và bỏ file TCTĐ cũ đi, vì mình chỉnh một số cái!!!
Mấy lớp khác bạn làm tương tự!!!
 

File đính kèm

Lần chỉnh sửa cuối:
Hic, file dữ liệu của bạn nhiều quá, mình giúp bạn phần 1, mấy phần kia thì chịu dữ liệu nhiều quá: !$@!!!$@!!
1. File lớp: đây là file nhập lỗi vi phạm của học sinh.... nhưng phần tính điểm lỗi mình làm thủ công quá... mong mọi người giúp công thức tối ưu hóa, giúp công thức tính tuần tự động
CT tại sheet "1" lớp 6A, CT tại AR9:
Mã:
AR9=VLOOKUP(AR$8,INDIRECT("[TCTĐ.xlsx]TCTĐ!B"&MATCH(LOOKUP(2,1/($AR$7:AR$7<>""),$AR$7:AR$7),TCTĐ.xlsx!$C$7:$C$49,)&":E100"),4,0)*C9
Fill sang phải rồi fill sang xuống!!!
Bạn nhận lại file file TCTĐ, và bỏ file TCTĐ cũ đi, vì mình chỉnh một số cái!!!
Mấy lớp khác bạn làm tương tự!!!
Sao nó không hiện gì hết vậy bạn
 
chỉ làm lại 1 file của 1 lớp, mình tổ chức lại và copy sheet TCTD đưa vào file cho gọn và nếu gởi cho người khác không cần gởi theo một chùm file đi kèm, chỉ gởi 1 file là đủ. nếu không thích thì làm lại file TCTD như mẩu và chọn lại tham chiếu trong các công thức.

các file khác nên thiết kế các ô dùng để tính các bảng khác nằm cùng địa chỉ cột dòng, lúc đó dể dùng công thức hơn, nếu không thì dùng công thức thủ công như của bạn cũng được, kết quả đúng và bạn hiểu là được rồi
 

File đính kèm

chỉ làm lại 1 file của 1 lớp, mình tổ chức lại và copy sheet TCTD đưa vào file cho gọn và nếu gởi cho người khác không cần gởi theo một chùm file đi kèm, chỉ gởi 1 file là đủ. nếu không thích thì làm lại file TCTD như mẩu và chọn lại tham chiếu trong các công thức.

các file khác nên thiết kế các ô dùng để tính các bảng khác nằm cùng địa chỉ cột dòng, lúc đó dể dùng công thức hơn, nếu không thì dùng công thức thủ công như của bạn cũng được, kết quả đúng và bạn hiểu là được rồi

Cảm ơn anh nhiều... Anh có thể giúp giùm cái file Thi đua toàn trường được không, File đó là em cần nhất....
 
Mọi người giúp em file tổng kết thi đua với (lầy dữ liệu từ các file qua)
 
File của anh Hiếu CD chạy rất ổn.... Mong anh giúp thêm chỗ Tổng hợp của từng em học sinh và lấy điểm qua chỗ xếp loại hạnh kiểm với anh, chỗ lấy điểm từng tuần đó..
File anh chạy rất hay, chỉ cần thêm tuần, bấm vào hình mặt cười là nó tự động lấy điểm.
Chân thành cảm ơn anh rất nhiều.
 

File đính kèm

File của anh Hiếu CD chạy rất ổn.... Mong anh giúp thêm chỗ Tổng hợp của từng em học sinh và lấy điểm qua chỗ xếp loại hạnh kiểm với anh, chỗ lấy điểm từng tuần đó..
File anh chạy rất hay, chỉ cần thêm tuần, bấm vào hình mặt cười là nó tự động lấy điểm.
Chân thành cảm ơn anh rất nhiều.
ý bạn là lấy tổng điểm của từng lớp trong từng tuần và đưa vào sheet Xếp loại file xep loai hanh kiem?
 
ý bạn là lấy tổng điểm của từng lớp trong từng tuần và đưa vào sheet Xếp loại file xep loai hanh kiem?
- File xếp loại hạnh kiểm chỉ cần lấy điểm của từng lớp qua chỗ xếp loại trong file Xếp loại hạnh kiểm đó anh.
- Trong file 6A (em đã để sẵn sheet HK1, HK2): anh giúp em thống kê giùm từng em học sinh trong 1 học kỳ bị bao nhiêu lỗi... như vậy thì cuối học kỳ chỉ cần mở sheet đó lên là biết được em đó bao nhiêu lỗi vi phạm...
Chân thành cảm ơn anh nhiều
 
1/. file xếp loại hạnh kiểm
Chép code nầy vào file xếp loại hạnh kiểm
Mã:
Public Sub XepLoai()
Dim Darr
Dim WbMain As Workbook, FThiDua As Workbook, Fname As String
Dim i, j, CountSh As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error GoTo thoat
Set WbMain = ThisWorkbook
Fname = ThisWorkbook.Path & "\THI DUA TOAN TRUONG.xlsm"
Set FThiDua = Application.Workbooks.Open(Fname)
CountSh = FThiDua.Sheets.Count
For i = 1 To CountSh
    With FThiDua.Sheets(i & "")
        Darr = .Range("B56", .Range("B65536").End(xlUp)).Resize(, 10)
    End With
    With WbMain.ActiveSheet
        dong = 10: If i > 18 Then dong = 38
        cot = (i Mod 18) + 1
        For j = 1 To UBound(Darr)
            .Cells(dong + j, 1) = Darr(j, 1)
            .Cells(dong + j, cot) = Darr(j, 10)
        Next j
    End With
Next i
thoat:
FThiDua.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Đóng tất cả tập tin chỉ còn file xếp loại hạnh kiểm và chạy code trên

2/. file 6A sheet HK1 ô C9 nhập công thức =SUM('1:4'!C9) copy cho các ô còn lại
trong đó '1:4'! là sheet của học kỳ 1, nếu đầy đủ bạn sửa lại '1:18'!
sheet HK2 bạn làm tương tự với '19:36'!
 
Chân thảnh cảm ơn anh Hiếu nhiều lắm... Em đã làm được rồi ạ.
Có 1 vấn đề ở đây nữa là file Thiduatoantruong do anh... Khi tạo các sheet khác muốn lấy dữ liệu phải quay lại sheet 1 để chạy macro hả anh???
Anh giúp em 1 vấn đề này nữa nha: Em muốn lấy danh sách HS từng lớp từ file DSHS chung thì dùng công thức gì anh? Để sau này nếu có biến động về mặt sĩ số thì chỉ cần điều chỉnh trong file DSHS thôi....
Chân thành cảm ơn anh nhiều... Chúc anh sức khỏe
 
Chân thảnh cảm ơn anh Hiếu nhiều lắm... Em đã làm được rồi ạ.
Có 1 vấn đề ở đây nữa là file Thiduatoantruong do anh... Khi tạo các sheet khác muốn lấy dữ liệu phải quay lại sheet 1 để chạy macro hả anh???
Anh giúp em 1 vấn đề này nữa nha: Em muốn lấy danh sách HS từng lớp từ file DSHS chung thì dùng công thức gì anh? Để sau này nếu có biến động về mặt sĩ số thì chỉ cần điều chỉnh trong file DSHS thôi....
Chân thành cảm ơn anh nhiều... Chúc anh sức khỏe
File Thiduatoantruong đứng ở sheet nào chạy macro cũng được
công thức lấy tên Hs: ví dụ file 6A.xlsx sheet HK1 ô B9 ='[DSHS.xls]6A'!B5 copy cho các dòng còn lại
các sheet khác dùng công thức tương tự, hoặc lấy trực tiếp từ file 6A: B9 ='HK1'!B9
Lưu ý cách nầy có ưu điểm là tự động cập nhập, nhưng có nhiều rủi ro,
- nếu sửa trong file DSHS thì cột tên các file sẽ tính lại nhưng các cột còn lại vẫn giử nguyên và có thể không đúng với tên HS mới cập nhật
- khi mở file thường Excel yêu cầu update hơi phiền, và gởi file cho người khác thường phải kèm theo file DSHS
mình nghĩ copy và paste thủ công là ổn nhất
 
File Thiduatoantruong đứng ở sheet nào chạy macro cũng được
công thức lấy tên Hs: ví dụ file 6A.xlsx sheet HK1 ô B9 ='[DSHS.xls]6A'!B5 copy cho các dòng còn lại
các sheet khác dùng công thức tương tự, hoặc lấy trực tiếp từ file 6A: B9 ='HK1'!B9
Lưu ý cách nầy có ưu điểm là tự động cập nhập, nhưng có nhiều rủi ro,
- nếu sửa trong file DSHS thì cột tên các file sẽ tính lại nhưng các cột còn lại vẫn giử nguyên và có thể không đúng với tên HS mới cập nhật
- khi mở file thường Excel yêu cầu update hơi phiền, và gởi file cho người khác thường phải kèm theo file DSHS
mình nghĩ copy và paste thủ công là ổn nhất

Em nhớ có công thức lấy dữ liệu từ file chưa mở, thậm chí không cần bấm update luôn anh... Nhưng áp dụng đối với .xls.... E sửa lại nhưng không nhận đuôi .xlsx... Em không biết phải làm như thế nào nữa...
 
Em nhớ có công thức lấy dữ liệu từ file chưa mở, thậm chí không cần bấm update luôn anh... Nhưng áp dụng đối với .xls.... E sửa lại nhưng không nhận đuôi .xlsx... Em không biết phải làm như thế nào nữa...
công thức như thế nào? bạn gởi lên xem thử
 
Có 1 vấn đề nhỏ mong anh Hiếu xem lại.. File THI ĐUA TOÀN TRƯỜNG đó anh... Có cách nào mở lên là nó tự động chạy macro luôn không anh... Cái ngày nữa anh, nó cứ lấy ngày 29/08/2016 - 04/09/2016 (Tuần 1) không anh... Anh xem và giúp em với
 
Có 1 vấn đề nhỏ mong anh Hiếu xem lại.. File THI ĐUA TOÀN TRƯỜNG đó anh... Có cách nào mở lên là nó tự động chạy macro luôn không anh... Cái ngày nữa anh, nó cứ lấy ngày 29/08/2016 - 04/09/2016 (Tuần 1) không anh... Anh xem và giúp em với
mỗi lần mở nó chạy cũng được, trong phần This Work Book bạn chép doạn code nầy vào
Mã:
Private Sub Workbook_Open()
Call GPE
End Sub
bạn sửa code lại phần nầy để lấy ngày
Mã:
    Set Wb = Application.Workbooks.Open(Fname)
[COLOR=#ff0000]    'Ngay = Wb.Sheets("1").Range("AC5") & " - " & Wb.Sheets("1").Range("AH5")[/COLOR]
    For i = 1 To CountSh 'xet tung tuan
[COLOR=#0000ff]        Ngay = Wb.Sheets(i & "").Range("AC5") & " - " & Wb.Sheets(i & "").Range("AH5")[/COLOR]
        Carr = Wb.Sheets(i & "").Range("AR7:CC7")
        t = 8
        With WbMain.Sheets(i & "")
            .Cells(6, 5) = Ngay

xóa đoạn màu đỏ thêm đoạn màu xanh
 
Cảm ơn anh Hiếu nhiều.
Đoạn lấy ngày thì ok rồi anh.... Nhưng đoạn này
Private Sub Workbook_Open()
Call GPE
End Sub

Em đưa vô bị lỗi anh ơi.
Còn File Xếp loại Hạnh kiểm:
Public Sub XepLoai()Dim Darr
Dim WbMain As Workbook, FThiDua As Workbook, Fname As String
Dim i, j, CountSh As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error GoTo thoat
Set WbMain = ThisWorkbook
Fname = ThisWorkbook.Path & "\THI DUA TOAN TRUONG.xlsm"
Set FThiDua = Application.Workbooks.Open(Fname)
CountSh = FThiDua.Sheets.Count
For i = 1 To CountSh
With FThiDua.Sheets(i & "")
Darr = .Range("B56", .Range("B65536").End(xlUp)).Resize(, 10)
End With
With WbMain.ActiveSheet
dong = 10: If i > 18 Then dong = 38
Cot = (i Mod 18) + 1
For j = 1 To UBound(Darr)
.Cells(dong + j, 1) = Darr(j, 1)
.Cells(dong + j, Cot) = Darr(j, 10)
Next j
End With
Next i
thoat:
FThiDua.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Thì ngay chỗ Tên lớp nó lấy điểm đưa vô luôn anh
 
Lần chỉnh sửa cuối:
Cảm ơn anh Hiếu nhiều.
Đoạn lấy ngày thì ok rồi anh.... Nhưng đoạn này
Private Sub Workbook_Open()
Call GPE
End Sub

Em đưa vô bị lỗi anh ơi.
Còn File Xếp loại Hạnh kiểm:

Thì ngay chỗ Tên lớp nó lấy điểm đưa vô luôn anh

Mã:
[COLOR=#000000]Private Sub Workbook_Open()[/COLOR]
[COLOR=#000000]   Call GPE[/COLOR]
[COLOR=#000000]End Sub[/COLOR]
bạn phải chép vào vùng ThisWorkBook trong Project Explorer

Xếp loại hạnh kiểm
Mã:
    With WbMain.ActiveSheet
        dong = 10: If i > 18 Then dong = 38
[COLOR=#FF0000]        cot = (i  Mod 18) + 1[/COLOR]
        For j = 1 To UBound(Darr)
bạn sửa lại
Mã:
    With WbMain.ActiveSheet
        dong = 10: If i > 18 Then dong = 38
[COLOR=#ff0000]        cot = (i - 1 Mod 18) + 2[/COLOR]
        For j = 1 To UBound(Darr)
 
NHẤN Alt+F11 . CHỌN VIEW\PROJECT EXPLORER, đưa code vào.. lưu... điền thử dữ liệu các lớp.. khi mở lên cũng không chạy được anh...
 
NHẤN Alt+F11 . CHỌN VIEW\PROJECT EXPLORER, đưa code vào.. lưu... điền thử dữ liệu các lớp.. khi mở lên cũng không chạy được anh...
file mình chạy bình thường
bạn thêm dòng lệnh vào để kiểm tra xem có chạy không
Mã:
Private Sub Workbook_Open()
Sheets("1").Select
[H3] = "code chay OK"
Call GPE
End Sub
bạn đóng file, mở file và kiểm tra ô H3 sheet 1 nếu có "code chay OK"
là nó đã chạy mà bạn không biết
 
Cảm ơn Bác Hiếu nhiều... đã chạy OK....
 
Anh Hiếu chỉnh lại giùm em 1 chút ngay chỗ lấy dữ liệu Thi Đua Toàn Trường đi anh, em sữa lại file lớp... để có thể áp dụng cho những lớp số lượng học sinh trên 35. Mong anh giúp giùm
 

File đính kèm

Anh Hiếu chỉnh lại giùm em 1 chút ngay chỗ lấy dữ liệu Thi Đua Toàn Trường đi anh, em sữa lại file lớp... để có thể áp dụng cho những lớp số lượng học sinh trên 35. Mong anh giúp giùm
bạn sửa lại đoạn code
Mã:
            For t = 1 To 10 [COLOR=#0000ff]'[/COLOR][COLOR=#008000]Nhap diem va xep loai[/COLOR]
                .Cells(f + 55, t + 2) = Wb.Sheets(i & ""). _
                    Cells([COLOR=#ff0000]7[/COLOR] + Int((t - 1) / 2), ((t - 1) Mod 2) * 2 + 3)
            Next
sửa số 47 thành số 7
 

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

Back
Top Bottom