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
Function TenSheet(Cll As Range) As String
TenSheet = Cll.Parent.Name
End Function
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.Chổ Tên lớp ô 6a1,6a2,6a3. Mình không dùng code được không anh NghiaPhuc
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ÚCMì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))
D2=RIGHT(CELL("filename",A1),3)
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,,)
=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,,)