codonleloi2009
Thành viên mới

- Tham gia
- 23/10/10
- Bài viết
- 1
- Được thích
- 0
Bạn ơi mình đang gặp bài toán phải làm tìm giải nhất, nhì, ba cho các công ty thi dự án với các phương án khác nhau.
Mình đính kèm file nhờ các bạn giải giúp
Bạn xem file được chưa ?
Cảm ơn bạn nhiều. Tuy nhiên kết quả mình muốn tìm đến 3 thông số màu đỏ Như trình bày giải nhất 10 điểm, lin đến tên Công ty và phương án đạt giải. Mình gởi lại file, mong sự giúp đở của bạn, cũng hơi gấp đây. Cảm ơn
VD: Phương án 3 Bạn có 2 giá trị 9 (đều là giải nhì) thì phải tính sao?Cảm ơn bạn nhiều. Tuy nhiên kết quả mình muốn tìm đến 3 thông số màu đỏ Như trình bày giải nhất 10 điểm, lin đến tên Công ty và phương án đạt giải. Mình gởi lại file, mong sự giúp đở của bạn, cũng hơi gấp đây. Cảm ơn
Mình thấy dữ liệu đưa ra nhất nhì ba của Bạn chưa được ổn cho lắm. Bạn cần nói rõ thêm như sau:Đấy là cái mình cũng đặt vào trường hợp có 02 giải nhì, đến 26 Công ty tham gia và cần có kết quả ngay nên mình sợ nhầm lẫn lắm. Mong bạn giúp
Đấy là cái mình cũng đặt vào trường hợp có 02 giải nhì, đến 26 Công ty tham gia và cần có kết quả ngay nên mình sợ nhầm lẫn lắm. Mong bạn giúp
Mình thấy dữ liệu đưa ra nhất nhì ba của Bạn chưa được ổn cho lắm. Bạn cần nói rõ thêm như sau:
1/Tính nhất, nhì, ba cho từng phương án hay sao? Theo cách của Bạn đưa ra Tôi nghĩ có lẽ Bạn tính cho tất cả các phương án. Vẩytương hợp có 3 phương án cùng số điểm là nhất hoặc nhì hoặc ba....thì phải tính như thế nào?
VD cho rõ nhé!Nhất, nhì, ba là điểm cao nhất, cao nhì, cao ba của tất cả các phương án. Như trường hợp mình đưa ra nhất: 10 điểm phương án 2 của Công ty 01, nhì: 2 giải 9 điểm phương án 3 của công ty 03 và Công ty04, ba: 1 giải 8 điểm phương án 2 của Công ty 03
VD cho rõ nhé!
VD: Cả 3 phương án cùng có 9 điểm hoặc 8 điểm.....thì Bạn tính như thế nào?
Theo mình, bài này chắc phải "chơi" VBA với nó quáNhất, nhì, ba là điểm cao nhất, cao nhì, cao ba của tất cả các phương án. Như trường hợp mình đưa ra nhất: 10 điểm phương án 2 của Công ty 01, nhì: 2 giải 9 điểm phương án 3 của công ty 03 và Công ty04, ba: 1 giải 8 điểm phương án 2 của Công ty 03
Public Sub giai()
Dim Pa As Range, Cll As Range, I As Integer, Wf, A As Integer, B As Integer, C As Integer
Set Wf = Application.WorksheetFunction: Set Pa = Range([b4], [b4].End(xlDown))
[g3:j100].Clear
A = Wf.Large(Pa.Offset(, 1).Resize(, 3), 1)
B = Wf.Large(Pa.Offset(, 1).Resize(, 3), Wf.CountIf(Pa.Offset(, 1).Resize(, 3), A) + 1)
C = Wf.Large(Pa.Offset(, 1).Resize(, 3), Wf.CountIf(Pa.Offset(, 1).Resize(, 3), A) + Wf.CountIf(Pa.Offset(, 1).Resize(, 3), B) + 1)
For I = 1 To 3
For Each Cll In Pa.Offset(, I)
If Cll = A Then
With [g100].End(xlUp)(2)
.Value = Cll.Offset(, -I)
.Offset(0, 1) = "Nhât"
.Offset(0, 2) = I
.Offset(0, 3) = A
End With
ElseIf Cll = B Then
With [g100].End(xlUp)(2)
.Value = Cll.Offset(, -I)
.Offset(0, 1) = "Nhì"
.Offset(0, 2) = I
.Offset(0, 3) = B
End With
ElseIf Cll = C Then
With [g100].End(xlUp)(2)
.Value = Cll.Offset(, -I)
.Offset(0, 1) = "Ba"
.Offset(0, 2) = I
.Offset(0, 3) = C
End With
End If
Next
Next
End Sub
Cảm ơn bạn rất nhiều, Bạn làm chính xác rồi, mình nghĩ cũng đơn giản, ai dè khó như vậy. Tuy nhiên nếu bạn xếp theo thứ tự nhất, nhì, ba thì đẹp biết mấy. Thực tế chắc điểm không trùng nhau nhiều đâu.
Cảm ơn bạn rất nhiều, Bạn làm chính xác rồi, mình nghĩ cũng đơn giản, ai dè khó như vậy. Tuy nhiên nếu bạn xếp theo thứ tự nhất, nhì, ba thì đẹp biết mấy. Thực tế chắc điểm không trùng nhau nhiều đâu.
Public Sub giai()
Dim Pa As Range, Cll As Range, I As Integer, Wf, A As Integer, B As Integer, C As Integer
Set Wf = Application.WorksheetFunction: Set Pa = Range([b4], [b4].End(xlDown))
[g3:j100].Clear
A = Wf.Large(Pa.Offset(, 1).Resize(, 3), 1)
B = Wf.Large(Pa.Offset(, 1).Resize(, 3), Wf.CountIf(Pa.Offset(, 1).Resize(, 3), A) + 1)
C = Wf.Large(Pa.Offset(, 1).Resize(, 3), Wf.CountIf(Pa.Offset(, 1).Resize(, 3), A) + Wf.CountIf(Pa.Offset(, 1).Resize(, 3), B) + 1)
For I = 1 To 3
For Each Cll In Pa.Offset(, I)
If Cll = A Then
With [g100].End(xlUp)(2)
.Value = Cll.Offset(, -I)
.Offset(0, 1) = "Nhât"
.Offset(0, 2) = I
.Offset(0, 3) = A
End With
ElseIf Cll = B Then
With [g100].End(xlUp)(2)
.Value = Cll.Offset(, -I)
.Offset(0, 1) = "Nhì"
.Offset(0, 2) = I
.Offset(0, 3) = B
End With
ElseIf Cll = C Then
With [g100].End(xlUp)(2)
.Value = Cll.Offset(, -I)
.Offset(0, 1) = "Ba"
.Offset(0, 2) = I
.Offset(0, 3) = C
End With
End If
Next
Next
Range([g3], [g20].End(xlUp)).Resize(, 4).Sort Key1:=Range("J3"), Order1:=xlDescending, Header:=xlGuess
End Sub