Bài toán Excel với các đề thì OLP

Liên hệ QC

hienclubvn

Thành viên mới
Tham gia
11/8/10
Bài viết
17
Được thích
2
Nghề nghiệp
I'm Cadet
Chào mọi người, em mới tham gia GPE, thực sự thấy 4rum rất hay, nhưng vì mới tham gia nên chưa bít khai thác kiến thức trên 4rum
Và ko bít em post nội dung ở đây có đúng với nội quy nữa ko? Nếu sai nhờ Mod chuyển dùm và thông báo cho em bít với +-+-+-+
Em có 2 bộ đề thi ở đây, đề bài em sẽ post đề và cả file nguồn nữa (Em đã giải rồi) Nhưng do là "Gà" nên ko bít mình có đúng ko nữa


Đề số 1: OLP năm 2009
Giả sử hồ sơ thi tuyển sinh đại học của thí sinh gồm các thông tin: điểm thi môn 1,
điểm thi môn 2, điểm thi môn 3, khu vực tuyển sinh (gồm có khu vực 1, khu vực 2, khu
vực 3 và khu vực 2 nông thôn - kí hiệu là 4) và nhóm đối tượng ưu tiên (gồm có nhóm
ưu tiên 1, ưu tiên 2 và không ưu tiên).
Theo quy chế tuyển sinh hiện hành, điểm thi mỗi môn được tính theo thang điểm 10
(điểm lẻ đến 0,25 và không quy tròn điểm từng môn) và tổng điểm 3 môn thi được làm
tròn theo nguyên tắc: nếu có điểm lẻ từ 0,25 đến dưới 0,5 thì quy tròn thành 0,5; có
điểm lẻ từ 0,75 đến dưới 1,0 thì quy tròn thành 1,0. Điểm xét tuyển là tổng điểm của ba
môn thi (sau khi đã làm tròn) cộng với điểm ưu tiên theo khu vực và điểm ưu tiên theo
nhóm đối tượng (nếu có).
Khung điểm ưu tiên theo khu vực và ưu tiên theo nhóm đối tượng được cho trong các
bảng sau:
Untitled.jpg
Hãy sử dụng Microsoft Excel tạo tệp EXAMM.XLS để thực hiện một số công việc về
quản lí tuyển sinh đại học.
Giả sử trên Sheet 1 dữ liệu về các thí sinh sẽ được nhập vào các ô Ak, Bk, Ck, Dk, Ek
tương ứng là điểm thi môn 1, điểm thi môn 2, điểm thi môn 3, khu vực tuyển sinh (1, 2,
3 hoặc 4) và nhóm đối tượng ưu tiên (0, 1 hoặc 2), với k = 1, ..., 100. Lập các công thức
để thực hiện những yêu cầu dưới đây:
1. Xác định tổng điểm lớn nhất của ba môn thi (sau khi đã làm tròn) trong số tất cả
các thí sinh;
2. Tính số thí sinh có ít nhất một môn thi bị điểm 0;
3. Tính số thí sinh không có môn thi nào bị điểm 0 và có điểm xét tuyển lớn hơn
hoặc bằng 19,5;
4. Tính trung bình cộng điểm xét tuyển của tất cả các thí sinh thuộc khu vực 3
hoặc thuộc nhóm không ưu tiên (kết quả được làm tròn tới 2 chữ số thập phân;
nếu không có thí sinh nào thuộc khu vực 3 hoặc thuộc nhóm không ưu tiên thì
kết quả được quy ước là 0);
5. Xác định điểm xét tuyển nhỏ nhất trong số 3 thí sinh có điểm xét tuyển cao nhất.
Kết quả tính được kết xuất tương ứng vào các ô G1, G2, G3, G4 và G5 của Sheet 1.
Chú ý rằng, bạn có thể sử dụng các ô khác ngoài các ô G1, G2, G3, G4, G5 và các ô
Ak, Bk, Ck, Dk, Ek với k = 1, ..., 100 để tạo các công thức trung gian.
Chẳng hạn, với số thí sinh là 6 ta có bảng mẫu sau:
Ghi chú: Bài này sẽ được chấm bằng cách nhập dữ liệu của các test khác nhau vào
các ô Ak, Bk, Ck, Dk, Ek với k = 1, ..., 100 và sau đó kiểm tra kết quả ở các ô G1, G2,
G3, G4 và G5 trong Sheet 1 của tệp EXAMM.XLS mà thí sinh nộp.

đây là File bài làm của em
 

File đính kèm

Lần chỉnh sửa cuối:
Chào mọi người, em mới tham gia GPE, thực sự thấy 4rum rất hay, nhưng vì mới tham gia nên chưa bít khai thác kiến thức trên 4rum
Và ko bít em post nội dung ở đây có đúng với nội quy nữa ko? Nếu sai nhờ Mod chuyển dùm và thông báo cho em bít với +-+-+-+
Em có 2 bộ đề thi ở đây, đề bài em sẽ post đề và cả file nguồn nữa (Em đã giải rồi) Nhưng do là "Gà" nên ko bít mình có đúng ko nữa

Đề số 1: OLP năm 2009

đây là File bài làm của em

Công thức này của bạn:
=IF(SUM(A1:C1)-INT(SUM(A1:C1))>=0.75,INT(SUM(A1:C1))+1,IF(AND(SUM(A1:C1)-INT(SUM(A1:C1))>=0.25,SUM(A1:C1)-INT(SUM(A1:C1))<0.5),INT(SUM(A1:C1))+0.5,SUM(A1:C1)))

Có thể thay bằng công thức sau:
PHP:
=INT(SUM(A1:C1))+CEILING(MOD(SUM(A1:C1),1),0.5)
Hoặc gọn hơn:
PHP:
=CEILING(SUM(A1:C1),0.5)
 
Hi, ngắn gọn quá
Cảm ơn bác nhiều nhé :D
Bác có thể giải thích công việc của hàm CELLING() ở 2 dạng trên ko ạ?
 
Lần chỉnh sửa cuối:
Olp 2008

Bài số 2: OLP 2008

Untitled1.jpg
Untitled2.jpg
Untitled3.jpg
Untitled4.jpg

Và đây là bài làm của em.
 

File đính kèm

Hi, ngắn gọn quá
Bác có thể giải thích công việc của hàm CELLING() ở 2 dạng trên ko ạ?

= CEILING(number, significance) làm tròn đến bội số gần nhất của một số được chỉ định ra xa số 0,
number: Con số sẽ làm tròn
significance: Con số mà bạn cần làm tròn number đến bội số của
Trong bài này thì ta làm tròn đến 0.5

Trường hợp này cũng có thể dùng hàm MROUND
=MROUND(SUM(A1:C1),0.5)
 
Bài số 2: OLP 2008
Và đây là bài làm của em.
- Công thức này
có thể thành
PHP:
=MAX(1,B1-A1)
- Công thức này
=IF(C1<>0,INT(I1/7)*VLOOKUP(C1,$F$2:$G$4,2,0),0)
có thể thành
PHP:
=INT(I1/7)*LOOKUP(C1,$F$2:$G$4)
- Công thức này
=IF(C1<>0,IF(MOD(I1,7)*VLOOKUP(C1,$F$2:$H$4,3,0)<VLOOKUP(C1,$F$2:$H$4,2,0),MOD(I1,7)*VLOOKUP(C1,$F$2:$H$4,3,0),VLOOKUP(C1,$F$2:$H$4,2,0)),0)
có thể thành
PHP:
=MIN(MOD(I1,7)*LOOKUP(C1,$F$2:$H$4),1*LOOKUP(C1,$F$2:$G$4))
 
Lần chỉnh sửa cuối:
Thank @dat_butmuc nhiều :D
Bạn có thể làm lại bài Excel đó và gửi đính kèm cho mình tham khảo đc ko?
Vì mình hơi gà nên cần tham khảo các bài của những cao thủ đi trước :D
 
Bài 2008, mới công thức em thêm =IF(C1<>0 vì : để đảm bảo cho VLOOKUP() khi tham chiếu ko có dữ liệu thì ko bị lỗi, vì Tét nằm trong khoảng 50 dòng mà.
Nếu ko kiểm tra điều kiện thì sẽ #N/A
Ko bít như của anh đã OK tính đến đoạn đó chưa với hàm LOOKUP() - và Lookup() nó sài khác Vlookup() ở điểm nào ạ?
 
Bạn có thể làm lại bài Excel đó và gửi đính kèm cho mình tham khảo đc ko?
=> Tôi nghĩ bạn làm tốt hơn tôi (chẳng qua là chia sẻ với nhau mà)


Bài 2008, mới công thức em thêm =IF(C1<>0 vì : để đảm bảo cho VLOOKUP() khi tham chiếu ko có dữ liệu thì ko bị lỗi, vì Tét nằm trong khoảng 50 dòng mà.
Nếu ko kiểm tra điều kiện thì sẽ #N/A
Ko bít như của anh đã OK tính đến đoạn đó chưa với hàm LOOKUP() - và Lookup() nó sài khác Vlookup() ở điểm nào ạ?
Cái điều kiện =IF(C1<>0 ... tôi không quan tâm vì bạn đã làm rồi, với lại để bẫy lỗi #N/A như điều kiện trên nếu dùng vlookup thì chưa ổn (tóm lại là ở dữ liệu/nhập liệu)

Hàm Vlookup thì chắc bạn biết rồi, còn Lookup thì tôi tìm cho bạn đây:

Hàm LOOKUP - Tác giả: Bùi Nguyễn Triệu Tường (BNTT - GPE)
Tổng hợp: hoangdanh282vn (GPE)


Chức năng: Hàm LOOKUP dùng để dò tìm môt giá trị trong một dòng, một cột hoặc trong một mảng các giá trị.
Hàm LOOKUP có hai hình thức là dạng vector và dạng mảng:

a. Dạng Vector: LOOKUP(lookup_value,lookup_vector,result_vector)

- Lookup_value: là giá trị sẽ được tìm kiếm trong vùng Lookup_vector. Lookup_value có thể là một số, một chuỗi hay một tham chiếu

- Lookup_vector: là vùng dò tìm, vùng này có thể là một dòng hay một cột. Giá trị chứa trong vùng có thể là số, chuỗi.

- Result_vector: là vùng chứa giá trị trả về (1cột hoặc 1dòng). Độ lớn của Result_vector phải tương ứng với Lookup_vector.


Lưu ý:
  • Lookup_vector phải được sắp xếp theo thứ tự tăng dần như: -2,-1,0,1,2; A,B,C..Z; FALSE, TRUE. Nếu không, kết quả trả về nhiều khi không chính xác.
  • Nếu như không tìm thấy Lookup_value trong vùng dò tìm, hàm sẽ lấy giá trị lớn nhất có trong vùng dò tìm (Lookup_vector) mà có giá trị nhỏ hơn hoặc bằng giá trị dò tìm Lookup_vector.
  • Nếu giá trị nhỏ nhất trong vùng dò tìm Lookup_vector mà lớn hơn giá trị của lookup_value thì hàm báo lỗi #N/A.
b. Dạng Mảng: LOOKUP(lookup_value,array)

- Lookup_value: là giá trị sẽ được tìm kiếm trong mảng Array. Lookup_value có thể là một số, một chuỗi hay một tham chiếu.

- Array: là vùng tìm kiếm, có thể là một vùng nhiều ô hay một mảng. Giá trị chứa trong array có thể là số, chuỗi, giá trị logic..


Lưu ý:
  • Nếu như không tìm thấy Lookup_value trong vùng dò tìm, hàm sẽ lấy giá trị lớn nhất có trong vùng dò tìm (Lookup_vector) mà có giá trị nhỏ hơn hoặc bằng giá trị dò tìm Lookup_vector.
  • Nếu Lookup_value nhỏ hơn giá trị nhỏ nhất trong cột hoặc hàng đầu tiên trong array thì hàm sẽ báo lỗi #NA!.
  • Hàm lookup dạng mảng gần giống với Hàm Hlookup và Vlookup. Điểm khác biệt là hàm Vlookup hay hàm Hlookup tìm kiếm trên dòng (hoặc cột) đầu tiên, còn hàm Lookup thì tim kiếm tùy thuộc vào kích thước của mảng. Nếu mảng (array) có số cột nhiều hơn số dòng thì hàm sẽ tìm trên dòng đầu tiên của mảng, và ngược lại. Nếu mảng có số cột bằng số dòng thì hàm sẽ tìm trên cột đầu tiên của mảng.
  • Hàm lookup luôn trả về giá trị ở cột hoặc dòng cuối cùng trong mảng.
  • Các giá trị ở dòng hoặc cột đầu tiên trong mảng phải được sắp xếp theo thứ tự tăng dần, nếu không kết quả trả về nhiều khi không chính xác.
 
Lần chỉnh sửa cuối:
Thanks @dat_butchi nhiều
Mình sẽ xem có gì sẽ pm cho bạn sau :D
 
Được sự chỉ dạy nhiệt tình của anh @dat_butmuc em đã cố gắng học tập + làm lại bài 2009
A xem hộ cho em nha :D
Em code cho tét k=100 luôn đó.
 

File đính kèm

Còn đây là bài GROOM 2008 ạ,
Theo sự chỉ dẫn của anh em đã làm lại hết rồi, có gì anh cho em nhận xét.
Hoặc bác tiền bối nào cũng đc :D
 

File đính kèm

Ai chỉ giùm em công thức này có nghĩa là gì dc ko ạh :(
{=SUM(IF((((A1:A100=0)+(B1:B100=0)+(C1:C100=0))*(D1:D100<>0));1;0))}
Sao lại ko có lệnh or và and trong này mà là dấu + và dấu * nhỉ :( em mới học nên mong anh chị chỉ bảo...??
Em cảm ơn
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom