Cần giúp: Đối chiếu số liệu rồi tính ...

Liên hệ QC

kungfu

Thành viên mới
Tham gia
26/6/07
Bài viết
10
Được thích
0
Các bác ơi, giúp em với, em có cơ sở dữ liệu kiểu thế này trong excel:
Sheet1:
Mã TênHS Điểm kỳ 1 ( Văn Toán NN)

001 A 4 6 7
002 B 5 6 8
003 c 3 5 8

Sheet2:
Mã TênHS Điểm kỳ 2 ( Văn Toán NN)

003 C 2 8 6
001 A 5 6 4
....

Em muốn làm bài toán tính điểm cả năm: Nếu Tên hoặc Mã của Sheet2 trùng với Tên hoặc Mã của Sheet1 thì cộng các điểm Văn, Toán, NN của 2 kỳ lại, ra kết quả như sau:
Mã TênHS Điểm cả năm

Các bác chú ý là thứ tự các dòng ở sheet2 không giống thứ tự ở sheet1. Cái này có khi phải dùng vòng lặp gì đó để đối chiếu cột Mã đúng không các bác? Em lại không biết về lập trình, mong các bác chỉ cho bài toán đơn giản này. Cảm ơn các bác.
 
kungfu đã viết:
Các bác ơi, giúp em với, em có cơ sở dữ liệu kiểu thế này trong excel:
Sheet1:
Mã TênHS Điểm kỳ 1 ( Văn Toán NN)

001 A 4 6 7
002 B 5 6 8
003 c 3 5 8

Sheet2:
Mã TênHS Điểm kỳ 2 ( Văn Toán NN)

003 C 2 8 6
001 A 5 6 4
....

Em muốn làm bài toán tính điểm cả năm: Nếu Tên hoặc Mã của Sheet2 trùng với Tên hoặc Mã của Sheet1 thì cộng các điểm Văn, Toán, NN của 2 kỳ lại, ra kết quả như sau:
Mã TênHS Điểm cả năm

Các bác chú ý là thứ tự các dòng ở sheet2 không giống thứ tự ở sheet1. Cái này có khi phải dùng vòng lặp gì đó để đối chiếu cột Mã đúng không các bác? Em lại không biết về lập trình, mong các bác chỉ cho bài toán đơn giản này. Cảm ơn các bác.
Cộng thế nào vậy bạn ??

Bạn thử cho ra KQ luôn của TH tren xem sao.

TH này không cần dùng VBA đâu, mấy hàm sumif và sumproduct được rồi.
Thân!
 
Bạn có thể tạo thêm 1 sheet và dùng hàm VLOOKUP. Ví dụ như ở cột 3 (ghi điểm Văn cả năm), bạn nhập công thức sau:
=(VLOOKUP($A7,Sheet2!$A$7:$E$10,3)*2+VLOOKUP($A7,Sheet1!$A$7:$E$10,3))/3.
Nếu cần làm tròn số, bạn thêm hàm ROUND vào.
 
Xin nêu ra giải pháp như sau: (Dùng cho trường hợp lấy ra tất cả các học sinh đã từng học).
- Tạo thêm sheet mới
- Copy vùng mã học sinh tại 2 sheet dán liên tiếp vào cột A trong sheet mới.
- Tại sheet mới (Lọc tất cả các mã học sinh xuất hiện):
+ Sắp xếp theo cột A
+ Công thức: B1=A1, B2=if(A2=A1;"";A2), copy công thức này cho tất cả các ô còn lại của cột B.
+ Lọc cột B lấy các dòng có dữ liệu và chuyển ra vùng khác (vùng mới).
- Tại vùng mới: Thiết lập công thức tìm kiếm điểm kì1, kì 2 theo mã. (Nếu các điểm viết liền nhau - chỉ cách nhau 1 khoảng trắng, thì cần thêm động tác tách các điểm ra các cột). Cộng các điểm tìm thấy . Khi tìm kiếm cần bẫy lỗi #NA.
Nếu Tên hoặc Mã của Sheet2 trùng với Tên hoặc Mã của Sheet1
Chỉ nên dùng mã.
 
Cảm ơn các bác, em hoa cả mắt chưa kịp đọc xem thế nào, xin lỗi các bác vì bài toán của em hơi khác nên bịa ra bài này hơi chuối, em định cho điểm cả năm bằng điểm hai kỳ cộng với nhau rồi chia 2 ấy mà. Các bác thông cảm, xin đa tạ.
 
Hiển nhiên mã HS giống nhau =>tên HS giống nhau.
Ta tạo đểm TK vào Sh3 cho đơn giản nhé, ta dùng hàm index
- Tạo name diemky1: C2:E1000 gồm các cột Văn Toán NN
- MaHS1: A2:A1000
- Tạo name diemky2: C2:E1000 gồm các cột Văn Toán NN
- MaHS2: A2:A1000
Nhấn Ctr F3 tạo name (nhớ địa chỉ $)
Tại Sh 3: điểm Văn: C2=(index(diemky1,match($a2,mahs1,0),1)+index(diemky2,match($a2,mahs2,0),1))/2
Tương tự với D2 và E2
Ghi chú: Mỗi mã HS chỉ xuất hiện 1 lần trong bảng điểm. Tạm coi cột 1,2,3 là thứ tự các môn Văn Toán NN.
Còn không bạn dùng sumif cũng cú pháp gần như vậy.
 
voda đã viết:
Bạn có thể tạo thêm 1 sheet và dùng hàm VLOOKUP. Ví dụ như ở cột 3 (ghi điểm Văn cả năm), bạn nhập công thức sau:
=(VLOOKUP($A7,Sheet2!$A$7:$E$10,3)*2+VLOOKUP($A7,Sheet1!$A$7:$E$10,3))/3.
Nếu cần làm tròn số, bạn thêm hàm ROUND vào.


Bác Voda ơi, con số 3 là mã của học sinh C à? bác giải thích cái. Nếu vậy trường em có cả ngàn học sinh thì thế nào?
 
-Cách mà mình góp ý đơn giản, dễ làm nhưng bạn phải chịu khó nhập mã của học sinh ở sheet chứa bảng điểm cuối năm.
-Con số 3 là số thứ tự cột chứa giá trị cần tìm. Vì theo mẫu của bạn, cột 3 ở sheet1 và sheet2 chứa điểm môn văn. Nếu ta tính điểm TB cả năm của môn toán, số 3 đổi thành số 4... Bạn nên tìm hiểu thêm vể hàm VLOOKUP trong phần help của excel hoặc một số bài viết trên diễn đàn.
-Nếu bạn chấp nhận cách làm này, cứ post file mẫu lên, mình sẽ làm giúp.
 
voda đã viết:
-Cách mà mình góp ý đơn giản, dễ làm nhưng bạn phải chịu khó nhập mã của học sinh ở sheet chứa bảng điểm cuối năm.
-Con số 3 là số thứ tự cột chứa giá trị cần tìm. Vì theo mẫu của bạn, cột 3 ở sheet1 và sheet2 chứa điểm môn văn. Nếu ta tính điểm TB cả năm của môn toán, số 3 đổi thành số 4... Bạn nên tìm hiểu thêm vể hàm VLOOKUP trong phần help của excel hoặc một số bài viết trên diễn đàn.
-Nếu bạn chấp nhận cách làm này, cứ post file mẫu lên, mình sẽ làm giúp.

Cảm ơn bác, thực ra CSDL của em là thế này:
Số liệu Quý I gồm các cột:

Tỉnh
Huyện
Xã (mỗi xã là 1 mã)
Điện tiêu thụ bình quân hộ
Số hộ
Khu vực

Số liệu Quý II, III, IV cũng như vậy, nhưng thứ tự các dòng là khác nhau (khoảng 10.000 xã). Em muốn cộng ở cột Điện tiêu thu bình quân hộ tương ứng theo từng xã thành sheet mới bao gồm các cột như trên để lọc theo điều kiện (vì vậy phải tra đúng mã, đúng tên xã mới cộng, còn không thì đưa tất xuống cuối và có ghi chú gì đó, ở CSDL quý I có một số xã không có mã, ở quý II có một số mã và xã mới cập nhật nên hai sheet lệch nhau).

Bác Voda hướng dẫn em cách làm nào đơn giản mà nhanh không?
 
Sao bạn ko đưa file lên cho mọi người tính toán, có phải là cụ thể hơn ko? Ở đây vừa tính lại phải vừa tưởng tượng... Nhọc quá! Hiiii
ANH TUẤN
 
Web KT
Back
Top Bottom