[Hỏi] cách dò kết quả dựa vào 2 (nhiều điều kiện)

Liên hệ QC

ancrayzy

Thành viên chính thức
Tham gia
15/9/08
Bài viết
67
Được thích
4
Chào cộng đồng GPE,
Mình có vấn đề như sau nhờ mọi người giúp đỡ
Cảm ơn mọi người nhiều ạ

Bài toán như sau, tìm giá trị cho cột G
Ví dụ: cần tìm kích thước cột tại ô G3 bằng cách dò 2 dữ liệu tại 2 bằng TABLE 1 VÀ TABLE 2
1. Dò theo tầng tại cột B và cột I
2. Dò theo tên tại cột E và cột J
3. Kết quả trả về tại ô G3 là kết quả tại cột K
1638846127693.png
,
 

File đính kèm

  • Hàm dò nhiều điều kiện.xlsx
    21.5 KB · Đọc: 9
Lần chỉnh sửa cuối:
Chào cộng đồng GPE,
Mình có vấn đề như sau nhờ mọi người giúp đỡ
Cảm ơn mọi người nhiều ạ

Bài toán như sau, tìm giá trị cho cột G
Ví dụ: cần tìm kích thước cột tại ô G3 bằng cách dò 2 dữ liệu tại 2 bằng TABLE 1 VÀ TABLE 2
1. Dò theo tầng tại cột B và cột I
2. Dò theo tên tại cột E và cột J
3. Kết quả trả về tại ô G3 là kết quả tại cột K
View attachment 270033
,

Bạn nhập công thức sau:
G3=INDEX($K$3:$K$15,MATCH(B3&E3,$I$3:$I$15&$J$3:$J$15,0))
 
Bạn tham khảo thêm cách khác, kết thúc bằng Enter.
Công thức của bạn rắc rối quá. Muốn tránh CSE thì dùng hàm Lookup.
Vấn đề này ở đây có khá nhiều bài rồi. Tìm từ khoá Lookup(2, 1/

Công thức ở bài #2 và #4 là loại công thức nguy hiểm. Mọt ngày đẹp trời nào đó nó có thể sẽ ra kết quả sai. Nguyên tắc của dò chuỗi ghép là phải nhét thêm dấu ngăn cách.
 
Chào cộng đồng GPE,
Mình có vấn đề như sau nhờ mọi người giúp đỡ
Cảm ơn mọi người nhiều ạ

Bài toán như sau, tìm giá trị cho cột G
Ví dụ: cần tìm kích thước cột tại ô G3 bằng cách dò 2 dữ liệu tại 2 bằng TABLE 1 VÀ TABLE 2
1. Dò theo tầng tại cột B và cột I
2. Dò theo tên tại cột E và cột J
3. Kết quả trả về tại ô G3 là kết quả tại cột K
View attachment 270033
,
G3=IFERROR(VLOOKUP(B3&E3,CHOOSE({1,2},$L$3:$L$15&$M$3:$M$15,$N$3:$N$15),2,0),"") Nhấn CSE

Em xin phép hỏi anh chị trong nhóm 1 chút ạ, trong công thức dò tìm Lookup(2,1...thì có tài liệu sẽ dùng dấu * với kiểu dò tìm nhiều điều kiện,

Ví dụ LOOKUP(2,1/(vung1=dk1)*(vung2=dk2)*(vung3=dk3)*(vungn=dkn),(vung lấy giá trị)),nhưng cũng có tài liệu dùng dấu / cho cách tìm kiếm này, ví dụ LOOKUP(2,1/(vung1=dk1)/(vung2=dk2)/(vung3=dk3)/(vungn=dkn),(vung lấy giá trị)).

Em thử làm cả 2 cách và ra 2 kết quả khác nhau, các anh chị cho em hỏi khi nào dùng dấu * và khi nào dùng dấu / trong việc dùng hàm Lookup tìm kiếm nhiều điều kiện ạ, em cảm ơn .
 
...

Ví dụ LOOKUP(2,1/(vung1=dk1)*(vung2=dk2)*(vung3=dk3)*(vungn=dkn),(vung lấy giá trị)),nhưng cũng có tài liệu dùng dấu / cho cách tìm kiếm này, ví dụ LOOKUP(2,1/(vung1=dk1)/(vung2=dk2)/(vung3=dk3)/(vungn=dkn),(vung lấy giá trị)).

Em thử làm cả 2 cách và ra 2 kết quả khác nhau, các anh chị cho em hỏi khi nào dùng dấu * và khi nào dùng dấu / trong việc dùng hàm Lookup tìm kiếm nhiều điều kiện ạ, em cảm ơn .
Bạn học toán ở đâu vậy?
Hai biểu thức trên đương nhiên là cho giá trị khác nhau.

1/a*b*c*...*n
hoàn toàn khác với
1/a/b/c/../n

1638950837451.png

Quên cái công thức thứ nhất đi. Tôi chắc chắn là bạn chép nó ở đâu đó và do bất cẩn gây thiếu sót trầm trọng.
Để ý cho kỹ kết quả sau đây và so sánh cái dòng dấu hỏi đầu tiên với dòng có dấu hỏi thứ ba (trong của sổ immediate của VBA, dấu hỏi tương đương với lệnh Print):

1638951079520.png
 
Bạn học toán ở đâu vậy?
Hai biểu thức trên đương nhiên là cho giá trị khác nhau.

1/a*b*c*...*n
hoàn toàn khác với
1/a/b/c/../n

View attachment 270094

Quên cái công thức thứ nhất đi. Tôi chắc chắn là bạn chép nó ở đâu đó và do bất cẩn gây thiếu sót trầm trọng.
Để ý cho kỹ kết quả sau đây và so sánh cái dòng dấu hỏi đầu tiên với dòng có dấu hỏi thứ ba (trong của sổ immediate của VBA, dấu hỏi tương đương với lệnh Print):

View attachment 270095
Đương nhiên về mặt toán học mình hiểu
1/a*b*c*...*n
hoàn toàn khác với
1/a/b/c/../n

Nhưng có trường hợp dùng * hay / thì kết quả đều giống nhau( bạn tham khảo file đính kèm)

Và trên mạng có đường Links hướng dẫn tìm kiếm nhiều điều kiện bằng hàm Lookup, có links hướng dẫn dùng phép * giữa các điều kiện và có links hướng dẫn dùng phép chia giữa các điều kiện.

1. Links dùng phép chia : https://www.tuhocexcel.net/2019/10/cach-dung-ham-va-do-nhieu-ieu-kien.html
2. Links dùng phép nhân : http://nhataichinh.com/tim-kiem-nhieu-dieu-kien-ham-lookup/

Còn có trường hợp như mình nói ở trên là dùng phép * hay / thì kết quả vẫn ra giống nhau, bạn xem file đính kèm, mình thắc mắc là dùng * hay / là đúng, hay trường hợp nào thì dùng * hoặc /( đương nhiên là như bạn phân tích ở trên 1/a*b*c*...*n khác 1/a/b/c/../n )
 

File đính kèm

  • X.xlsx
    10.1 KB · Đọc: 4
Đương nhiên về mặt toán học mình hiểu
1/a*b*c*...*n
hoàn toàn khác với
1/a/b/c/../n
...
Tôi vẫn không tin bạn hiểu thứ tự toán nhân chia.
Bạn vẫn chưa hiểu rằng
1/a*b*c*...*n khác với 1/b*a*c*...*n; trong khi
1/a/b/c/../n giống với 1/b/a/c/../n

Và bạn chưa đọc kỹ cái dòng dấu hỏi thứ ba trên. Nếu đọc rồi thì bạn đã không đặt câu hỏi "trường hợp nào thì dùng..."

Tôi không cần đọc cái link thứ hai của bạn cũng biết rằng bạn đọc ẩu và thiếu sót chi tiết trong bài ấy.
 
Đương nhiên về mặt toán học mình hiểu
1/a*b*c*...*n
hoàn toàn khác với
1/a/b/c/../n

Nhưng có trường hợp dùng * hay / thì kết quả đều giống nhau( bạn tham khảo file đính kèm)
Giống nhau là may rủi thôi. Thầy nào dạy thế thì đá đít thầy nhé. Sửa thành K6 = 10.11.2021 thì thấy khác nhau ngay.

Nếu dùng với LOOKUP thì không có chuyện 1/a*b*c*...*n đâu. Hoặc phải là 1/(a*b*c*...*n) hoặc là 1/a/b/c/../n

Tức công thức cho F6

=LOOKUP(2;1/(($J$4:$J$6<=B6)*($K$4:$K$6>=B6));($I$4:$I$6))

hoặc

=LOOKUP(2;1/($J$4:$J$6<=B6)/($K$4:$K$6>=B6);($I$4:$I$6))
 
Giống nhau là may rủi thôi. Thầy nào dạy thế thì đá đít thầy nhé. Sửa thành K6 = 10.11.2021 thì thấy khác nhau ngay.

Nếu dùng với LOOKUP thì không có chuyện 1/a*b*c*...*n đâu. Hoặc phải là 1/(a*b*c*...*n) hoặc là 1/a/b/c/../n

Tức công thức cho F6

=LOOKUP(2;1/(($J$4:$J$6<=B6)*($K$4:$K$6>=B6));($I$4:$I$6))

hoặc

=LOOKUP(2;1/($J$4:$J$6<=B6)/($K$4:$K$6>=B6);($I$4:$I$6))
Người hỏi bài này làm việc cẩu thả chứ giống nhau sao được. Chính y/thị oang oang nhận là mình hiểu toán mờ (bài #15).

Người cẩn thận về toán một chút đã biết
1/a*b*c = (1/a) * b*c

1/a/b/c = 1/(a*b*c)
 
Người hỏi bài này làm việc cẩu thả chứ giống nhau sao được. Chính y/thị oang oang nhận là mình hiểu toán mờ (bài #15).

Người cẩn thận về toán một chút đã biết
1/a*b*c = (1/a) * b*c

1/a/b/c = 1/(a*b*c)
Ý người ta là về mặt toán học thì 200% là khác nhau và họ biết, nhưng khi dùng với LOOKUP thì vẫn đúng. Chắc "vẫn đúng" cũng chỉ là "có vẻ thế" nên người ta mới hỏi. Nếu họ biết chắc 200% là thế hoặc không là thế thì họ chả hỏi làm gì. Tôi cho là thế.
 
Người hỏi bài này làm việc cẩu thả chứ giống nhau sao được. Chính y/thị oang oang nhận là mình hiểu toán mờ (bài #15).

Người cẩn thận về toán một chút đã biết
1/a*b*c = (1/a) * b*c

1/a/b/c = 1/(a*b*c)
Không phải tìm bài ở đâu để chưng minh điều mình thắc mắc, ngay trong bài này, bạn Hoàng Tuấn 868 cũng dùng / thay cho * mà kết quả so sánh vơi việc dùng Index và AGGREGATE vẫn cho kết quả đúng đấy thôi, mình nghĩ cái gì cũng có nguyên nhân chứ ko thể là may rủi đc.

H3= IFERROR(LOOKUP(2,1/($J$3:$J$15=B3)/($K$3:$K$15=E3)/($I$3:$I$15=A3),$L$3:$L$15),"")

 

File đính kèm

  • Hàm dò nhiều điều kiện (3)-2.xlsx
    22.3 KB · Đọc: 8
Web KT
Back
Top Bottom