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:
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

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[/COLOR][/COLOR]

Chào anh!
Em cảm ơn vì lời góp ý của anh!
- hàm SeaLook cho kết quả không như câu hỏi của em. Vì mỗi "Ma", có nhiều "Chi tiet" khác nhau và có thể tên giống nhau nhưng "Gia" là khác nhau cho mỗi chi tiết ứng với "Ma". VD: trong ví dụ của em thì "Ma" PSAN1 và PSAN2 có cùng mã "Chi tiet" là A nhưng giá ở mỗi nơi lại khác nhau với từng "Ma" ???
- Bài này có thể dùng Vlookup, nhưng đó là số lượng "Ma" va "Chi tiet" là số ít, còn trường hợp có hàng nghìn "Ma" em dùng VLookup rất là lâu, cứ mỗi "Ma" lại dùng một Vlookup tương ứng từ sheet "1" với sheet "Standard"
(Em nghĩ bài của em hỏi đúng chủ đề với mục này chứ ạ? " sử dụng hàm nào thay thế VLOOKUP trong trường hợp này?")
 
Bạn thử nhập 1 chữ cái thích hợp vô cột 'B' - vùng có dữ liệu của trang đó xem sao.

&&&%$R )(&&@@ @!##

Cảm ơn anh vì đã hiểu ý em hỏi!
Nhưng có 2 vấn đề:
- Mình nhập thì sẽ cho kết quả (lúc đúng lúc không. Ví dụ: với mã PSAN1 có chi tiet D trong "standard" nhưng tìm không ra trong sheet "1"
- Mình paste vào thì báo lỗi?
 
Chào anh!
Em cảm ơn vì lời góp ý của anh!
- hàm SeaLook cho kết quả không như câu hỏi của em. Vì mỗi "Ma", có nhiều "Chi tiet" khác nhau và có thể tên giống nhau nhưng "Gia" là khác nhau cho mỗi chi tiết ứng với "Ma". VD: trong ví dụ của em thì "Ma" PSAN1 và PSAN2 có cùng mã "Chi tiet" là A nhưng giá ở mỗi nơi lại khác nhau với từng "Ma" ???
- Bài này có thể dùng Vlookup, nhưng đó là số lượng "Ma" va "Chi tiet" là số ít, còn trường hợp có hàng nghìn "Ma" em dùng VLookup rất là lâu, cứ mỗi "Ma" lại dùng một Vlookup tương ứng từ sheet "1" với sheet "Standard"
(Em nghĩ bài của em hỏi đúng chủ đề với mục này chứ ạ? " sử dụng hàm nào thay thế VLOOKUP trong trường hợp này?")

Bạn chỉ giùm tôi chỗ sai để còn biết mà sửa?
 
cám ơn các bác mình đã làm được rùi, dùng hàm if lồng and, có nghĩa là 5 đến dưới 10 các ngưỡng khác tương tự.

công thức cảnh báo nhập trùng dữ liệu trong excel
Các bác giúp mình cài đặt công thức cảnh báo dữ liệu đã nhập trong excel như sau
VD: trong bảng tính đã nhập số CMND: 12345678910, nay nhập lại số này trên cùng 1 bảng tính máy sẽ cảnh cảnh báo trùng,
Mong các bác sớm chỉ giáo.
 
Chỉnh sửa lần cuối bởi điều hành viên:
Xem trong file có vậy không nghen?

PHP:
 - Mình nhập thì sẽ cho kết quả (lúc đúng lúc không. Ví dụ: với mã PSAN1 
           có chi tiet D trong "standard" nhưng tìm không ra trong sheet "1"
  -  Mình paste vào thì báo lỗi?
 

File đính kèm

cám ơn các bác mình đã làm được rùi, dùng hàm if lồng and, có nghĩa là 5 đến dưới 10 các ngưỡng khác tương tự.

công thức cảnh báo nhập trùng dữ liệu trong excel
Các bác giúp mình cài đặt công thức cảnh báo dữ liệu đã nhập trong excel như sau
VD: trong bảng tính đã nhập số CMND: 12345678910, nay nhập lại số này trên cùng 1 bảng tính máy sẽ cảnh cảnh báo trùng,
Mong các bác sớm chỉ giáo.

Bạn có thể tham khảo bài viết này. Rất chi tiết và dễ hiểu. Tuy nhiên, khi nhập số liệu không được dùng Ctrl-D, thì nó vẫn cho phép trùng với số ở hàng kế bên trên và chỉ áp dụng đối với dò tìm trên cùng 1 column

http://forum.vietnamlearning.vn/showthread.php?t=595
 
Cám ơn bạn Tuyenbw nhiều, mình sẽ thử sao nhé.
 

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

Back
Top Bottom