Tìm số Hóa đơn (1 người xem)

Liên hệ QC

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

Dùng công thức không cần lập trình được không bạn?
Mã:
=MATCH(F1,B5:B23,0)
 
Upvote 0
Dùng công thức không cần lập trình được không bạn?

Bài này Chắc phải VBA thì mới thuận tiện
 
Upvote 0
Dùng công thức không cần lập trình được không bạn?
Mã:
=MATCH(F1,B5:B23,0)

Người ta chỉ ví dụ thế thôi chứ SHD làm gì mà 1, 2, 3... như số thứ tự thế kia ---> Không thể dùng hàm MATCH được rồi
1> Dùng LOOKUP
Mã:
=LOOKUP(2,1/($B$5:$B$23=F1),$A$5:$A$23)
2> Dùng INDEX + MATCH
Mã:
=INDEX($A$5:$A$23,MATCH(F1,$B$5:$B$23,0))
Nói chung là cả đống cách
 
Upvote 0
Người ta chỉ ví dụ thế thôi chứ SHD làm gì mà 1, 2, 3... như số thứ tự thế kia ---> Không thể dùng hàm MATCH được rồi
1> Dùng LOOKUP
Mã:
=LOOKUP(2,1/($B$5:$B$23=F1),$A$5:$A$23)
Chậc.....Chuẩn luôn !
làm bằng VBA thì tốt quá (Sợ bị xóa công thức). Cám ơn rất nhiều ..
=LOOKUP(2,1/($B$5:$B$23=F1),$A$5:$A$23). Số 2,1 nó là cái gì thế nhỉ...chưa hiểu?????
 
Lần chỉnh sửa cuối:
Upvote 0
Chậc.....Chuẩn luôn !
làm bằng VBA thì tốt quá (Sợ bị xóa công thức). Cám ơn rất nhiều ..
=LOOKUP(2,1/($B$5:$B$23=F1),$A$5:$A$23). Số 2,1 nó là cái gì thế nhỉ...chưa hiểu?????

Hổng phải là 2,1 nha! Nó gồm 3 "khúc"
- Số 2 là 1 khúc (khúc 1)
- 1/($B$5:$B$23=F1) là 1 khúc (khúc 2)
- $A$5:$A$23 là 1 khúc (khúc 3)
Tóm lại: Tìm khúc 1 (số 2) có trong khúc 2 và trả về kết quả ở khúc 3. Thế thôi
------------
Cái LOOKUP(2, 1/(.... này nói nhiều trên diễn đàn rồi
 
Upvote 0
Người ta chỉ ví dụ thế thôi chứ SHD làm gì mà 1, 2, 3... như số thứ tự thế kia ---> Không thể dùng hàm MATCH được rồi
1> Dùng LOOKUP
Mã:
=LOOKUP(2,1/($B$5:$B$23=F1),$A$5:$A$23)
Chậc.....Chuẩn luôn !
làm bằng VBA thì tốt quá (Sợ bị xóa công thức). Cám ơn rất nhiều ..
=LOOKUP(2,1/($B$5:$B$23=F1),$A$5:$A$23). Số 2,1 nó là cái gì thế nhỉ...chưa hiểu?????
Muốn VBA thì xài thử cái này cho sheet1:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
Dim Arr(), I As Long, DK As String, Num As Long
If Target.Address = "$F$1" Then
DK = UCase(Target)
Arr = Range([A5], [B65536].End(xlUp)).Value
For I = 1 To UBound(Arr, 1)
If UCase(Arr(I, 2)) = DK Then
Num = Num + 1
[F2].Value = Arr(I, 1)
Exit Sub
End If
Next I
If Num = 0 Then
[F2] = Empty
MsgBox "Khong tim thay!", , "GPE"
End If
End If
End Sub[/GPECODE]
 
Upvote 0
Muốn VBA thì xài thử cái này cho sheet1:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
Dim Arr(), I As Long, DK As String, Num As Long
If Target.Address = "$F$1" Then
DK = UCase(Target)
Arr = Range([A5], [B65536].End(xlUp)).Value
For I = 1 To UBound(Arr, 1)
If UCase(Arr(I, 2)) = DK Then
Num = Num + 1
[F2].Value = Arr(I, 1)
Exit Sub
End If
Next I
If Num = 0 Then
[F2] = Empty
MsgBox "Khong tim thay!", , "GPE"
End If
End If
End Sub[/GPECODE]
Dùng mảng thì hay rồi, nhưng với bài toán tìm kiếm 1 trả về 1 thì em nghĩ dùng Find Method hay hơn (và ngắn gọn hơn rất nhiều)
 
Upvote 0
Muốn VBA thì xài thử cái này cho sheet1:
[GPECODE=vb]Private Sub Worksheet_Change(ByVal Target As Range)
Dim Arr(), I As Long, DK As String, Num As Long
If Target.Address = "$F$1" Then
DK = UCase(Target)
Arr = Range([A5], [B65536].End(xlUp)).Value
For I = 1 To UBound(Arr, 1)
If UCase(Arr(I, 2)) = DK Then
Num = Num + 1
[F2].Value = Arr(I, 1)
Exit Sub
End If
Next I
If Num = 0 Then
[F2] = Empty
MsgBox "Khong tim thay!", , "GPE"
End If
End If
End Sub[/GPECODE]

CODE này lúc chạy lúc không.....thử lúc đầu thì ngon----> thật thì lại "không tìm thấy"...ẹc ẹc
cho dữ liệu thật khoảng 10 dòng thì OK -----> hơn 100 dòng thì "không tìm thấy", bạn xem lại giúp nhé.
 
Upvote 0
Vậy thì bạn cho dữ liệu thật lên xem nào
Bây giờ thì được rồi.....copy 10 dòng đầu --> OK, 10 dòng tiếp theo --> OK, 20 dòng tiếp theo --> "không tìm thấy", xóa 20 dòng vừa copy --> OK, copy 10 dòng tiếp theo -->...... cứ thế... cứ thế... thế mà lại được... chậc. (dữ liệu hơi nhạy cảm, mong các bạn thông cảm). cám ơn nhiều nhé
 
Upvote 0
CODE này lúc chạy lúc không.....thử lúc đầu thì ngon----> thật thì lại "không tìm thấy"...ẹc ẹc
cho dữ liệu thật khoảng 10 dòng thì OK -----> hơn 100 dòng thì "không tìm thấy", bạn xem lại giúp nhé.

mình nghĩ code của bác bate còn thiếu 1 phần là nhả lọc hoặc unhide rows thì mới bảo toàn 100% kết quả đúng. :-=
 
Upvote 0
Upvote 0
Bạn "đoán mò" thì cũng như không thôi, chỉ khi nào thấy file, thấy lỗi mới biết được là lỗi gì.

e ko dám nói bừa đâu bác :-=, do hôm bữa có nghe bác HTN nói về mảng và có đề cập đến vấn đề nhả lọc này.
Thủ thuật tạo một Array từ một Range (#1, lưu ý 7)

'- - -
bác xem file đính kèm nhé, lỗi là do xác định xlUp (nếu tìm từ AC1 -> AC6)

Link: https://www.mediafire.com/?z489idcbwzg803o
 
Lần chỉnh sửa cuối:
Upvote 0

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

Back
Top Bottom