Đề tài tính toán thứ tự ưu tiên trong công việc

Liên hệ QC

thehungtv

Thành viên mới
Tham gia
3/6/16
Bài viết
17
Được thích
0
Chào anh chị và các bạn!

Mình có một đề tài là tính toán và sắp xếp thứ tự ưu tiên trong công việc như dưới đây. Nhờ anh chị xem có thể sử dung hàm excel hoặc marco để giải quyết đề tài này không?

Đề bài dựa vào dữ liệu ở cột B, C, D để tính toán thứ tự ưu tiên cho cột E (thứ tự ư tiên điền vào cột E là 1,2,3...n)
- Trong bảng dữ liệu từ B5~B(n) nếu chỉ có "Y" thì xét đến giá trị trong ô tính từ C5~C(n)
+ Nếu ô nào có giá trị nhỏ nhất thì xếp thứ tự ưu tiên là số 1, ô có giá trị nhỏ tiếp theo sẽ tính thứ tự ưu tiên là số 2, …. Đến giá trị y(n) thì xếp giá trị ưu tiên là n. Điền kết quả vào dòng tương ứng của cột E
- Trong bảng dữ liệu từ B5~B(n) nếu chỉ có "N" thì xét đến giá trị trong ô tính từ D5~D(n):
+ Nếu ô nào có giá trị nhỏ nhất thì xếp thứ tự ưu tiên là số 1, ô có giá trị nhỏ tiếp theo sẽ tính thứ tự ưu tiên là số 2, …. Đến giá trị y(n) thì xếp giá trị ưu tiên là n. Điền kết quả vào dòng tương ứng của cột E
- Trong bảng dữ liệu từ B5~B(n) nếu có cả "Y" và "N" thì thì ưu tiên xếp thứ tự dựa vào giá trị "Y" trước, tiếp theo mới sắp xếp đến các giá trị "N". Thứ tự sắp xếp khi tính thứ tự giá trị "N" là Y(n)+1
 

File đính kèm

Chào anh chị và các bạn!

Mình có một đề tài là tính toán và sắp xếp thứ tự ưu tiên trong công việc như dưới đây. Nhờ anh chị xem có thể sử dung hàm excel hoặc marco để giải quyết đề tài này không?

Đề bài dựa vào dữ liệu ở cột B, C, D để tính toán thứ tự ưu tiên cho cột E (thứ tự ư tiên điền vào cột E là 1,2,3...n)
- Trong bảng dữ liệu từ B5~B(n) nếu chỉ có "Y" thì xét đến giá trị trong ô tính từ C5~C(n)
+ Nếu ô nào có giá trị nhỏ nhất thì xếp thứ tự ưu tiên là số 1, ô có giá trị nhỏ tiếp theo sẽ tính thứ tự ưu tiên là số 2, …. Đến giá trị y(n) thì xếp giá trị ưu tiên là n. Điền kết quả vào dòng tương ứng của cột E
- Trong bảng dữ liệu từ B5~B(n) nếu chỉ có "N" thì xét đến giá trị trong ô tính từ D5~D(n):
+ Nếu ô nào có giá trị nhỏ nhất thì xếp thứ tự ưu tiên là số 1, ô có giá trị nhỏ tiếp theo sẽ tính thứ tự ưu tiên là số 2, …. Đến giá trị y(n) thì xếp giá trị ưu tiên là n. Điền kết quả vào dòng tương ứng của cột E
- Trong bảng dữ liệu từ B5~B(n) nếu có cả "Y" và "N" thì thì ưu tiên xếp thứ tự dựa vào giá trị "Y" trước, tiếp theo mới sắp xếp đến các giá trị "N". Thứ tự sắp xếp khi tính thứ tự giá trị "N" là Y(n)+1
Mã:
E5 =SUMPRODUCT(--(C5+D5*(B5="N")*10^3+(B5="")*10^6>$C$5:$C$16+$D$5:$D$16*($B$5:$B$16="N")*10^3+($B$5:$B$16="")*10^6))+1
 
Lần chỉnh sửa cuối:
Chào anh chị và các bạn!

Mình có một đề tài là tính toán và sắp xếp thứ tự ưu tiên trong công việc như dưới đây. Nhờ anh chị xem có thể sử dung hàm excel hoặc marco để giải quyết đề tài này không?

Đề bài dựa vào dữ liệu ở cột B, C, D để tính toán thứ tự ưu tiên cho cột E (thứ tự ư tiên điền vào cột E là 1,2,3...n)
- Trong bảng dữ liệu từ B5~B(n) nếu chỉ có "Y" thì xét đến giá trị trong ô tính từ C5~C(n)
+ Nếu ô nào có giá trị nhỏ nhất thì xếp thứ tự ưu tiên là số 1, ô có giá trị nhỏ tiếp theo sẽ tính thứ tự ưu tiên là số 2, …. Đến giá trị y(n) thì xếp giá trị ưu tiên là n. Điền kết quả vào dòng tương ứng của cột E
- Trong bảng dữ liệu từ B5~B(n) nếu chỉ có "N" thì xét đến giá trị trong ô tính từ D5~D(n):
+ Nếu ô nào có giá trị nhỏ nhất thì xếp thứ tự ưu tiên là số 1, ô có giá trị nhỏ tiếp theo sẽ tính thứ tự ưu tiên là số 2, …. Đến giá trị y(n) thì xếp giá trị ưu tiên là n. Điền kết quả vào dòng tương ứng của cột E
- Trong bảng dữ liệu từ B5~B(n) nếu có cả "Y" và "N" thì thì ưu tiên xếp thứ tự dựa vào giá trị "Y" trước, tiếp theo mới sắp xếp đến các giá trị "N". Thứ tự sắp xếp khi tính thứ tự giá trị "N" là Y(n)+1
Dễ làm nhất là thêm cột phụ.
 

File đính kèm

Thử không dùng cột phụ.

Tôi dùng hàm IF vì trong mỗi công thức thì chỉ 1 nhánh của IF được thực hiện. Do dùng COUNTIFS nên tránh được tạo mảng giá trị. Công thức nhìn rất dễ hiểu, không cần phải phân tích rất cẩn thận.
Mã:
=IF(B5="Y",COUNTIFS(B$5:B$100,"Y",C$5:C$100,"<"&C5)+1,COUNTIF(B$5:B$100,"Y")+COUNTIFS(B$5:B$100,"N",D$5:D$100,"<"&D5)+1)

Theo tôi mọi nỗ lực rút gọn công thức trên chỉ làm công thức khó hiểu mà thôi.
 
Chào anh chị và các bạn!

Mình có một đề tài là tính toán và sắp xếp thứ tự ưu tiên trong công việc như dưới đây. Nhờ anh chị xem có thể sử dung hàm excel hoặc marco để giải quyết đề tài này không?

Đề bài dựa vào dữ liệu ở cột B, C, D để tính toán thứ tự ưu tiên cho cột E (thứ tự ư tiên điền vào cột E là 1,2,3...n)
- Trong bảng dữ liệu từ B5~B(n) nếu chỉ có "Y" thì xét đến giá trị trong ô tính từ C5~C(n)
+ Nếu ô nào có giá trị nhỏ nhất thì xếp thứ tự ưu tiên là số 1, ô có giá trị nhỏ tiếp theo sẽ tính thứ tự ưu tiên là số 2, …. Đến giá trị y(n) thì xếp giá trị ưu tiên là n. Điền kết quả vào dòng tương ứng của cột E
- Trong bảng dữ liệu từ B5~B(n) nếu chỉ có "N" thì xét đến giá trị trong ô tính từ D5~D(n):
+ Nếu ô nào có giá trị nhỏ nhất thì xếp thứ tự ưu tiên là số 1, ô có giá trị nhỏ tiếp theo sẽ tính thứ tự ưu tiên là số 2, …. Đến giá trị y(n) thì xếp giá trị ưu tiên là n. Điền kết quả vào dòng tương ứng của cột E
- Trong bảng dữ liệu từ B5~B(n) nếu có cả "Y" và "N" thì thì ưu tiên xếp thứ tự dựa vào giá trị "Y" trước, tiếp theo mới sắp xếp đến các giá trị "N". Thứ tự sắp xếp khi tính thứ tự giá trị "N" là Y(n)+1
Tham khảo thêm hai công thức dưới, tôi đã xét đến trường hợp nếu: Cột C có hai số cùng giá trị, thì xét tiếp cột D. Nếu cột D lại cùng giá trị thì xếp theo số dòng phát sinh trên dưới.
a/ Bổ sung công thức bài #4:
Mã:
E5=IF(A5<>"",IF(B5="Y",COUNTIF($C$5:$C$100,"<"&C5)+COUNTIFS($C$5:$C$100,C5,$D$5:$D$100,"<"&D5)+COUNTIFS($C$5:$C5,$C5,$D$5:$D5,$D5),COUNTIF(B$5:B$100,"Y")+COUNTIFS(B$5:B$100,"N",D$5:D$100,"<"&D5)+COUNTIFS($B$5:$B5,$B5,$D$5:$D5,$D5)),"")
b/ Hoặc dùng công thức mảng:
Mã:
E5=IF(A5<>"",SUM(N(($C5+$D5*10^(($B5="N")*3-1)+ROW()/1000)>(IFERROR(1/(1/($C$5:$C$100+$D$5:$D$100*10^(($B$5:$B$100="N")*3-1)))+ROW($A$5:$A$100)/1000,""))))+1,"")
Ctrl+Shift+Enter.
Xem file kèm.
hihi ^o^
 

File đính kèm

Lần chỉnh sửa cuối:
Tham khảo thêm hai công thức dưới, tôi đã xét đến trường hợp nếu: Cột C có hai số cùng giá trị, thì xét tiếp cột D. Nếu cột D lại cùng giá trị thì xếp theo số dòng phát sinh trên dưới.
a/ Bổ sung công thức bài #4:
Mã:
E5=IF(A5<>"",IF(B5="Y",COUNTIF($C$5:$C$100,"<"&C5)+COUNTIFS($C$5:$C$100,C5,$D$5:$D$100,"<"&D5)+COUNTIFS($C$5:$C5,$C5,$D$5:$D5,$D5),COUNTIF(B$5:B$100,"Y")+COUNTIFS(B$5:B$100,"N",D$5:D$100,"<"&D5)+COUNTIFS($B$5:$B5,$B5,$D$5:$D5,$D5)),"")
b/ Hoặc dùng công thức mảng:
Mã:
E5=IF(A5<>"",SUM(N(($C5+$D5*10^(($B5="N")*3-1)+ROW()/1000)>(IFERROR(1/(1/($C$5:$C$100+$D$5:$D$100*10^(($B$5:$B$100="N")*3-1)))+ROW($A$5:$A$100)/1000,""))))+1,"")
Ctrl+Shift+Enter.
Xem file kèm.
hihi ^o^
Chưa đạt yêu cầu :D
Trường hợp cả hai cũng cùng 1 giá trị nữa thì xếp ưu tiên theo dòng trên và dưới.
 
Thứ tự ưu tiên dòng 11 và 13 phải đổi cho nhau thì mới đúng yêu cầu.
Chưa rõ ý của anh lắm! :p
Theo dữ liệu giả định tại bài #5 có:
- Dòng 8: với các giá trị 4-6 --> thứ tự là: 3
- Dòng 11: với các giá trị 4-8 --> thứ tự là: 5
- Dòng 13: với các giá trị 4-6 --> thứ tự: 4
Theo như yêu cầu của chủ thớt: ưu tiên xếp cột C, rồi đến D, còn cái vụ dòng trên dưới là đoán ý nhằm phân rõ thứ tự từ 1 đến 11, cho nên hai dòng 8 và 13 cùng giá trị 4-6 nhưng do dòng 8 ở trên nên được xếp thứ tự nhỏ hơn.
hihi ^o^Thutu.png
 
Chưa rõ ý của anh lắm! :p
Theo dữ liệu giả định tại bài #5 có:
- Dòng 8: với các giá trị 4-6 --> thứ tự là: 3
- Dòng 11: với các giá trị 4-8 --> thứ tự là: 5
- Dòng 13: với các giá trị 4-6 --> thứ tự: 4
Theo như yêu cầu của chủ thớt: ưu tiên xếp cột C, rồi đến D, còn cái vụ dòng trên dưới là đoán ý nhằm phân rõ thứ tự từ 1 đến 11, cho nên hai dòng 8 và 13 cùng giá trị 4-6 nhưng do dòng 8 ở trên nên được xếp thứ tự nhỏ hơn.
hihi ^o^View attachment 195435
Theo tôi hiểu thì giá trị cột D không ảnh hưởng đến thứ tự ưu tiên của dòng có giá trị "Y" và giá trị cột C không ảnh hưởng đến thứ tự ưu tiên của dòng có giá trị "N".
 
Chào anh chị và các bạn!

Mình có một đề tài là tính toán và sắp xếp thứ tự ưu tiên trong công việc như dưới đây. Nhờ anh chị xem có thể sử dung hàm excel hoặc marco để giải quyết đề tài này không?

Đề bài dựa vào dữ liệu ở cột B, C, D để tính toán thứ tự ưu tiên cho cột E (thứ tự ư tiên điền vào cột E là 1,2,3...n)
- Trong bảng dữ liệu từ B5~B(n) nếu chỉ có "Y" thì xét đến giá trị trong ô tính từ C5~C(n)
+ Nếu ô nào có giá trị nhỏ nhất thì xếp thứ tự ưu tiên là số 1, ô có giá trị nhỏ tiếp theo sẽ tính thứ tự ưu tiên là số 2, …. Đến giá trị y(n) thì xếp giá trị ưu tiên là n. Điền kết quả vào dòng tương ứng của cột E
- Trong bảng dữ liệu từ B5~B(n) nếu chỉ có "N" thì xét đến giá trị trong ô tính từ D5~D(n):
+ Nếu ô nào có giá trị nhỏ nhất thì xếp thứ tự ưu tiên là số 1, ô có giá trị nhỏ tiếp theo sẽ tính thứ tự ưu tiên là số 2, …. Đến giá trị y(n) thì xếp giá trị ưu tiên là n. Điền kết quả vào dòng tương ứng của cột E
- Trong bảng dữ liệu từ B5~B(n) nếu có cả "Y" và "N" thì thì ưu tiên xếp thứ tự dựa vào giá trị "Y" trước, tiếp theo mới sắp xếp đến các giá trị "N". Thứ tự sắp xếp khi tính thứ tự giá trị "N" là Y(n)+1
Thêm cách khác, bạn dùng công thức mảng này:
Mã:
E5=SUM(N(IF(B5="Y",C5,D5*10^6)>IF($B$5:$B$15={"Y","N"},10^{0,6}*$C$5:$D$15)))+1
Yêu cầu bấm Ctrl+Shift+Enter rồi fill xuống!!!
 
Web KT

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

Back
Top Bottom