Sở giáo dục và đào tạo Tr-ờng THPT hàm rồng Sáng kiến kinh nghiệm Đề tài: “Sử dụng một số hàm Excel áp dụng cho công việc phân công giám thị trong kỳ thi tốt nghiệp THPT” Ng-ời thực hi
Trang 1Sở giáo dục và đào tạo
Tr-ờng THPT hàm rồng
Sáng kiến kinh nghiệm
Đề tài:
“Sử dụng một số hàm Excel áp dụng cho công việc phân
công giám thị trong kỳ thi tốt nghiệp THPT”
Ng-ời thực hiện: Nguyễn Th-ợng Thiên Tổ: Toán - Tin
Thanh hoá tháng 5 năm 2011
Trang 2Đặt vấn đề
Trong các công việc của của cấp học THPT thì thi và kiểm tra đánh giá chất l-ợng
là một trong những hoạt động có thể nói có ý nghĩa rất quan trọng Trong một năm học th-ờng diễn ra rất nhiều kỳ thi và đặc biệt là kỳ thi quốc gia tốt nghiệp THPT Trong kỳ này th-ờng có nhiều khâu nh-ng tôi chỉ vận dụng kiến thức bộ môn tin học ứng dụng để thực hiện công việc đó là giúp các th- ký của hội đồng thi tốt nghiệp phân công giám thị
đ-ợc thuận lợi với những ràng buộc của quy chế thi đó là: trong một hội đồng thi các giám thị khi phân công chỉ đ-ợc gặp nhau một lần, không đ-ợc quay lại phòng cũ, không gặp ng-ời cùng đơn vị, Sau khi nghiên cứu thực tế công việc tôi có thể vận dụng một
số hàm Excel dễ dùng để thực hiện thực hiện công việc phân công giám thị Vậy tôi viết
đề tài SKKN có tên là: “Sử dụng một số hàm Excel để thực hiện phân công giám thị
trong kỳ thi tốt nghiệp THPT“
Giải quyết vấn đề:
Phần 1: Các công việc cần làm
Để thực hiện công việc phân công giám thị trên Excel cần các b-ớc nh- sau:
B-ớc 1: Tạo tệp Excel, trong tệp Excel tạo sheet1 có tên: “Danhsach” dùng để ghi danh sách các giám thị trong hội đồng
B-ớc 2: Tạo sheet2 có tên: “PCGT” trong sheet này ta dùng hàm Excel mục đích luân chuyển hoán vị các số thứ tự (STT đ-ợc coi là mã duy nhất cho giám thị) cho 6 buổi thi sao cho đúng quy chế thi tốt nghiệp
B-ớc 3: Tạo sheet3 có tên là “tinh chỉnh PCGT” mục đích sheet3 này dùng để tinh chỉnh trong những tr-ờng hợp đặc biệt, vì sao ta phải có b-ớc tinh chỉnh? bởi vì sau khi phân công một cách hoàn toàn ngẫu nhiên các giám thị cho các buổi thi ng-ời chịu trách nhiệm phân công lại phát hiện giám thị nào đó lại coi thi phòng có ng-ời thân trong gia
đình, điều này không đ-ợc chấm nhận nên buộc phải điều chỉnh bằng tay để tránh sự kiện ngẫu nhiên đã nêu
Trong sheet3 dữ liệu đ-ợc sao chép mình giá trị của ma trận trong bảng phân công của 6 buổi thi từ bên sheet2 và ta có thể điều chỉnh ngay trong buổi thi tiếp theo Do thay
đổi giám thị nên rất có thể mắc phải một số điều chỉnh sẽ sai với quy chế xếp phòng thi
đó là giám thị sẽ gặp ng-ời cùng đơn vị, gặp bạn cũ, gặp phòng cũ, Nên ta phải dùng hàm Excel để phát hiện ra lỗi này Sau khi ổn định từ những phân công trong tinh chỉnh
ta phải hoàn thiện danh sách có đầy đủ tên, đơn vị của các giám thị trong từng buổi thi Bằng cách tạo ra các sheet tiếp theo có tên là buoi1,buoi2, buoi3, buoi4, buoi5, buoi6 rồi ng-ời sử dụng chỉ quan tâm đén danh sách này, và ta dùng hàm Vlookup để thực hiện
Trang 3STT STT - ĐV - HỌ TÊN STT STT - ĐV - HỌ TÊN PH BUỔI 1 BUỔI 2 BUỔI 3 BUỔI 4 BUỔI 5 BUỔI 6
GT 1 GT 2 GT 1 GT 2 GT 1 GT 2 GT 1 GT 2 GT 1 GT 2 GT 1 GT 2
1 HR - Thái 25 DS2 - Thảo 1 1 25 27 2 3 29 31 4 5 33 35 6
2 HR - Chính 26 DS2 - Huyền 2 2 26 28 3 4 30 32 5 6 34 36 7
3 HR - Hương 27 DS2 - Hiền 3 3 27 29 4 5 31 33 6 7 35 37 8
4 HR - Hà 28 DS2 - Hương 4 4 28 30 5 6 32 34 7 8 36 38 9
5 HR - Trí 29 DS2 - Châu 5 5 29 31 6 7 33 35 8 9 37 39 10
6 HR - Kim Thoa 30 DS2 - Tú 6 6 30 32 7 8 34 36 9 10 38 40 11
7 HR - Phú 31 DS2 - Tâm HL 7 31 33 8 9 35 37 10 11 39 41 12
8 HR - Trinh 32 DS2 - Quy 8 8 32 34 9 10 36 38 11 12 40 42 13
9 HR - Linh 33 DS2 - Linh 9 9 33 35 10 11 37 39 12 13 41 43 14
10 HR - Hoa 34 DS2 - Phụng 10 10 34 36 11 12 38 40 13 14 42 44 15
11 HR - Nga 35 DS2 - Nghị 11 11 35 37 12 13 39 41 14 15 43 45 16
12 HR - Phương 36 DS2 - Phương 12 12 36 38 13 14 40 42 15 16 44 46 17
13 HR - Duyên 37 DS2 - Kim Châu HL 13 37 39 14 15 41 43 16 17 45 47 18
14 HR - Hiệp 38 DS2 - Oanh 14 14 38 40 15 16 42 44 17 18 46 48 19
15 HR -Thủy 39 DS2 - Lê Thị Viễn 15 15 39 41 16 17 43 45 18 19 47 25 20
16 HR - Trước 40 DS2 - Dũng 16 16 40 42 17 18 44 46 19 20 48 26 21
17 HR - Xuân Đào 41 DS2 - Thanh Hải 17 17 41 43 18 19 45 47 20 21 25 27 22
18 HR - Hoa 42 DS2 - Nguyệt HL 18 42 44 19 20 46 48 21 22 26 28 23
19 HR - Hạnh 43 DS2 - Quỳnh Hoa 19 19 43 45 20 21 47 25 22 23 27 29 24
20 HR - Trang 44 DS2 - Hưng 20 20 44 46 21 22 48 26 23 24 28 30 1
21 HR - Chín 45 DS2 - Nga 21 21 45 47 22 23 25 27 24 1 29 31 2
22 HR - Trí 46 DS2 - Thắng 22 22 46 48 23 24 26 28 1 2 30 32 3
23 HR - Quyết 47 DS2 - Đông 23 23 47 25 24 1 27 29 2 3 31 33 4
24 HR - Tiên 48 DS2 - Châu 24 24 48 26 1 2 28 30 3 4 32 34 5
(H×nh 1)
Trang 4Phần 2: Các hàm cụ thể cho phần 1
A Xử lý phân phòng tránh gặp ng-ời cùng đơn vị
• Trong Sheet2 để tránh 2 GT cùng đơn vị trong cùng một phòng ng-ời ta th-ờng tách danh sách ra làm 2 cột nh- trong (hình1) Nhìn vào trong bảng phân công ta thấy các STT của danh sách luôn đảo đi đảo lại ở 2 vị trí GT1(giám thị 1), GT2 (giám thị 2) trong các buổi cho nên một giám thị có thể t-ơng đối công bằng là số buổi GT1, GT2 bằng nhau
• Ta sẽ thấy công thức phân công tự động cho 2 cột GT1, GT2 ở 6 buổi nh- sau:
PHONG BUỔI 1 BUỔI 2 BUỔI 3 BUỔI 4 BUỔI 5 BUỔI 6
GT 1 GT 2 GT 1 GT 2 GT 1 GT 2 GT 1 GT 2 GT 1 GT 2 GT 1 GT 2
1 1 25 27 2 3 29 31 4 5 33 35 6
2 2 26 28 3 4 30 32 5 6 34 36 7
3 3 27 29 4 5 31 33 6 7 35 37 8
4 4 28 30 5 6 32 34 7 8 36 38 9
5 5 29 31 6 7 33 35 8 9 37 39 10
6 6 30 32 7 8 34 36 9 10 38 40 11
8 8 32 34 9 10 36 38 11 12 40 42 13
9 9 33 35 10 11 37 39 12 13 41 43 14
10 10 34 36 11 12 38 40 13 14 42 44 15
11 11 35 37 12 13 39 41 14 15 43 45 16
12 12 36 38 13 14 40 42 15 16 44 46 17
14 14 38 40 15 16 42 44 17 18 46 48 19
15 15 39 41 16 17 43 45 18 19 47 25 20
16 16 40 42 17 18 44 46 19 20 48 26 21
17 17 41 43 18 19 45 47 20 21 25 27 22
19 19 43 45 20 21 47 25 22 23 27 29 24
20 20 44 46 21 22 48 26 23 24 28 30 1
21 21 45 47 22 23 25 27 24 1 29 31 2
22 22 46 48 23 24 26 28 1 2 30 32 3
23 23 47 25 24 1 27 29 2 3 31 33 4
24 24 48 26 1 2 28 30 3 4 32 34 5
(Hinh2)
Công thức cho cột GT1 Buổi 1:
=INDEX($A$3:$A$26,1+MOD(COUNTA($A$3:$A3)+G$1-2,COUNTA($A$3:$A$26)),0)
Công thức cho cột GT2 Buổi 1:
=INDEX($C$3:$C$26,1+MOD(COUNTA($A$3:$A3)+2*G$1-3,COUNTA($A$3:$A$26)),0)
Công thức cho cột GT1 Buổi 2 :
Trang 5=INDEX($C$3:$C$26,1+MOD(COUNTA($A$3:$A3)+2*I$1-3,COUNTA($A$3:$A$26)),0)
Công thức cho cột GT2 Buổi 2 :
=INDEX($A$3:$A$26,1+MOD(COUNTA($A$3:$A3)+I$1-2,COUNTA($A$3:$A$26)),0)
Công thức cho cột GT1 Buổi 3:
=INDEX($A$3:$A$26,1+MOD(COUNTA($A$3:$A3)+K$1-2,COUNTA($A$3:$A$26)),0)
Công thức cho cột GT2 Buổi 3:
=INDEX($C$3:$C$26,1+MOD(COUNTA($A$3:$A3)+2*K$1-3,COUNTA($A$3:$A$26)),0)
Công thức cho cột GT1 Buổi 4:
=INDEX($C$3:$C$26,1+MOD(COUNTA($A$3:$A3)+2*M$1-3,COUNTA($A$3:$A$26)),0)
Công thức cho cột GT2 Buổi 4:
=INDEX($A$3:$A$26,1+MOD(COUNTA($A$3:$A3)+M$1-2,COUNTA($A$3:$A$26)),0)
Công thức cho cột GT1 Buổi 5:
=INDEX($A$3:$A$26,1+MOD(COUNTA($A$3:$A3)+O$1-2,COUNTA($A$3:$A$26)),0)
Công thức cho cột GT2 Buổi 5:
=INDEX($C$3:$C$26,1+MOD(COUNTA($A$3:$A3)+2*O$1-3,COUNTA($A$3:$A$26)),0)
Công thức cho cột GT1 Buổi 6:
=INDEX($C$3:$C$26,1+MOD(COUNTA($A$3:$A3)+2*Q$1-3,COUNTA($A$3:$A$26)),0)
Công thức cho cột GT2 Buổi 6:
= INDEX($A$3:$A$26,1+MOD(COUNTA($A$3:$A3)+Q$1-2,COUNTA($A$3:$A$26)),0)
ý nghĩa công thức:
=INDEX(“Vùng tham chiếu”,row_num,column_num,area_num)
row_num chỉ số dũng cần trả về tham chiếu
column_num chỉ số cột cần trả về tham chiếu
area_num thứ tự dóy tham chiếu cần trả về tham chiếu
Nếu column_num =0 Thì ta chỉ đi tìm kiếm trong mảng
Trong ví dụ trên
Vùng $A$3:$A$26 chứa STT1 từ 1->24 nh- hình vẽ (Hình 1)
Vùng $C$3:$C$26 chứa STT2 từ 25->48 nh- hình vẽ (Hình 1)
Do column_num =0 trong các công thức trên nên chính xác nh- chúng ta đang dò tìm các giá trị trong mảng bởi row_num thay đổi mà trong các công thứ trên đó là
Cột GT1: row_num = 1+MOD(COUNTA($A$3:$A3)+G$1-2,COUNTA($A$3:$A$26))
Cột GT2: row_num= 1+MOD(COUNTA($A$3:$A3)+2*G$1-3,COUNTA($A$3:$A$26))
Giải thích: giá trị hàng của phần tử hiện thời = 1 +
MOD(COUNTA($A$3:$A3)+G$1-2,COUNTA($A$3:$A$26))
MOD là phép chia lấy d-
Số chia là: COUNTA($A$3:$A$26) – Số phần tử đếm đ-ợc trong vùng chứa STT 1
Số bị chia là: COUNTA($A$3:$A3)+G$1-2 ;Số đếm đ-ợc từ đầu mảng đến ô hiện thời trong mảng cộng với giá trị nằm trong ô G$1 trừ đi 2 (G$1 trong công thức trên chứa số 1 nghĩa là buổi 1, các buổi sau sẽ là: 2,3,4,5,6)
Trong giá trị cột GT2 row_num =
1+MOD(COUNTA($A$3:$A3)+2*G$1-3,COUNTA($A$3:$A$26))
MOD là phép chia lấy d-
Số chia là: COUNTA($A$3:$A$26) – Số phần tử đếm đ-ợc trong vùng chứa STT 1
Trang 6Số bị chia là: COUNTA($A$3:$A3)+2*G$1-3 ;
Với 2 công thức này sẽ luân phiên phân bổ dịch chuyển các STT của 2 danh sách (hình 1) cho các cột GT1, GT2 của các các phòng trong từng buổi
B Giải quyết quá trình tinh chỉnh gặp lại phòng cũ
Bên cạnh ma trận phân công giám thị ở sheet2 “Tinh chinh PCGT” tạo ma trận khác có tên “kiểm tra gặp phòng cũ” để phát hiện việc có gặp lại phòng cũ hay không
Ta sử dụng công thức để kiểm tra giá trị trong hàng đó so với phần tử hiện thời có lớn hơn 1 hay không, nếu băng 1 thì không gặp lại phòng cũ, còn lớn hơn 1 thì gặp lại phòng
cũ yêu cầu tinh chỉnh lại
Công thức nh- sau: =COUNTIF($G3:$R3,G3)
- $G3:$R3 vùng chứa STT theo hàng ngang cho phòng 1 trong hình vẽ (Hình 2)
- G3 giá trị hiện thời
Sau khi thiết lập công thức sao chép toàn bộ ma trận “kiểm tra gặp phòng cũ” nếu các phần tử trong ma trận lớn hơn 1 thì kiểm tra việc phân công giám thị tại phòng đó
Có thể thêm công thức
=IF(OR(S3>1,T3>1,U3>1,V3>1,W3>1,X3>1,Y3>1,Z3>1,AA3>1,AB3>1,AC3>1,AD3>1),"*","") vào 1 cột cuối của ma trận này rồi ẩn toàn bộ ma trận “kiêm tra găp phòng cũ” cho gọn
C Giải quyết quá trình tinh chỉnh gặp bạn cũ
Tạo ma trận kiểm tra thứ 2 có tên “Kiểm tra gặp phòng cũ”
Tạo một ma trận ghép chuỗi STT và biến đổi thành số từ ma trận phân công (tạm gọi là
ma trận biến đổi) rồi dùng ma trận kiểm tra rà soát lại ma trận biến đổi ta sử dụng 2 công thức sau:
* Công thức chuyển t- ma trận phân công sang ma trận biến đổi:
=IF(LEN(TRIM(G3&H3))=0,0,VALUE(IF(G3<H3,G3&H3,H3&G3)))
* Công thức chuyển t- ma trận biến đổi sang ma trận kiểm tra: (Xem hình 4)
=IF(AF3=0,0,COUNTIF($AF$3:$AK$1000,AF3))
ý nghĩa:
Nếu phần tử hiện thời AF3=0, thì giá trị là 0
Nếu khác 0 thì đi đếm có điều kiện vùng $AF$3:$AK$1000 xem có bao nhiêu phần tử
giống với phần tử hiện thời ->(COUNTIF($AF$3:$AK$1000,AF3))
Nếu giá trị ma trận chỗ nào lớn hơn 1 thì kiểm tra lại sẽ là tình huống gặp lại bạn cũ
Trang 7PH
BUỔI 1 BUỔI 2 BUỔI 3 BUỔI 4 BUỔI 5 BUỔI 6 BUỔI 1 BUỔI 2 BUỔI 3 BUỔI 4 BUỔI 5 BUỔI 6 Gặp
lại phòng
cũ
GT
1
GT
2
GT
1
GT
2
GT
1
GT
2
GT
1
GT
2
GT
1
GT
2
GT
1
GT
2 GT 1
GT
2
GT
1
GT
2
GT
1
GT
2
GT
1
GT
2
GT
1
GT
2
GT
1 GT 2
1 1 25 27 2 3 29 31 4 5 33 35 6 1 1 1 1 1 1 1 1 1 1 1 1
2 2 26 28 3 4 30 32 5 6 34 36 7 1 1 1 1 1 1 1 1 1 1 1 1
3 3 27 29 4 5 31 33 6 7 35 37 8 1 1 1 1 1 1 1 1 1 1 1 1
4 4 28 30 5 6 32 34 7 8 36 38 9 1 1 1 1 1 1 1 1 1 1 1 1
HL 5 29 31 6 7 33 35 8 9 37 39 10 1 1 1 1 1 1 1 1 1 1 1 1
5 6 30 32 7 8 34 36 9 10 38 40 11 1 1 1 1 1 1 1 1 1 1 1 1
6 7 31 33 8 9 35 37 10 11 39 41 12 1 1 1 1 1 1 1 1 1 1 1 1
7 8 32 34 9 10 36 38 11 12 40 42 13 1 1 1 1 1 1 1 1 1 1 1 1
8 9 33 35 10 11 37 39 12 13 41 43 14 1 1 1 1 1 1 1 1 1 1 1 1
HL 10 34 36 11 12 38 40 13 14 42 44 15 1 1 1 1 1 1 1 1 1 1 1 1
9 11 35 37 12 13 39 41 14 15 43 45 16 1 1 1 1 1 1 1 1 1 1 1 1
10 12 36 38 13 14 40 42 15 16 44 46 17 1 1 1 1 1 1 1 1 1 1 1 1
11 13 37 39 14 15 41 43 16 17 45 47 18 1 1 1 1 1 1 1 1 1 1 1 1
12 14 38 40 15 16 42 44 17 18 46 48 19 1 1 1 1 1 1 1 1 1 1 1 1
HL 15 39 41 16 17 43 45 18 19 47 25 20 1 1 1 1 1 1 1 1 1 1 1 1
13 16 40 42 17 18 44 46 19 20 48 26 21 1 1 1 1 1 1 1 1 1 1 1 1
14 17 41 43 18 19 45 47 20 21 25 27 22 1 1 1 1 1 1 1 1 1 1 1 1
15 18 42 44 19 20 46 48 21 22 26 28 23 1 1 1 1 1 1 1 1 1 1 1 1
16 19 43 45 20 21 47 25 22 23 27 29 24 1 1 1 1 1 1 1 1 1 1 1 1
HL 20 44 46 21 22 48 26 23 24 28 30 1 1 1 1 1 1 1 1 1 1 1 1 1
17 21 45 47 22 23 25 27 24 1 29 31 2 1 1 1 1 1 1 1 1 1 1 1 1
18 22 46 48 23 24 26 28 1 2 30 32 3 1 1 1 1 1 1 1 1 1 1 1 1
19 23 47 25 24 1 27 29 2 3 31 33 4 1 1 1 1 1 1 1 1 1 1 1 1
20 24 48 26 1 2 28 30 3 4 32 34 5 1 1 1 1 1 1 1 1 1 1 1 1
(H×nh 3: ma trËn gÆp phßng cò)
Trang 8Buoi
1
Buoi
2
Buoi
3
Buoi
4
Buoi
5
Buoi
6
Buổi
1
Buổi
2
Buổi
3
Buổi
4
Buổi
5
Buổi
6
Gặp lại bạn cũ
226 328 430 532 634 736 1 1 1 1 1 1
327 429 531 633 735 837 1 1 1 1 1 1
428 530 632 734 836 938 1 1 1 1 1 1
529 631 733 835 937 1039 1 1 1 1 1 1
630 732 834 936 1038 1140 1 1 1 1 1 1
731 833 935 1037 1139 1241 1 1 1 1 1 1
832 934 1036 1138 1240 1342 1 1 1 1 1 1
933 1035 1137 1239 1341 1443 1 1 1 1 1 1
1034 1136 1238 1340 1442 1544 1 1 1 1 1 1
1135 1237 1339 1441 1543 1645 1 1 1 1 1 1
1236 1338 1440 1542 1644 1746 1 1 1 1 1 1
1337 1439 1541 1643 1745 1847 1 1 1 1 1 1
1438 1540 1642 1744 1846 1948 1 1 1 1 1 1
1539 1641 1743 1845 1947 2025 1 1 1 1 1 1
1640 1742 1844 1946 2048 2126 1 1 1 1 1 1
1741 1843 1945 2047 2125 2227 1 1 1 1 1 1
1842 1944 2046 2148 2226 2328 1 1 1 1 1 1
1943 2045 2147 2225 2327 2429 1 1 1 1 1 1
2044 2146 2248 2326 2428 130 1 1 1 1 1 1
2145 2247 2325 2427 129 231 1 1 1 1 1 1
2246 2348 2426 128 230 332 1 1 1 1 1 1
2347 2425 127 229 331 433 1 1 1 1 1 1
2448 126 228 330 432 534 1 1 1 1 1 1
(H×nh 4: ma trËn kiÓm tra gÆp b¹n cò)
Trang 9Kết thúc vấn đề
Do thời gian có hạn nên SKKN chỉ dừng lại đây, và chỉ đ-a ra các công thức cơ bản nhất là cơ sở cho việc thiết lập tệp tin Excel, còn nhiều những chi tiết khác tôi không trình bày ở đây mà chỉ thể hiện trong tệp tin Excel phục vụ cho ng-ời hoạt động tác nghiệp, rất mong đ-ợc mọi ng-ời đóng góp ý kiến phát triển và hoàn thiện SKKN để trở thành tài liệu có thể dùng đ-ợc,
Xin chân thành cảm ơn!