Các câu hỏi về hàm dò tìm dữ liệu (Lookup, Vlookup, Hlookup...)

Liên hệ QC

Closed poll

  • 1

    Votes: 1 100.0%
  • 2

    Votes: 0 0.0%

  • Total voters
    1
  • Poll closed .
Status
Không mở trả lời sau này.
Giúp tớ lập công thức

A B
1 ĐiểmTB Mã điểm
2 ? A01


A B C D
4 Mã điểm Toán Văn Trung
5 A01 10 8 7
.....
=VLOOKUP(B2,$A$4:$D$5,AVERAGE(?????),1)
Thanks!
 
Dear ngocxit000,
-----------------
A_________ B______ C______ D________E_______
4 Mã điểm__ Toán__ Văn___ Trung___ Trung bình
5 A01______ 10____ 8_____ 7_______ =AVERAGE($B5:$D5)
.....
A2=VLOOKUP($B2,$A$4:$E$5,5,0)
 
Có thể vận dụng
A B
1 ĐiểmTB Mã điểm
2 ? A01


A..........B...... C..... D
4 Mã điểm Toán Văn Trung
5 A01..... 10...... 8.... 7
....

A2=SUMPRODUCT(($A$5:$A$14=$B$2)*($B$5:$D$14))/3
 
Giúp em về hàm vlookup!

Phần câu hỏi em đã post trong file attack phần comment, các anh chị biết thì giúp em với, em đang rất cần.
Chúc các anh chị và diễn đàn ngày một đi lên.
 

File đính kèm

  • helpme.xls
    14.5 KB · Đọc: 334
Bạn thử xem sao:

=IF(ISERROR(IF($C10>$F$4,VLOOKUP(B10,gia,3,0),VLOOKUP(B10,gia,2,0))),0,IF($C10>$F$4,VLOOKUP(B10,gia,3,0),VLOOKUP(B10,gia,2,0)))
 
Hãy dùng hàm ISNA(), phần help nói rất rõ.
 
To Shinec:
1./ /(hông nên trả về 'O' khi hàm gặp lỗi, vì rằng 'O' cũng có lúc là giá trị đúng mà hàm trả về! ( Mà nên trả về là khoảng trắng, dấu nháy đơn hay đôi hay vài kí tự khác).
2./ Ngoài 2 hàm mà các bạn # đã chỉ ra, mình khuyên bạn nghiên cứu mở rộng với hàm =Type()
VD:
=If(Type(VLOOKUP(LooKupV;CSDL ;iCol; 0)=16 ; "";VLOOKUP(LooKupV; CSDL ;iCol; 0))
(Bạn xem thêm trong fần Help!)
 
Bạn có thể dùng match & index :
=IF(ISERROR(MATCH(B7;MaHang;0))=FALSE;IF(C7>$F$4;INDEX(Gia2;MATCH(B7;MaHang;0);0);INDEX(Gia1;MATCH(B7;MaHang;0);0));0)

Thân!
 
Cái này mình dùng để tính tiền, nếu nó trả về #N/A * number nó cũng ra #N/A nên khi sum nó báo lỗi, trả về 0 thì *number nó cũng về 0, chẳng ảnh hưởng gì. Mình mới tập tành bên excel nên chỉ nghĩ đến đó, thời gian sau mình sẽ học hỏi thêm. Mong các bạn giúp đỡ!
 
Shinec đã viết:
Cái này mình dùng để tính tiền, nếu nó trả về #N/A * number nó cũng ra #N/A nên khi sum nó báo lỗi, trả về 0 thì *number nó cũng về 0, chẳng ảnh hưởng gì. Mình mới tập tành bên excel nên chỉ nghĩ đến đó, thời gian sau mình sẽ học hỏi thêm. Mong các bạn giúp đỡ!

Bạn làm như sau:
=IF(ISNA(VLOOKUP(B7,gia,IF(C7>$F$4,3,2),0)),0,VLOOKUP(B7,gia,IF(C7>$F$4,3,2),0))
 
(ó cách không dùng 3 hàm của excel:

Thay vì:
=IF(ISNA(VLOOKUP(B7,gia,IF(C7>$F$4,3,2),0)),0,VLOOKUP(B7,gia,IF(C7>$F$4,3,2),0))
hay:
=IF(TYPE(VLOOKUP(B5,C$2:E$28,3,0))=16,"0",VLOOKUP(B5,C$2:E$28,3,0))
ta có thể dùng hàm tự tạo sau:
Mã:
[b]Function eError(formula As Variant, Show As String)[/b]
    On Error GoTo ErrorHandler
    If IsError(formula) Then eError = Show Else eError = formula
    Exit Function
ErrorHandler:           Resume Next
     
[b]End Function [/b]

/(hi đó cú pháp sẽ là:
=eError(VLOOKUP(B5,C$2:E$28,3,0),0)

(ũng chỉ để tham khảo cho &ui thôi nha!
 
Trời... cần gì phải "Đao to búa lớn" thế... Theo tôi thì: Cell mà bạn đang bị lỗi đang chứa công thức: =IF($C10>$F$4,VLOOKUP(B10,gia,3,0),VLOOKUP(B10,gia,2,0)))... Giờ chỉ cần thêm 1 cái IF nữa là xong: =IF(C10="",0,(IF($C10>$F$4,VLOOKUP(B10,gia,3,0),VLOOKUP(B10,gia,2,0))))
Bạn xem thử có giúp gì ko?
Chúc thành công nha!
ANH TUẤN
 
Dear all,
--------
Anh SQL làm Đao Phủ, các bạn không biết à! Nhưng mà quả Đao của anh í hôm nay không mài nên hơi... cùn thì phải:

Đao Phủ SQL đã viết:
Function eError(formula As Variant, Show As String)
On Error GoTo ErrorHandler
If IsError(formula) Then eError = Show Else eError = formula
Exit Function
ErrorHandler: Resume Next
End Function

- Nếu đã là Funtion thì nên khai báo kiểu dữ liệu cho nó, kể cả chưa biết kết quả đó sẽ là kiểu gì (thì khai báo nó As Variant).
Ở đây, sau khi khai đao và ... "chảm" Function eError sẽ trả về 1 chuỗi trên Formula nên có thể xác định eError As String.
- formula (nên đặt tên khác với thuộc tính) là một công thức nên nó có kiểu là một String. Show là giá trị trả về nếu formula IsError nhưng nó có khả năng tính toán được nên khai báo nó ở dạng số (Interger, Long...).
-...
(Hình như sắp lạc đề!)

Túm lại, nếu các bạn muốn làm nghề Đao Phủ giống như anh SQL thì chịu khó gọt rũa cho cái đao của mình từng li từng tí một.
Càng rũa bao nhiêu - càng sắc bấy nhiêu!
 
Có gì mà ko hiểu nhỉ? Công thức bạn ấy về cơ bản là đúng rồi. Chỉ vướng mắc ở 1 chổ là nó chỉ đúng khi cột C có dữ liệu, nếu cột C la rỗng thì công thức sẽ báo lỗi... Vì thế mà tôi thêm 1 hàm IF nữa đặt ở phía trước. Nghĩa là nếu cột C = rỗng thì cho ra kết quả = 0, ngược lại thì làm theo công thức cũ... Thế thôi
ANH TUẤN
 
em cần hỏi một vấn đề nhỏ ah, mong các bạn ai biết xin chỉ giúp.Thanks

Em ko biết hàm Vlookup, Hlookup va hàm IF có Ưu Điểm và hạn chế của mấy hàm đó là gì? Ai biết xin chỉ em, em đang rất cần biết rất gấp ah -\\/. . Cảm ơn nhiều -=.,, ... Tuni

______________

Bạn xem cách đặt tên đề bài tại đây nha!.
 
Chỉnh sửa lần cuối bởi điều hành viên:
imissu18 đã viết:
Em ko biết hàm Vlookup, Hlookup va hàm IF có Ưu Điểm và hạn chế của mấy hàm đó là gì? Ai biết xin chỉ em, em đang rất cần biết rất gấp ah -\\/. . Cảm ơn nhiều -=.,, ... Tuni
Ưu điểm thì nhiều vô kể; xài chỗ nào được thì là ưu điểm;
Hạn chế: HLOOPKUP() & VLOOKUP(): chỉ trả về 1 KQuả khi trong CSDL có tới vài KQuả tương tự;
Hàm IF() với excel <2004 thì chỉ được xài 7 IF trong 1 hàm mà thôi; Nhiều hơn bạn phải dùng ~ hàm khác, như CHOOSE() Hay hơn nữa là SWITCH() trong VBA (một khi trên 30 đối số vẫn chưa đủ cho bạn trong hàm CHOOSE() nêu trên!)
Đề nghị mọi người bổ sung cho thêm phần vui vẽ!
:=\+
 
Vâng đúng như bạn HYen17 vừa trình bày.

Mình chỉ xin đóng góp thêm là nếu cần nhiều các boolean test if thì nên xài Case trong VBA thì đơn giản và tha hồ có bao nhiêu if cũng được.

Mến
 
Hàm nào mà không trả về 1 kết quả. Hạn chế của Vlookup, Hlookup là phải tìm từ dòng đầu hay cột đầu (lookup_value). Rất hạn chế.
Còn hàm if thì như trên.
 
ThuNghi đã viết:
Hàm nào mà không trả về 1 kết quả. Hạn chế của Vlookup, Hlookup là phải tìm từ dòng đầu hay cột đầu (lookup_value). Rất hạn chế.
Còn hàm if thì như trên.

Mình thì hay dùng Index và Match thay cho Vlookup, mặt mạnh của anh này lại là nhược của anh kia:

Index + Match : Tìm kiếm 2 chiều, cột mã có thể nằm ở bất cứ đâu (phải, trái, giữa), Khi đặt name thì không quan tâm đến cột nằm chỗ nào, mà chỉ quan tâm đến name
VD : = Index(DMHHTen;Match(B1;DMHHMa;0);0)
Tuy nhiên ta lại phải đặt ra rất nhiều name cho từng cột
(Khổ 1 lần, sướng dài dài)
Vlookup : Chỉ cần 1 name duy nhất là toàn bộ bảng, công thức ngắn gọn (đặc biệt trong lập trình), tuy nhiên khi cột mã bao giừo cũng là đầu tiên, khi thay đổi thứ tự cột trong bảng thì công thức tham chiếu (chỉ cột thứ mấy) sẽ bị sai

Thân!
 
Status
Không mở trả lời sau này.
Web KT
Back
Top Bottom