Sheet NV, E4Như tiêu đề, mình gửi đính kèm file có 2 Sheet:
+Sheet NV, Tên và SĐT khách hàng --> Cần dựa vào SĐT bên Sheet DS để tự điền đúng tên NV Giới Thiệu.
+Sheet DS, gồm danh sách nhân viên và SĐT khách quen của NV đó.
Cảm ơn các bác ra tay hỗ trợ^^
=INDEX(DS!$A$1:$E$1,MAX(INDEX((DS!$A$2:$E$20=C4)*COLUMN(DS!$A$1:$E$1),,)))
Sub ThemSoDT()
Dim Rng As Range, sRng As Range, Cls As Range
Dim MyAdd As String
Sheets("NV").Select
With Sheets("DS")
Set Rng = .[B2].CurrentRegion
For Each Cls In Range([C4], [C4].End(xlDown))
Set sRng = Rng.Find(Cls.Value, , xlFormulas, xlWhole)
If sRng Is Nothing Then
Cls.Offset(, 2).Value = "Nothing"
Else
MyAdd = sRng.Address
Do
Cls.Offset(, 2).Value = .Cells(1, sRng.Column).Value
Set sRng = Rng.FindNext(sRng)
Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
End If
Next Cls
End With
End Sub
mình áp công thức vào file chính, đảm bảo mỗi số ĐT là duy nhất, mà không hiểu sao chỉ đúng tới STT 9 (ô C12), từ ô C13 trở đi thì lại sai, sai nhiều nhất là ở NV A và NV E.Sheet NV, E4
Các số điện thoại sheet DS phải là duy nhấtMã:=INDEX(DS!$A$1:$E$1,MAX(INDEX((DS!$A$2:$E$20=C4)*COLUMN(DS!$A$1:$E$1),,)))
STT | TÊN KHÁCH | ĐIỆN THOẠI | SỐ LẦN MUA | NV GIỚI THIỆU | ||||||||||
1 | Khách 01 | 0966501111 | 85 | NV A | ||||||||||
2 | Khách 02 | 0986900111 | 75 | NV E | ||||||||||
3 | Khách 03 | 0336118111 | 66 | NV A | ||||||||||
4 | Khách 04 | 0835271111 | 55 | NV C | ||||||||||
5 | Khách 05 | 0325853111 | 45 | NV B | ||||||||||
6 | Khách 06 | 0844300111 | 32 | NV A | ||||||||||
7 | Khách 07 | 0913877111 | 30 | NV B | ||||||||||
8 | Khách 08 | 0945278111 | 30 | NV A | ||||||||||
9 | Khách 09 | 0917223111 | 29 | NV B | ||||||||||
10 | Khách 10 | 0979037111 | 21 | Nothing | ||||||||||
11 | Khách 11 | 0837370111 | 18 | Nothing | ||||||||||
12 | Khách 12 | 0974777111 | 17 | Nothing | ||||||||||
13 | Khách 13 | 0918210111 | 15 | Nothing | ||||||||||
14 | Khách 14 | 0828382111 | 15 | Nothing | ||||||||||
15 | Khách 15 | 0908790111 | 13 | NV A | ||||||||||
16 | Khách 16 | 0377166111 | 12 | Nothing | ||||||||||
17 | Khách 17 | 0834549111 | 11 | NV B | ||||||||||
18 | Khách 18 | 0832055111 | 11 | NV A | ||||||||||
19 | Khách 19 | 0369819111 | 11 | Nothing | ||||||||||
20 | Khách 20 | 0827491111 | 10 | Nothing |
Như tiêu đề, mình gửi đính kèm file có 2 Sheet:
+Sheet NV, Tên và SĐT khách hàng --> Cần dựa vào SĐT bên Sheet DS để tự điền đúng tên NV Giới Thiệu.
+Sheet DS, gồm danh sách nhân viên và SĐT khách quen của NV đó.
Cảm ơn các bác ra tay hỗ trợ^^
View attachment 261843
E4 =IFERROR(INDEX(DS!$A$1:$E$1,INDEX(MAX((DS!$A$2:$E$20=C4)*COLUMN(DS!$A$1:$E$1)),)),"")
Khách 19, 20, ... không tìm được nhân viênSheet NV, E4
Các số điện thoại sheet DS phải là duy nhấtMã:=INDEX(DS!$A$1:$E$1,MAX(INDEX((DS!$A$2:$E$20=C4)*COLUMN(DS!$A$1:$E$1),,)))
Nếu không tìm thấy số điện thoại nào thì Max() trả về 0, mà Index(,0) sẽ trả về ô đầu tiên của vùng A1: E1. Phải cài bẫy lỗi:Mã:E4 =IFERROR(INDEX(DS!$A$1:$E$1,INDEX(MAX((DS!$A$2:$E$20=C4)*COLUMN(DS!$A$1:$E$1)),)),"")
Khách 19, 20, ... không tìm được nhân viên
Mã:E4 =IFERROR(INDEX(DS!$A$1:$E$1,INDEX(MAX((DS!$A$2:$E$20=C4)*COLUMN(DS!$A$1:$E$1)),)),"")
Khách 19, 20, ... không tìm được nhân viên
đã thử và hiện ô trống rất nhiềuNếu không tìm thấy số điện thoại nào thì Max() trả về 0, mà Index(,0) sẽ trả về ô đầu tiên của vùng A1: E1. Phải cài bẫy lỗi:
=IFERROR(INDEX(DS!$A$1:$E$1,1/INDEX(1/MAX((DS!$A$2:$E$20=C13)*COLUMN(DS!$A$1:$E$1)),)),"")
Chúc anh ngày vui
Vậy thử thêm 2 công thức này xem sao:Bổ sung giúp mình, không tìm thấy NV giới thiệu thì để ô trống hoặc chèn kí tư "x" vào không.
Hiện tại không tìm được NV thì công thức gán tên NV E vào hết nên chưa xài được.
đã thử và hiện ô trống rất nhiều
=IFERROR(INDEX(DS!$A$1:$E$1,INDEX(1/(1/MAX((DS!$A$2:$E$20=C4)*COLUMN(DS!$A$1:$E$1))),)),"")
=IFERROR(LOOKUP(2,1/MMULT(COLUMN(OFFSET($A$1,,,,19))^0,N(C4=DS!$A$2:$E$20)),DS!$A$1:$E$1),"")
Cảm ơn bạn, mình áp thử công thức đầu, kéo xuống 100 dòng thử thì thấy chính xác rồi.Vậy thử thêm 2 công thức này xem sao:
Hoặc:Mã:=IFERROR(INDEX(DS!$A$1:$E$1,INDEX(1/(1/MAX((DS!$A$2:$E$20=C4)*COLUMN(DS!$A$1:$E$1))),)),"")
Mã:=IFERROR(LOOKUP(2,1/MMULT(COLUMN(OFFSET($A$1,,,,19))^0,N(C4=DS!$A$2:$E$20)),DS!$A$1:$E$1),"")
Thân