Lấy dữ liệu căn cứ theo nhiều điều kiện? (1 người xem)

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

mthangk99

Thành viên chính thức
Tham gia
23/2/15
Bài viết
61
Được thích
5
Chào các bạn, vì yêu cầu công việc nên mình cần làm công thức tính toán theo rất nhiều tiêu chí nên không dùng hàm IF được, có cách nào để lấy dữ liệu tổng căn cứ vào 4 - 5 điều kiện của một bảng gồm rất nhiều giá trị lấy ra như bài của mình không? Các bạn xem file cho ý kiến giúp mình với.

Cảm ơn các bạn!
 

File đính kèm

Nếu dùng Pivot để phân tích... thì có thể thấy là bảng mà bạn cung cấp là bảng dò tìm dựa trên 4 tiêu chí...

Bạn có thể tham khảo hàm này... Với dữ liệu mẫu theo dạng
Máy | Phân loại | Hệ số | Bậc |

và dữ liệu mẫu mình đặt ở hàng 2 từ cột H

Mã:
=LOOKUP(2,1/($A$2:$A$343=H2)/($B$2:$B$343=I2)/($C$2:$C$343=J2)/($D$2:$D$343=K2),$E$2:$E$343)
 
cho tôi lý do để ra 206.7 ?

Trong file Excel của mình, bạn xem ở row 3 sẽ hiểu, nếu nhập Hệ số = 0,15 (tức là <=0,2) chẳng hạn, cột Phân loại nhập vào loại B, Bậc = 7 (tức là <=15) thì cột F sẽ lấy kết quả là dữ liệu cùng dòng row 3 là 206,7 bạn à.
 
Trong file Excel của mình, bạn xem ở row 3 sẽ hiểu, nếu nhập Hệ số = 0,15 (tức là <=0,2) chẳng hạn, cột Phân loại nhập vào loại B, Bậc = 7 (tức là <=15) thì cột F sẽ lấy kết quả là dữ liệu cùng dòng row 3 là 206,7 bạn à.

ô B3 có giá trị là "B" ???????
 
ô B3 có giá trị là "B" ???????
Nhầm đó mà.
Bài này không dễ nuốt đâu, nếu BẬC và HỆ SỐ nhập tay vào mà chui giữa những số có sẵn thì bạn phải giải thích rõ cách lấy
Thí dụ:
Máy 1; A; 0.7; 5 ==> Kết quả
Máy 1; A; 1.2; 4 ==> Kết quả
Thân
 
Mình làm lại file Excel với ít điều kiện hơn để các bạn hình dung. Đúng là mình viết ở trên không rõ ràng lắm, các bạn thông cảm.
 

File đính kèm

Nhầm đó mà.
Bài này không dễ nuốt đâu, nếu BẬC và HỆ SỐ nhập tay vào mà chui giữa những số có sẵn thì bạn phải giải thích rõ cách lấy
Thí dụ:
Máy 1; A; 0.7; 5 ==> Kết quả
Máy 1; A; 1.2; 4 ==> Kết quả
Thân

bài này sẽ thành con cá mập nếu các cột không xếp thứ tự , chứ xếp như trong file thì thành con ết đem xào thôi mà , trừ khi em hiểu sai vấn đề .
 
Mình làm lại file Excel với ít điều kiện hơn để các bạn hình dung. Đúng là mình viết ở trên không rõ ràng lắm, các bạn thông cảm.
Công thức ở [F2]:
=INDEX('Nguon du lieu'!$E$2:$E$18,MATCH(D2,(IF((('Nguon du lieu'!$A$2:$A$18=A2)*('Nguon du lieu'!$B$2:$B$18=B2)*('Nguon du lieu'!$C$2:$C$18=IF(C2<0.2,0.2,INDEX('Nguon du lieu'!$C$2:$C$18,MATCH(C2,'Nguon du lieu'!$C$2:$C$18)+IF(COUNTIF('Nguon du lieu'!$C$2:$C$18,C2),0,1)))))=1,'Nguon du lieu'!$D$2:$D$18,"")),IF(COUNTIF('Nguon du lieu'!$D$2:$D$18,D2),0,1))+IF(COUNTIF('Nguon du lieu'!$D$2:$D$18,D2),0,1))
Nhập xong bấm Ctrl + Shift + Enter, kéo xuống
Đặt tên sheet gì mà "dài thòn lòn" làm công thức như "Trăn Nam Mỹ" vậy
Trường hợp hệ số và bậc không có trong bảng thì sao ????
 
Công thức ở [F2]:

Nhập xong bấm Ctrl + Shift + Enter, kéo xuống
Đặt tên sheet gì mà "dài thòn lòn" làm công thức như "Trăn Nam Mỹ" vậy
Trường hợp hệ số và bậc không có trong bảng thì sao ????

Bạn có thể xem chỗ sai trong công thức ở file này của mình được không? Mình làm theo LOOKUP nhưng muốn kết quả <=0,2 nó vẫn hiện giá trị bằng 206,7 mới đúng.
 

File đính kèm

Bạn có thể xem chỗ sai trong công thức ở file này của mình được không? Mình làm theo LOOKUP nhưng muốn kết quả <=0,2 nó vẫn hiện giá trị bằng 206,7 mới đúng.
Thử thế này
=LOOKUP(2,1/(('Nguon du lieu'!$A$2:$A$18='Ket qua'!A2)*('Nguon du lieu'!$B$2:$B$18='Ket qua'!B2)*('Nguon du lieu'!$C$2:$C$18<=IF(C2<0.2,0.2,C2))*('Nguon du lieu'!$D$2:$D$18<='Ket qua'!D2)),'Nguon du lieu'!$E$2:$E$18)
Không hiểu luôn
 
LOOKUP dùng thế này là sai, vì lấy dòng thoả đầu tiên từ dưới lên, trường hợp này lấy dòng thoả đầu tiên từ trên xuống phải dùng INDEX(MATCH):

Mã:
=INDEX('Nguon du lieu'!$E$2:$E$18,MATCH(1,INDEX(('Nguon du lieu'!$A$2:$A$18='Ket qua'!A4)*('Nguon du lieu'!$B$2:$B$18='Ket qua'!B4)*('Nguon du lieu'!$C$2:$C$18>='Ket qua'!C4)*('Nguon du lieu'!$D$2:$D$18>='Ket qua'!D4),),0))
 
LOOKUP dùng thế này là sai, vì lấy dòng thoả đầu tiên từ dưới lên, trường hợp này lấy dòng thoả đầu tiên từ trên xuống phải dùng INDEX(MATCH):

Mã:
=INDEX('Nguon du lieu'!$E$2:$E$18,MATCH(1,INDEX(('Nguon du lieu'!$A$2:$A$18='Ket qua'!A4)*('Nguon du lieu'!$B$2:$B$18='Ket qua'!B4)*('Nguon du lieu'!$C$2:$C$18>='Ket qua'!C4)*('Nguon du lieu'!$D$2:$D$18>='Ket qua'!D4),),0))

Dùng MATCH, INDEX có vẻ xử lý được trường hợp của mình bạn à. Bây giờ mình phải đi có việc tí nữa về phòng kiểm tra lại với dữ liệu lớn xem thế nào. Mình vẫn chưa thử được hàm LOOKUP không biết có dùng được cho trường hợp này không. Có gì mình kiểm tra xong sẽ trả lời lên diễn đàn luôn, cảm ơn các bạn.
 
Mình đã thử kỹ rồi, ứng dụng được trong trường hợp ít điều kiện ở bảng dữ liệu thôi các bạn à, nhiều điều kiện ở bảng điều kiện thì ô công thức sẽ N/A nhiều và dữ liệu nhảy không chuẩn nữa. Lúc nào mình sắp xếp lại bảng rồi gửi lại nhờ các bạn xem giúp. Cảm ơn các bạn nhiều!
 

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

Back
Top Bottom