Tìm giá trị trong khoảng 2 giá trị

Liên hệ QC
Chào mn mình có bài logic 1 tý. Mong mọi người giúp mình 1 ít...:):)
 

File đính kèm

  • dự kiến KL nhập hàng.xlsx
    28.6 KB · Đọc: 8
Nhờ các Anh/Chị hỗ trợ công thức tìm giá trị phù hợp trong khoảng theo file đính kèm ạ.

Cám ơn mọi người.
 

File đính kèm

  • Tim gia tri trong khoang thoa dieu kien.xlsx
    13 KB · Đọc: 9
Nhờ các Anh/Chị hỗ trợ công thức tìm giá trị phù hợp trong khoảng theo file đính kèm ạ.

Cám ơn mọi người.
Bạn thay đổi dữ liệu từ C2 đến K2 thành 2 dòng rồi dùng LOOKUP như các bài hướng dẫn ở trên.

Hoặc thay đổi như bên dưới, rồi dùng:

=VLOOKUP(B17,$B$3:$K$13,MATCH(C17,$C$2:$K$2,1)+1,0)


STTMã cửa hàngĐơn giá
(VND/ m3)
00.50011.00011.40012.00013.00014.00016.000110.0001
1​
5719523,000504,000486,000479,000471,000387,000381,000378,000355,000
2​
7200523,000504,000486,000479,000471,000387,000381,000378,000355,000
3​
6450684,000652,000620,000591,000563,000537,000510,000487,000464,000
4​
5058412,000392,000373,000356,000339,000322,000307,000292,000279,000
5​
4932412,000392,000373,000356,000339,000322,000307,000292,000279,000
6​
4960474,000451,000430,000410,000390,000370,000353,000335,000321,000
7​
7085536,000510,000486,000463,000441,000418,000399,000379,000363,000
8​
5664474,000451,000430,000410,000390,000370,000353,000335,000321,000
9​
4014291,000277,000263,000251,000239,000228,000217,000206,000196,000
10​
118817,000680,000627,000627,000627,000627,000627,000608,000581,000
11​
129599,000578,000556,000548,000538,000463,000458,000451,000420,000
 
Bạn thay đổi dữ liệu từ C2 đến K2 thành 2 dòng rồi dùng LOOKUP như các bài hướng dẫn ở trên.

Hoặc thay đổi như bên dưới, rồi dùng:

=VLOOKUP(B17,$B$3:$K$13,MATCH(C17,$C$2:$K$2,1)+1,0)


STTMã cửa hàngĐơn giá
(VND/ m3)
00.50011.00011.40012.00013.00014.00016.000110.0001
1​
5719523,000504,000486,000479,000471,000387,000381,000378,000355,000
2​
7200523,000504,000486,000479,000471,000387,000381,000378,000355,000
3​
6450684,000652,000620,000591,000563,000537,000510,000487,000464,000
4​
5058412,000392,000373,000356,000339,000322,000307,000292,000279,000
5​
4932412,000392,000373,000356,000339,000322,000307,000292,000279,000
6​
4960474,000451,000430,000410,000390,000370,000353,000335,000321,000
7​
7085536,000510,000486,000463,000441,000418,000399,000379,000363,000
8​
5664474,000451,000430,000410,000390,000370,000353,000335,000321,000
9​
4014291,000277,000263,000251,000239,000228,000217,000206,000196,000
10​
118817,000680,000627,000627,000627,000627,000627,000608,000581,000
11​
129599,000578,000556,000548,000538,000463,000458,000451,000420,000
Cám ơn hướng xử lý của Phuocam. :)
 
Chào các thầy và anh chị em GPE.
Em cũng có bài toán gần giống anh chị em hỏi trên nhờ các thầy và anh chị em GPE giúp đỡ theo file đính kèm gồm:
- Lấy giá trị trong khoàng
- Tham chiếu 2 điều kiện
Em cảm ơn.
 

File đính kèm

  • Lấy giá trị trong khoảng có 2 điều kiện.xlsx
    9.8 KB · Đọc: 5
Chào các thầy và anh chị em GPE.
Em cũng có bài toán gần giống anh chị em hỏi trên nhờ các thầy và anh chị em GPE giúp đỡ theo file đính kèm gồm:
- Lấy giá trị trong khoàng
- Tham chiếu 2 điều kiện
Em cảm ơn.
Bạn thử hàm sau:
Mã:
=INDEX($C$2:$C$8,MATCH(H3,$B$2:$B$8,1))
 

File đính kèm

  • Lấy giá trị trong khoảng có 2 điều kiện.xlsx
    10.1 KB · Đọc: 12
Hàm Match với tham số thứ 3 là 1 thì là cách tìm gần đúng (tìm giá trị giữa 2 dòng). Kiểu này chỉ áp dụng được cho một điều kiện, hoặc hai điều kiện có cùng kiểu là số. Điều kiện của bạn vừa là số, vừa là chữ cho nên không thể dùng. (muốn dùng thì phải lồng nhiều Index/Match, rất phức tạp.

Cách dò nhiều điều kiện nằm ở trong các hàm mảng SUMPRODUCT, LOOKUP, AGGREGATE. Bài này ở đây có nhiều rồi. Nếu bạn chịu khó tìm thì ra.
 
Hàm Match với tham số thứ 3 là 1 thì là cách tìm gần đúng (tìm giá trị giữa 2 dòng). Kiểu này chỉ áp dụng được cho một điều kiện, hoặc hai điều kiện có cùng kiểu là số. Điều kiện của bạn vừa là số, vừa là chữ cho nên không thể dùng. (muốn dùng thì phải lồng nhiều Index/Match, rất phức tạp.

Cách dò nhiều điều kiện nằm ở trong các hàm mảng SUMPRODUCT, LOOKUP, AGGREGATE. Bài này ở đây có nhiều rồi. Nếu bạn chịu khó tìm thì ra.
Em tìm mà chưa thấy, bác có link bài viết đó gửi giúp em xem với ạ. Bạn em nhờ viết được công thức như thế này: =INDEX($C$2:$C$69,MAX(IFERROR((T(N("HLVD"))&L2=$A$2:$A$69)*(N("HLVD")=0)*((N("HLVD")+M2)>=$B$2:$B$69)*(N("HLVD")=0)*ROW($1:$97),N("HLVD"))))
Em không hiểu như thế nào nhưng đang cho ra kết quả ok bác ạ.
 
Em tìm mà chưa thấy, bác có link bài viết đó gửi giúp em xem với ạ. Bạn em nhờ viết được công thức như thế này: =INDEX($C$2:$C$69,MAX(IFERROR((T(N("HLVD"))&L2=$A$2:$A$69)*(N("HLVD")=0)*((N("HLVD")+M2)>=$B$2:$B$69)*(N("HLVD")=0)*ROW($1:$97),N("HLVD"))))
Em không hiểu như thế nào nhưng đang cho ra kết quả ok bác ạ.
Thấy được thì cứ việc xài.
Cách khác thì cũng công thức khủng cỡ vậy thôi.
Loại bài này muốn giản dị thì chỉ có Advanced Filter ra bảng nhỏ tồi dò tiếp. Nếu là phiên bản 365 thì hàm Filter giúp qua giai đoạn Advanced Filter.
 
Tôi lười phân tích công thức khủng cho nên chả biết người bạn kia dùng lô gic gì.
Nếu muốn ngắn hơn một chút thì có thể dùng lô gíc sau:
Dữ liệu:
- Cột A đã sort thành từng nhóm MÁY
- Côt B sort giá trị (độ dày?) theo từng nhóm máy
Yêu cầu:
- Tìm [dung sai] theo Máy và Độ dày
Cách lô gic:
- Hàm Index/Match sẽ cho ra giá trị đầu tiên của Máy.
- Hàm CountIf sẽ cho ra có bao nhiêu Máy
- Hàm Offset sẽ cho ra có bao nhiêu dòng cần sort ra (điều này dựa trên thực tế là máy đã được sort thành nhóm), đồng thời nó cũng giới hạn cho B, C thành cột 1 và 2.
- Hàm Vlookup sẽ lấy ra được dung sai tùy theo độ dày.

1695730468879.png

Lưu ý 1: trong bảng minh họa, tôi đổi dung sai ở máy B một chút để chứng tỏ là hàm chạy được với mọi máy.

Lưu ý 2: hàm Offset là hàm volatile, nếu không muốn dùng hàm này thì phải dùng thủ thuật hàm Index nối hai điểm của bảng thành một range. Hơi rắc rối.

Lưu ý 3: nhữ đã nói ở bài trước, phiên bản 365 dùng hàm Let và Filter sẽ gọn và hiệu quả hơn.
 
Cảm ơn bác. Em thấy đúng rồi ạ.
Bài đã được tự động gộp:


Vì em có điều kiện của HM nữa, nên bác xem thêm giúp em với ạ, nếu HM được thay bằng tên khác thì không ra được kết quả ạ
Hàm AGGREGATE khá lợi hại
Mã:
=AGGREGATE(15,6,$C$1:$C$26/($A$1:$A$26=D2)/($B$1:$B$26<=E2),1)
 
Hàm AGGREGATE khá lợi hại
Mã:
=AGGREGATE(15,6,$C$1:$C$26/($A$1:$A$26=D2)/($B$1:$B$26<=E2),1)
Theo tôi test thì hàm này dựa trên điều kiện là cột C sắp lớn đến nhỏ thay vì không cần sắp.
Ô G4 ra đúng kết quả là vì dữ liệu cột C ở nhóm máy B sắp xếp đúng. Ô B5 không ra kết quả là vì cột C không sắp xếp.

1695738724114.png
 
Theo tôi test thì hàm này dựa trên điều kiện là cột C sắp lớn đến nhỏ thay vì không cần sắp.
Ô G4 ra đúng kết quả là vì dữ liệu cột C ở nhóm máy B sắp xếp đúng. Ô B5 không ra kết quả là vì cột C không sắp xếp.

View attachment 295185
Công thức nầy chỉ dùng cho dữ liệu đồng biến hay nghịch biến, dữ liệu không cần sấp xếp cũng được nếu với yêu cầu về điều kiện "$B$1:$B$26<=E2"
Nếu quan hệ dữ liệu lúc tăng lúc giảm (dĩ nhiên cột B phải sắp thứ tự) thì dùng AGGREGATE xác định thứ tự dòng cho Index
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom