Xin giúp đỡ tìm dữ liệu trong sheet khác (2 người xem)

  • Thread starter Thread starter notopen
  • Ngày gửi Ngày gửi
Liên hệ QC

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

notopen

Thành viên mới
Tham gia
9/3/13
Bài viết
25
Được thích
0
Kg các anh chị em.

Em đang lay hoay không biết dùng hàm gì trong trường hợp
này, em có giải thích rõ trong file đính kèm, mong ace bớt chút
thời gian xem và hướng dẫn giúp cho.

Em cảm ơn
 

File đính kèm

Chỉ có 4 bảng này thôi hả bạn, có lẽ nào thực tế nhiều hơn 4 bảng hay không?
Hỏi thêm bạn 1 vấn đề nữa là dữ liệu tìm kiếm tại các cột B, F, J, N có khi nào trùng nhau không, ví như cột B có A và cột F có A, khi đó sẽ lấy như thế nào????
Còn chỉ có 4 bảng này và dữ liệu không trùng thì vẫn có thể áp dụng Vlookup() kết hợp với If() và Isna() đó.
 
Hi Bạn

Cảm ơn bạn, các dữ liệu như bạn nói sẽ không trùng nhau đâu, hoặc nếu trùng thì có lệnh nào
có thể báo lỗi không nhỉ? mình cũng đang tìm hiểu xem làm như thế nào.

Bạn viết giúp mình lệnh với nhé (trong trường hợp không trùng vậy)
 
Hi Bạn

Cảm ơn bạn, các dữ liệu như bạn nói sẽ không trùng nhau đâu, hoặc nếu trùng thì có lệnh nào
có thể báo lỗi không nhỉ? mình cũng đang tìm hiểu xem làm như thế nào.

Bạn viết giúp mình lệnh với nhé (trong trường hợp không trùng vậy)
Thử thế này xem nhưng chỗ anh K thì bạn tính sao bây giờ????
 

File đính kèm

Lần chỉnh sửa cuối:
Hi bạn hoamattroicoi

Cảm ơn bạn rất nhiều, bạn có thể giải thích giúp ý nghĩa 2 câu lệnh ở dưới được không?
Lệnh hay quá mà mình không hiểu bản chất của nó thì khó nhớ lắm.

=TRIM(IF(ISNA(V_1),"",V_1)&IF(ISNA(V_2),"",V_2)&IF(ISNA(V_3),"",V_3)&IF(ISNA(V_4),"",V_4))
=TRIM(IF(TYPE(V_1)=16,"",V_1)&IF(TYPE(V_2)=16,"",V_2)&IF(TYPE(V_3)=16,"",V_3)&IF(TYPE(V_4)=16,"",V_4))

Cảm ơn bạn nhiều
notopen
 
Hi bạn hoamattroicoi

Cảm ơn bạn rất nhiều, bạn có thể giải thích giúp ý nghĩa 2 câu lệnh ở dưới được không?
Lệnh hay quá mà mình không hiểu bản chất của nó thì khó nhớ lắm.

=TRIM(IF(ISNA(V_1),"",V_1)&IF(ISNA(V_2),"",V_2)&IF(ISNA(V_3),"",V_3)&IF(ISNA(V_4),"",V_4))
=TRIM(IF(TYPE(V_1)=16,"",V_1)&IF(TYPE(V_2)=16,"",V_2)&IF(TYPE(V_3)=16,"",V_3)&IF(TYPE(V_4)=16,"",V_4))

Cảm ơn bạn nhiều
notopen
Sorry bạn, mình quê mùa quá, dùng ISNA() cho nó ngắn mà quên kéo lại công thức, 2 công thức trên tương đương nhau thôi, xem lại trong file đính kèm nhé, hoặc kéo lại công thức sang bên phải trong file bạn mới tải về trước đó.
Muốn xem chi tiết V_1,V_2....thì bấm Ctrl+F3 để xem công thức trong name nha, toàn là Vlookup() thôi chẳng có gì to tát đâu, mình đặt Name cho công thức nó gọn ý mà!
 
Hi bạn hoamattroicoi

Cảm ơn bạn rất nhiều, bạn có thể giải thích giúp ý nghĩa 2 câu lệnh ở dưới được không?
Lệnh hay quá mà mình không hiểu bản chất của nó thì khó nhớ lắm.

=TRIM(IF(ISNA(V_1),"",V_1)&IF(ISNA(V_2),"",V_2)&IF(ISNA(V_3),"",V_3)&IF(ISNA(V_4),"",V_4))
=TRIM(IF(TYPE(V_1)=16,"",V_1)&IF(TYPE(V_2)=16,"",V_2)&IF(TYPE(V_3)=16,"",V_3)&IF(TYPE(V_4)=16,"",V_4))

Cảm ơn bạn nhiều
notopen

Lên diễn đàn tìm hiểu về các hàm Trim, IsNA,và IF :( mình giải thích qua một cụm nhỏ trong câu lệnh để bạn ngâm cứu )
ở câu lệnh 1 : bạn vào define Name xem tên các vùng V-1, V-2 ,V-3,V-4 tương đương với 4 câu lệnh sau :
PHP:
=VLOOKUP('Du lieu can tim'!$C$5,bang1,COLUMN('Du lieu can tim'!B1),0)
Bạn hiểu là nếu hàm vlookup ở trên không tìm thấy giá trị ---> sẽ trả về lỗi #NA do đó câu lệnh
PHP:
IF(ISNA(V_1),"",V_1)
sẽ cho ra kết quả như sau :
Nếu hàm bị lỗi :---> giá trị trả về là rỗng ""
Nếu không bị lỗi : ----> sẽ trả về giá trị tìm thấy cụ thể là ô [C3] = L-102

----> các vế còn lại bạn ngâm cứu tiếp --> cứ đi là đến ^^
 
Cảm ơn bạn nhé
Mình sẽ nghiên cứu thêm
 
Cảm ơn bạn hungpecc1 nhé, thêm cái này nữa bạn notopen cần chú ý :

=VLOOKUP('Du lieu can tim'!$C$5,bang1,COLUMN('Du lieu can tim'!B1),0)

Chỗ bôi đỏ đó là số thứ tự cột trả về trong của bảng tham chiếu, mình k để số chết là 2 để khi bạn kéo công thức sang phải thì chỗ đỏ đó chuyển thành COLUMN('Du lieu can tim'!C1) khi đặt name cho công thức này hãy để con trỏ chuột tại vị trí ô đặt kết quả tìm kiểm để công thức trả kết quả chuẩn, cái này nó hơi động 1 chút không phải name chết.
 
Nếu dữ liệu tìm kiếm là duy nhất, thử dùng công thức mảng này xem sao:
Công thức ở [D5]:
=IF(COUNTIF(data1!$B$3:$P$18,$C$5),VLOOKUP($C$5,OFFSET(INDIRECT(ADDRESS(3,MAX(IF(data1!$B$3:$P$18=$C$5,COLUMN(data1!$B$3:$P$18),0)),,,"data1")),,,15,3),COLUMN(B:B),0),"Hổng có")
Ctrl + Shift + Enter, kéo sang phải
Híc, nhìn 8 cái "nem" của Bé Còi muốn té xỉu, hết muốn nhậu luôn
Thân
 
Nếu dữ liệu tìm kiếm là duy nhất, thử dùng công thức mảng này xem sao:
Công thức ở [D5]:

=IF(COUNTIF(data1!$B$3:$P$18,$C$5),VLOOKUP($C$5,OF FSET(INDIRECT(ADDRESS(3,MAX(IF(data1!$B$3:$P$18=$C $5,COLUMN(data1!$B$3:$P$18),0)),,,"data1")),,,15,3 ),COLUMN(B:B),0),"Hổng có")

Ctrl + Shift + Enter, kéo sang phải
Híc, nhìn 8 cái "nem" của Bé Còi muốn té xỉu, hết muốn nhậu luôn
Thân

Bác concogia có ý tưởng công thức rất hay

chỉnh chu chút cho thêm phần hay hay

Đã giả thiết các giá trị trong vùng bảng tra (data1!$B$3:$P$18) là duy nhất (giá trị của 1 cell không đụng hàng với bất kỳ cells nào khác bản thân nó),

vậy thì sao Address, Indirect chi cho mệt khi đã bit vị trí dò tìm

dưới đây là công thức cho D5 chỉ dùng Offset thuần - công thức này chỉ cần bấm phím ENTER

PHP:
=OFFSET(data1!$A$1,MAX(INDEX((data1!$B$3:$P$18=$C5)*ROW(data1!$B$3:$P$18),0))-1,MAX(INDEX((data1!$B$3:$P$18=$C5)*COLUMN(data1!$B$3:$P$18),0))-1+COLUMN(A:A),1,1)

copy kéo sang phải cho E5 , ...
có thể copy xuống cho các dòng tiếp theo 6,7 ... khi cần tra cho C6,C7...
nếu ô kết quả giá trị là #ref thì nghĩa là không giá trị tra không có trong bảng

Nếu cẩn thận như bác concogia thì thêm IF cho trường hợp giá trị tra không có trong bảng như sau

PHP:
=IF(COUNTIF(data1!$B$3:$P$18,$C5),OFFSET(data1!$A$1,MAX(INDEX((data1!$B$3:$P$18=$C5)*ROW(data1!$B$3:$P$18),0))-1,MAX(INDEX((data1!$B$3:$P$18=$C5)*COLUMN(data1!$B$3:$P$18),0))-1+COLUMN(A:A),1,1),"Không có")
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom