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

  • Thread starter Thread starter songlon
  • Ngày gửi Ngày gửi
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.
Cái name chỉ là phần phụ thôi bạn à.
Nếu bạn chưa tìm hiểu về công thức mảng thì bạn sẽ khó hiểu được nội dung của công thức. BẠn thử tìm hiểu về mảng trên diễn đàn trước nhé. Sau đó các bạn sẽ giải thích tường tận cho bạn.
Dạ. em biết file sử dụng chủ yếu VBA, nhưng có đặt name:
="'"&INDEX(Tonghop!$H$2:$H$9,MATCH(1,COUNTIF(INDIRECT("'"&Tonghop!$H$2:$H$9&"'!A2:A1000"),Tonghop!$A9),0),)&"'!A2:C1000"
nhưng lại không hiểu tại sao lại để """" rồi nối nó lại với công thức bằng &. Nói chung em muốn hiểu lý do, và kỹ thuật để em biết ứng dụng các công thức cho nó linh hoạt hơn.
Bên cạnh đó em tìm hiểu và đọc về indỉect nhiều nhưng vẫn chẳng thể ứng dụng nó được. Thanks.
 
Dạ. em biết file sử dụng chủ yếu VBA, nhưng có đặt name:
="'"&INDEX(Tonghop!$H$2:$H$9,MATCH(1,COUNTIF(INDIRECT("'"&Tonghop!$H$2:$H$9&"'!A2:A1000"),Tonghop!$A9),0),)&"'!A2:C1000"
nhưng lại không hiểu tại sao lại để """" rồi nối nó lại với công thức bằng &. Nói chung em muốn hiểu lý do, và kỹ thuật để em biết ứng dụng các công thức cho nó linh hoạt hơn.
Bên cạnh đó em tìm hiểu và đọc về indỉect nhiều nhưng vẫn chẳng thể ứng dụng nó được. Thanks.
Hoàn toàn là công thức, không có VB đâu. Bạn tìm hiểu kỹ hàm indirect thì sẽ biết tại sao có dấu ' phía trước .Công thức
=VLOOKUP($A3;INDIRECT(Vung);3;0) vì indirect(vung) nên name vung phải có ' phía trước
 
dạ, em đã nhìn ra rồi, nó là "'" mà em chỉ nhìn ra "". cám ơn các bác.
 
dạ, em đã nhìn ra rồi, nó là "'" mà em chỉ nhìn ra "". cám ơn các bác.
Trong file đính kèm ở trên thì không cần đến dấu nháy (') .. nhưng tôi vẩn cho vào, dự phòng trường hợp tên sheet có khoảng trắng, hoặc tên sheet là tiếng Việt có dấu, hoặc tên sheet là số mà không đưa dấu nháy ấy vào xem như công thức toi mạng
Bạn có thể làm thí nghiệm để kiểm chứng
----------------
Chú ý thêm: Công thức tôi đưa lên chưa phải là tuyệt đối chính xác đâu, nó chỉ là gọi ý... Sẽ sai trong trường hợp danh mục ở các sheet không phải là duy nhất (ví dụ tại sheet đầu tiên có đến 2 dòng cùng là A001)
Các bạn tự chỉnh lại công thức trong name cho trường hợp này nhé!
Gọi ý sơ bộ:
Sửa name:
Vung ="'"&INDEX(Tonghop!$H$2:$H$9,MATCH(1,COUNTIF(INDIRECT("'"&Tonghop!$H$2:$H$9&"'!A2:A1000"),Tonghop!$A1),0),)&"'!A2:C1000"
Thành
Vung ="'"&INDEX(Tonghop!$H$2:$H$9,MATCH(TRUE,COUNTIF(INDIRECT("'"&Tonghop!$H$2:$H$9&"'!A2:A1000"),Tonghop!$A1)>0,0),)&"'!A2:C1000"
Hay là cái gì đó tùy ý các bạn
 
Lần chỉnh sửa cuối:
Xin giải đáp giúp hàm lồng If(vlookup........

Tại ô G5 mình đánh công thức tìm giá trị của vật liệu xi măng theo MVT vào thì trả kết quả ra 781 từ bảng VL, nhưng mình muốn những ô trống như ô C10, C12 ( ô màu vàng) không có MVT thì hàm tìm kiếm sẽ trả về giá trị 0 ( ô màu xanh).

Mục đích để khi làm với 1 bảng dài ko phải đi xóa từng vị trí NA rất mất thời gian

Hôm trước mình đã dùng hàm (ô màu tím)

IF(VLOOKUP(C23;VL!$B$4:$G$174;6;1)<>0;VLOOKUP(C5;VL!$B$4:$G$174;6;1);0) )(&&@@

lồng nhau nhưng chưa đựoc mong các bạn xem giúp
 

File đính kèm

Lần chỉnh sửa cuối:
Tại ô G5 mình đánh công thức tìm giá trị của vật liệu xi măng theo MVT vào thì trả kết quả ra 781 từ bảng VL, nhưng mình muốn những ô trống như ô C10, C12 ( ô màu vàng) không có MVT thì hàm tìm kiếm sẽ trả về giá trị 0 ( ô màu xanh).

Mục đích để khi làm với 1 bảng dài ko phải đi xóa từng vị trí NA rất mất thời gian

Hôm trước mình đã dùng hàm (ô màu tím)

IF(VLOOKUP(C5;VL!$B$4:$G$174;6;1)<>0;VLOOKUP(C5;VL!$B$4:$G$174;6;1);0) )(&&@@

lồng nhau nhưng chưa đựoc mong các bạn xem giúp
Bạn tham khảo tại đây:
http://www.giaiphapexcel.com/forum/showthread.php?t=12692
http://www.giaiphapexcel.com/forum/showthread.php?t=12692
 
Tại ô G5 mình đánh công thức tìm giá trị của vật liệu xi măng theo MVT vào thì trả kết quả ra 781 từ bảng VL, nhưng mình muốn những ô trống như ô C10, C12 ( ô màu vàng) không có MVT thì hàm tìm kiếm sẽ trả về giá trị 0 ( ô màu xanh).

Mục đích để khi làm với 1 bảng dài ko phải đi xóa từng vị trí NA rất mất thời gian

Hôm trước mình đã dùng hàm (ô màu tím)

IF(VLOOKUP(C23;VL!$B$4:$G$174;6;1)<>0;VLOOKUP(C5;VL!$B$4:$G$174;6;1);0) )(&&@@

lồng nhau nhưng chưa đựoc mong các bạn xem giúp


PHP:
G5 =IF(C5="","",VLOOKUP(C5,VL!$B$4:$G$174,6,1))
RỒI KÉO FILL CÔNG THỨC XUỐNG LÀ OKIE
 
Bạn giúp mình thêm tí nữa

PHP:
G5 =IF(C5="","",VLOOKUP(C5,VL!$B$4:$G$174,6,1))
RỒI KÉO FILL CÔNG THỨC XUỐNG LÀ OKIE


Ở vị trí này dấu nháy khoảng trống (mình bôi màu đỏ ấy mình làm chưa được =IF(C5="","" +-+-+-+ ...... nếu đc bạn đưa hàm vào file mình đã gửi và send lại giúp nhé+-+-+-+
 
Ở vị trí này dấu nháy khoảng trống (mình bôi màu đỏ ấy mình làm chưa được =IF(C5="","" +-+-+-+ ...... nếu đc bạn đưa hàm vào file mình đã gửi và send lại giúp nhé+-+-+-+

Có khó gì đâu, bạn copy công thức ở đây rồi dán vào ô G5 là okie mà
PHP:
G5 =IF(C5="","",VLOOKUP(C5,VL!$B$4:$G$174,6,1))

Nếu vẫn khó thì mời bạn xem file đính kèm
 

File đính kèm

Cảm ơn bạn nhiều

Có khó gì đâu, bạn copy công thức ở đây rồi dán vào ô G5 là okie mà
PHP:
G5 =IF(C5="","",VLOOKUP(C5,VL!$B$4:$G$174,6,1))
Nếu vẫn khó thì mời bạn xem file đính kèm


mình bị nhầm giữa dấu , và dấu ; .Rất rất cảm ơn bạn.


mình cug đã thử cách này : IF(ISNA(VLOOKUP(C5;VL!$B$4:$G$175;6;1));0;(VLOOKUP(C5;VL!$B$4:$G$175;6;1)))

nó chạy cungđc nhưng dài quá nhớ ko như của bạn, kết quả có khác nhau:-=


à mà dòng vật liệu khác nó cho kết quả là ko đúng bạn à, cái này mình lấy theo % VL chính (không có ở bảng VL). theo mình nên lồng ISNA vào thì loại bỏ đc giá vật liệu khác ra. (tức là ko có giá vật liệu khác nó sẽ trả về 0)


bạn xem lại giúp mình tí
 
Lần chỉnh sửa cuối:
mình bị nhầm giữa dấu , và dấu ; .Rất rất cảm ơn bạn.


mình cug đã thử cách này : IF(ISNA(VLOOKUP(C5;VL!$B$4:$G$175;6;1));0;(VLOOKUP(C5;VL!$B$4:$G$175;6;1)))

nó chạy cungđc nhưng dài quá nhớ ko như của bạn, kết quả có khác nhau:-=


à mà dòng vật liệu khác nó cho kết quả là ko đúng bạn à, cái này mình lấy theo % VL chính (không có ở bảng VL). theo mình nên lồng ISNA vào thì loại bỏ đc giá vật liệu khác ra. (tức là ko có giá vật liệu khác nó sẽ trả về 0)


bạn xem lại giúp mình tí

Bạn xem thế này được chưa?
 

File đính kèm

PHP:
IF(ISNA(VLOOKUP(C5;VL!$B$4:$G$175;6;1));0;(VLOOKUP(C5;VL!$B$4:$G$175;6;1)))
  1. VLOOKUP (lookup_value, table_array, col_index_num, range_lookup) : Dò tìm một hàng (row) chứa giá trị cần tìm ở cột đầu tiên (bên trái) của một bảng dữ liệu, nếu tìm thấy, sẽ tìm tiếp trong hàng này, và sẽ lấy giá trị ở cột đã chỉ định trước
  2. Nếu muốn bắt lối hàm VLOOKUP thì nên để tham số range_lookup = 0
  3. IF(ISNA(VLOOKUP(C5,VL!$B$4:$G$175,6,0)),0,(VLOOKUP(C5,VL!$B$4:$G$175,6,0)))
 
Lần chỉnh sửa cuối:
Cái đó gọi là Khác 1 đó bạn!
(Tức là không phải 1 thì được [True]).
 
Không phải giá trị của ô B33 = 1 đâu bạn mà là kết quả của lượt tìm kiếm giá trị giá trị giống nhau của hàm Countif đó bạn (Nếu có hai ô, có giá trị giống nhau thì countif của nó sẽ trả về 2, nếu có ba ô có số giống nhau thì countif sẽ trả về số 3). Vậy hàm COUNTIF(MA;C5) tức là đếm xem trong MA có bao nhiêu số giống C5. Và ở đây nó nằm trong phần điều kiện của hàm IF nên bạn sẽ phải so nó với đáp số mà muốn. Ở đây là khác 1 [COUNTIF(MA;C5)1], tức là C5 phải có ít nhất 1 số giống mình. Vậy thôi! Chúc bạn sớm hiểu.
 
Lần chỉnh sửa cuối:
IF(OR(C5="",COUNTIF(Ma;C5)<>1),"",VLOOKUP(C5,VL!$B$4:$G$174,6,1))

Nếu C5="" (ô trống) hoặc COUNTIF(Ma;C5)<>1 (tìm trong MA-vùng MÃ HIỆU trong sheet VL không thấy giá trị nào hoặc có nhiều hơn 1 giá trị như giá trị ở ô C5). Thì để trống
Ngược lại (tìm thấy duy nhất 1 giá trị trong MA bằng giá trị của ô C5) thì thực hiện công việc VLOOKUP

ở đây bạn xử lý đoạn <>1) có nghiã gì ạ! bạn làm rõ chỗ này giúp mình với nhe. C5 bằng trống mình đã hiểu
NHƯ VẬY CÂU HỎI NÀY BẠN ĐÃ HÌNH DUNG RA ĐƯỢC LỜI GIẢI CHƯA?
 
Công thức đúng là phải như thế này =VLOOKUP(A10;$A$1:$B$4;2;0)
và =VLOOKUP(A16;$A$7:$B$10;2;0)
 
Hàm VLOOKUP kết hợp với hàm OFFSET được không ?

Cho em hỏi có thể kết hợp được hàm VLOOKUP kết hợp với hàm OFFSET được không nhỉ
 
Được bạn à, bạn xem file nha! Mình dùng Offset để lấy giá trị cuối cùng của cột A rồi mình gán nó cho bảng của Vlookup. =VLOOKUP(D3,OFFSET(A1,,,COUNTA(A:A),2),2,0) Dù bạn có nhập thêm bao nhiêu giá trị cho cột A đi nữa thì công thức vẫn luôn đúng! Thân.
 

File đính kèm

Lần chỉnh sửa cuối:
Status
Không mở trả lời sau này.
Web KT

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

Back
Top Bottom