Sử dụng hàm nào thay thế VLOOKUP trong trường hợp này? (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

vietduc252

Thành viên mới
Tham gia
5/8/10
Bài viết
4
Được thích
0
Mình có một bài excel về việc xếp loại thành tích kiểm tra sức khỏe. Nó gồm 4 nội dung là chạy 100m, 1500m, bật xa, xà đơn; mỗi nội dung lại có từng thành tích riêng cho mỗi lứa tuổi. Mình định dùng hàm VLOOKUP nhưng dữ liệu tìm kiếm ở đây lại nằm trong một khoảng chứ không phải là một giá trị cố định. Mong các bạn giúp cho mình có được giải pháp hiệu quả trong bài này.
Cảm ơn các bạn!
 

File đính kèm

Mình có một bài excel về việc xếp loại thành tích kiểm tra sức khỏe. Nó gồm 4 nội dung là chạy 100m, 1500m, bật xa, xà đơn; mỗi nội dung lại có từng thành tích riêng cho mỗi lứa tuổi. Mình định dùng hàm VLOOKUP nhưng dữ liệu tìm kiếm ở đây lại nằm trong một khoảng chứ không phải là một giá trị cố định. Mong các bạn giúp cho mình có được giải pháp hiệu quả trong bài này.
Cảm ơn các bạn!
Chủ yếu là hàm IF
File của Bạn mới là tiêu chí để xếp loại chớ chưa có danh sách cụ thể, theo tôi Bạn phải nêu một bảng ví dụ, có danh sách vận động viên, tuổi, thành tích các môn thì mọi người mới giúp được.
 
Lần chỉnh sửa cuối:
Mình có một bài excel về việc xếp loại thành tích kiểm tra sức khỏe.

Mình định dùng hàm VLOOKUP nhưng dữ liệu tìm kiếm ở đây lại nằm trong một khoảng chứ không phải là một giá trị cố định.

Bài toán của bạn khá hay vì có nhiều tầng. Tôi chưa giải được, nhưng lưu ý là hàm VLOOKUP(x,v,n,L) sẽ tìm kiếm trong khoảng nếu tham số thứ 4 là L = True (hay 1); tìm chính xác nếu L = False (hay 0).
 
Chủ yếu là hàm IF
File của Bạn mới là tiêu chí để xếp loại chớ chưa có danh sách cụ thể, theo tôi Bạn phải nêu một bảng ví dụ, có danh sách vận động viên, tuổi, thành tích các môn thì mọi người mới giúp được.
Trong trường hợp này nếu dùng hàm IF thì về nguyên tắc là được nhưng rất dài, nhiều vòng IF lồng nhau nên rất khó cho việc kiểm tra lại.
Nếu bạn thích thì cứ điền một vài ví dụ vào rồi test thử cũng được mà.
 
Bài toán của bạn khá hay vì có nhiều tầng. Tôi chưa giải được, nhưng lưu ý là hàm VLOOKUP(x,v,n,L) sẽ tìm kiếm trong khoảng nếu tham số thứ 4 là L = True (hay 1); tìm chính xác nếu L = False (hay 0).
Theo mình biết thì nếu L = 1 thì sẽ tìm gần đúng với dữ liệu cần tìm thôi chứ không phải là tìm trong khoảng.
Mình chỉ cơ bản về Excel thôi nên về phần nâng cao không rõ lắm. Mong các bạn giúp đỡ bài toán này cho mình với!
 
Nếu bạn mới cơ bản thì nên tách người tham dự thành nhiều Sheet, mỗi sheet 1 độ tuổi.
Trên 1 sheet, ví dụ Sheet của nhóm tuổi 18-27, ngoài phần danh sách người tham dự,
|A|B|C|D|E
1|TT|Họ và tên|Tuổi|TG chạy 100m|Xếp loại
2| | | |16
3| | | |11
4| | | |14.2
bạn có 4 vùng tương ứng với 4 môn thi để sử dụng VLOOKUP, đại để với chạy 100 m như sau
|A|B
21|0|Giỏi
22|14|Khá
23|14.6|Đạt
24|15.1|Không đạt
Thì tại E2 bạn nhập = vlookup(D2,$A21:$B24,2,1)

Đây là ta "cố dùng" VLOOKUP. Tôi chắc rằng nhiều "đại ca" có cách hay để mọi dữ liệu cùng trên 1 sheet. Nhưng khá "cao cấp"
 
Lần chỉnh sửa cuối:
Mình có một bài excel về việc xếp loại thành tích kiểm tra sức khỏe. Nó gồm 4 nội dung là chạy 100m, 1500m, bật xa, xà đơn; mỗi nội dung lại có từng thành tích riêng cho mỗi lứa tuổi. Mình định dùng hàm VLOOKUP nhưng dữ liệu tìm kiếm ở đây lại nằm trong một khoảng chứ không phải là một giá trị cố định. Mong các bạn giúp cho mình có được giải pháp hiệu quả trong bài này.
Cảm ơn các bạn!
Không khó nhưng hơi cực, tạm làm cho bạn 2 "khúc" thôi, còn 2 khúc sau bạn tự làm nhé (mình làm biếng quá)
Viết hàm chắc đỡ cực hơn một tí tẹo
 

File đính kèm

Mình có một bài excel về việc xếp loại thành tích kiểm tra sức khỏe. Nó gồm 4 nội dung là chạy 100m, 1500m, bật xa, xà đơn; mỗi nội dung lại có từng thành tích riêng cho mỗi lứa tuổi. Mình định dùng hàm VLOOKUP nhưng dữ liệu tìm kiếm ở đây lại nằm trong một khoảng chứ không phải là một giá trị cố định. Mong các bạn giúp cho mình có được giải pháp hiệu quả trong bài này.
Cảm ơn các bạn!
Lâu lâu không sài đến công thức, tôi thử chút xem sao, hy vọng có thể giúp bạn
 

File đính kèm

Cảm ơn các bạn đã nhiệt tình giúp đỡ!
Mình chưa có thời gian nên chỉ mới xem qua thôi. Có gì thắc mắc trong bài sau này mình sẽ hỏi sau. Chúc cuối tuần vui vẻ!
 
Nhờ các bác chỉ giáo giúp mình công thức tính phạt theo hàm if với nhá:
>90 ngày : 2.750 và phạt
40 đến 90 ngày: 2.750
30 đến 40 ngày : 2.200
20 đến 30 ngày: 1.650
10 đến 20 ngày: 1.100
5 đến 10 ngày: 0
 
Nhờ các bác chỉ giáo giúp mình công thức tính phạt theo hàm if với nhá:
>90 ngày : 2.750 và phạt
40 đến 90 ngày: 2.750
30 đến 40 ngày : 2.200
20 đến 30 ngày: 1.650
10 đến 20 ngày: 1.100
5 đến 10 ngày: 0
Mình thấy nó có trật tự tuần hoàn nên mình viết vầy cho đơn giản nha!
Với D3 là số ngày.
=(MAX(MIN(INT(D3/10),4),1)+1)*550*(D3>=10)

>90 ngày : 2.750 và phạt
Câu này của bạn có ý nghĩa gì nhỉ? Bạn nói rõ hơn 1 chút được không?
Thân.
 

File đính kèm

Nhờ các bác chỉ giáo giúp mình công thức tính phạt theo hàm if với nhá:
>90 ngày : 2.750 và phạt
40 đến 90 ngày: 2.750
30 đến 40 ngày : 2.200
20 đến 30 ngày: 1.650
10 đến 20 ngày: 1.100
5 đến 10 ngày: 0

Các giao điểm 10, 20,..nằm chung ở 2 ngưỡng (ví dụ từ 10 đến 20 ngày là 1.100, từ 20 đến 30 ngày là 1.650 => thì 20 nằm ở khoảng nào? tương tự với các trường hợp khác ...)
Nếu 10 đến dưới 20 ngày là 1.100, 20 đến dưới 30 ngày là 1.650 => Thì dùng công thức sau với bảng điều kiện: LOOKUP(D2,$A$1:$B$5)
Xem thêm file
 

File đính kèm

Hỏi về tìm kiếm dữ liệu!

Dear cả nhà!

Cho em hỏi chút về tìm kiếm dữ liệu một chút.
Em có 2 sheet như file đính kèm, trong đó có rất nhiều data (em chỉ minh họa một vài data).
Em muốn lấy giá tìm được trong sheet "Standard" để điền vào sheet 1,và điều kiện phải là cùng mã. Trong đó Chi tiết trong các mã có thể giống nhau, tuy nhiên trong 2 sheet này không hẳn đã cùng số lương "chi tiết" đối với từng "mã".
Cả nhà có cao kiến gì giúp em với nhé!
 

File đính kèm

2 ngày rùi mà không thấy ai trả lời giúp em????
 
Có 1 số vấn đề ảnh hưởng đến sự trả lời nhanh chậm:
-Bạn chen ngang vào bài người khác. Mình đã kiểm tra bạn hoàn toàn có thể mở bài riêng của mình.
-Bạn hỏi ngược quá nên biết trả lời bạn sao đây vì trường hợp này không gì bằng Hàm Vlookup. Bạn đã sắp xếp theo từng khu thì cứ từng khu tương ứng mà lấy dữ liệu.
 
Tạm thử nghiệm với macro sự kiện, trong khi chờ đợi

2 ngày rùi mà không thấy ai trả lời giúp em????
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
 If Not Intersect(Target, Columns("B:B")) Is Nothing Then
   Dim Sh As Worksheet, Rng As Range, sRng As Range, Cls As Range
   Dim sValue As String
   
   Set Sh = Sheets("Standard")
   Set Rng = Sh.Range(Sh.[A1], Sh.[A65500].End(xlUp))
   With Target.Offset(, -1)
      If .Value <> "" Then
         sValue = .Value
      Else
         sValue = .End(xlUp).Value
      End If
   End With
   Set sRng = Rng.Find(sValue, , xlFormulas, xlWhole)
   If Not sRng Is Nothing Then
      Set Rng = Sh.Range(sRng, sRng.End(xlDown)).Offset(, 1)
      Target.Offset(, 1).Value = "GPE: Nothing"
      For Each Cls In Rng
         If Cls.Value = Target.Value Then
            Target.Offset(, 1).Value = Cls.Offset(, 1).Value
            Exit For
         End If
      Next Cls
   End If
 End If
End Sub

Macro này trên trang tính '1'
 
Cảm ơn anh ChanhTQ@!

Nhưng anh ơi, gán sự kiện này trên trang tính "1", sau đó thì thế nào nữa à anh?
 
Lần chỉnh sửa cuối:
Thành thực mình cũng nghĩ bạn đùa nghịch, nay thấy bạn theo câu hỏi nên mình tham gia hàm UDF cho dễ dùng

Mã:
Function SeaLook(Dk1, Dk2 As String, rg As Range) As Double
Dim mg(), i, j
Dim rg1 As Range
Set rg1 = rg.Cells(1, 1)
ReDim mg(rg.Rows.Count - 1, rg.Columns.Count - 1)
For i = 0 To rg.Rows.Count - 1
  For j = 0 To rg.Columns.Count - 1
    mg(i, j) = rg.Cells(i + 1, j + 1).Value
       If rg.Cells(i + 1, 1) = "" Then
      mg(i, 0) = rg1.Text
    Else
  Set rg1 = rg.Cells(i + 1, 1)
 End If
Next
Next
  For i = 0 To rg.Rows.Count - 1
    If mg(i, 0) = Dk1 Then
        If mg(i, 1) = Dk2 Then SeaLook = mg(i, 2)
    End If
  Next
End Function
Cú pháp: =Sealook(Ma,Chitiet,Vung Data)

Lưu ý là bài này vẫn dùng Vlookup đuợc, Hàm này chỉ là cách khác theo bạn hỏi
 

File đính kèm

Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom