Điền dữ liệu Sheet này sang sheet kia

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

canthoq

Thành viên chính thức
Tham gia
10/2/11
Bài viết
62
Được thích
4
Bài trong file đính kèm, nhờ các bác giúp dùm. Cảm ơn!
 
Nếu các bác chưa hiểu thì mời các bác xem file tiếp
 
Bài này trong tầm tay của các bác vậy mà không ai giải quyết dùm mình. Hic, nếu chưa hiểu thì cho ý kiến để mình nói thêm. Cảm ơn
 
Bài này trong tầm tay của các bác vậy mà không ai giải quyết dùm mình. Hic, nếu chưa hiểu thì cho ý kiến để mình nói thêm. Cảm ơn

Không hiểu vì sao mình không tải được File của bạn nhỉ
(bạn gửi qua E_mail cho mình thử nhé)
 
Mình đã gữi cho bạn xong rồi bạn giúp dùm mình nha
 
Điền dữ liêu

Các bác xem file này thử coi có được không ah.
 
Bạn sử dụng hàm tự tạo này:
PHP:
Function TenSheet(Cll As Range) As String
    TenSheet = Cll.Parent.Name
End Function
Khi đó, tại các sheet 6a1, 6a2,..., bạn sử dụng các công thức sau:
D2=TenSheet(A1)
H2=INDEX('TRANG DAU'!B15:B21,MATCH("x",OFFSET('TRANG DAU'!B15,0,MATCH(D2,'TRANG DAU'!C14:J14,0),7,1),0))
Lưu ý là tên các sheet 6a1, 6a2,... phải được đặt trùng với tên lớp trên sheet TRANG DAU
 

File đính kèm

Chổ Tên lớp ô 6a1,6a2,6a3. Mình không dùng code được không anh NghiaPhuc
 
Chổ Tên lớp ô 6a1,6a2,6a3. Mình không dùng code được không anh NghiaPhuc
Mình không biết liệu dùng hàm sẵn có của Excel có lấy được tên sheet hay không. Mình không có cách nào khác mới phải dùng đến VBA.
Với cách xử lý trên của mình, nếu kích thước bảng ở TRANG DAU thay đổi (thêm hay bớt giáo viên/lớp), bạn có thể dùng 2 Name động sau:
DSGV=OFFSET('TRANG DAU'!$B$15,,,COUNTA('TRANG DAU'!$B:$B)-2,1)
DSLop=OFFSET('TRANG DAU'!$C$14,,,1,COUNTA('TRANG DAU'!$14:$14)-2)
Khi đó, công thức tại ô H2 trên các sheet 6a1, 6a2,... sẽ là:
=INDEX(DSGV,MATCH("x",OFFSET('TRANG DAU'!$B$15,0,MATCH(D2,DSLop,0),7,1),0))
 

File đính kèm

Ah. Cảm ơn anh Nghiaphuc nhiều. Chúc bạn thành công trên sự nghiệp
 
Mình không biết liệu dùng hàm sẵn có của Excel có lấy được tên sheet hay không. Mình không có cách nào khác mới phải dùng đến VBA.
Với cách xử lý trên của mình, nếu kích thước bảng ở TRANG DAU thay đổi (thêm hay bớt giáo viên/lớp), bạn có thể dùng 2 Name động sau:
DSGV=OFFSET('TRANG DAU'!$B$15,,,COUNTA('TRANG DAU'!$B:$B)-2,1)
DSLop=OFFSET('TRANG DAU'!$C$14,,,1,COUNTA('TRANG DAU'!$14:$14)-2)
Khi đó, công thức tại ô H2 trên các sheet 6a1, 6a2,... sẽ là:
=INDEX(DSGV,MATCH("x",OFFSET('TRANG DAU'!$B$15,0,MATCH(D2,DSLop,0),7,1),0))
SAO KHÔNG DÙNG CT NÀY CHO CÁC SHEET MÀ PHẢI DÙNG 2 NAME RỒI LẠI CÔNG THỨC HẢ NGHĨA PHÚC
PHP:
D2=RIGHT(CELL("filename",A1),3)
PHP:
H2=OFFSET('Trang Dau'!$B$14,MATCH("X",OFFSET('Trang Dau'!$B$14,,MATCH(RIGHT(CELL("filename",A1),3),'Trang Dau'!$C$14:$J$14,0),COUNTA('Trang Dau'!$B$14:$B$21)),0)-1,,)
HOẶC DÙNG 1 NAMES DUY NHẤT
NAME GIAOVIEN
PHP:
=OFFSET('Trang Dau'!$B$14,MATCH("X",OFFSET('Trang Dau'!$B$14,,MATCH(RIGHT(CELL("filename"),3),'Trang Dau'!$C$14:$J$14,0),COUNTA('Trang Dau'!$B$14:$B$21)),0)-1,,)
H2 =GIAOVIEN
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom