Hỏi: Hàm If xử lý điều kiện khó? (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, mình làm tài liệu đòi hỏi dùng hàm if quá nhiều mà công thức viết dài mãi nó lại lỗi có lúc phải viết lại rất mệt nhưng cũng không đi đến đâu. Mình dùng hàm If dựa trên 2 điều kiện ở 2 cột khác nhau nên dùng IF(AND nhiêu. Các bạn xem giúp mình công thức mình viết sai ở chỗ nào và viết thế nào để giải quyết được bài toán không? (Mình dùng Office 2003)



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

File đính kèm

Chào các bạn, mình làm tài liệu đòi hỏi dùng hàm if quá nhiều mà công thức viết dài mãi nó lại lỗi có lúc phải viết lại rất mệt nhưng cũng không đi đến đâu. Mình dùng hàm If dựa trên 2 điều kiện ở 2 cột khác nhau nên dùng IF(AND nhiêu. Các bạn xem giúp mình công thức mình viết sai ở chỗ nào và viết thế nào để giải quyết được bài toán không? (Mình dùng Office 2003)

Nếu xài excel 2003 thì không làm hàm IF với nhiều điều kiện như vậy được đâu. Tạo 1 bảng dò rồi dò vô, công thức vừa ngắn vừa dễ sửa đổi nếu có sự cố khi sai.
 
Lần chỉnh sửa cuối:
Chào các bạn, mình làm tài liệu đòi hỏi dùng hàm if quá nhiều mà công thức viết dài mãi nó lại lỗi có lúc phải viết lại rất mệt nhưng cũng không đi đến đâu. Mình dùng hàm If dựa trên 2 điều kiện ở 2 cột khác nhau nên dùng IF(AND nhiêu. Các bạn xem giúp mình công thức mình viết sai ở chỗ nào và viết thế nào để giải quyết được bài toán không? (Mình dùng Office 2003)

Nếu xài excel 2003 thì không làm hàm if với nhiều điều kiện như vậy đâu. Tạo 1 bảng dò rồi dò vô công thức vừa ngắn vừa dễ sửa đổi nếu có sự cố khi sai.


Mình đã dùng 1 sheet bên cạnh để dùng hàm LOOKUP lấy kết quả sang nhưng sheet bên cạnh đấy cần phải chứ đến tận hơn 3000 rows, hơn nữa có những trường hợp gần như trùng dữ liệu do đó dữ liệu nhảy không đúng.

Mình đang cài Office 2010 chắc dùng được 64 hàm IF lồng nhau. Bạn nào có cách làm tối ưu xử lý được vấn đề này không? Nếu mình cứ IF(AND thì chắc phải 1 trang giấy mất.
 
Dữ kiện 1 bạn đã cài công thức sai rồi nhé.
IF(AND(OR(B2=$K$2;B2=$K$3);C2=1);10000;IF(AND(OR(B2=$K$2;B2=$K$3);C2=2);30000;IF(AND(OR(B2=$K$2;B2=$K$3);C2=3);50000,...........
Trong đó: K2 = CAT 777D ; K3 = HD 785-7
//**/
 
Chào các bạn, mình làm tài liệu đòi hỏi dùng hàm if quá nhiều mà công thức viết dài mãi nó lại lỗi có lúc phải viết lại rất mệt nhưng cũng không đi đến đâu. Mình dùng hàm If dựa trên 2 điều kiện ở 2 cột khác nhau nên dùng IF(AND nhiêu. Các bạn xem giúp mình công thức mình viết sai ở chỗ nào và viết thế nào để giải quyết được bài toán không? (Mình dùng Office 2003)

Xin cảm ơn các bạn!
Bạn xem file đính kèm nhé.
Công thức bạn viết sai nhiều nên mình k chỉ sai chỗ nào.
Bạn ẩn cột D,E,F đi, các cột này dùng để tính số tiền ở cột G là cột cuối cùng bạn cần.
Mình chỉ xài công thức If nhưng chia ra nhiều lần tính, bạn nào biết cách nào hay hơn thì cùng thảo luận thêm nhé %#^#$
 

File đính kèm

Mình đã dùng 1 sheet bên cạnh để dùng hàm LOOKUP lấy kết quả sang nhưng sheet bên cạnh đấy cần phải chứ đến tận hơn 3000 rows, hơn nữa có những trường hợp gần như trùng dữ liệu do đó dữ liệu nhảy không đúng.
Thử xem sao nhé:
Mã:
=IF(ISNA(LOOKUP(2,1/($B2='Thuong (2)'!$C$2:$C$3301)/('Thuong (2)'!$A$2:$A$3301=$A2)/($C2*1='Thuong (2)'!$B$2:$B$3301),'Thuong (2)'!$D$2:$D$3301))=FALSE,LOOKUP(2,1/($B2='Thuong (2)'!$C$2:$C$3301)/('Thuong (2)'!$A$2:$A$3301=$A2)/($C2*1='Thuong (2)'!$B$2:$B$3301),'Thuong (2)'!$D$2:$D$3301),"")
Cài Office 2010 thì xài IFERROR để bẫy lỗi thì công thức ngắn hơn.
P/s: Sau khi tự kiểm tra thấy không đúng. Toàn số nhìn hoa cả mắt--=--
 
Lần chỉnh sửa cuối:
Thử xem sao nhé:
Mã:
=IF(ISNA(LOOKUP(2,1/($B2='Thuong (2)'!$C$2:$C$3301)/('Thuong (2)'!$A$2:$A$3301=$A2)/($C2*1='Thuong (2)'!$B$2:$B$3301),'Thuong (2)'!$D$2:$D$3301))=FALSE,LOOKUP(2,1/($B2='Thuong (2)'!$C$2:$C$3301)/('Thuong (2)'!$A$2:$A$3301=$A2)/($C2*1='Thuong (2)'!$B$2:$B$3301),'Thuong (2)'!$D$2:$D$3301),"")
Cài Office 2010 thì xài IFERROR để bẫy lỗi thì công thức ngắn hơn. Nếu công thức vẫn sai thì tính tiếp.
Bác này chuyên gia xài hàm lookup với dấu "/" làm mình đọc công thức k hiểu gì --=0
 
Mình đã dùng 1 sheet bên cạnh để dùng hàm LOOKUP lấy kết quả sang nhưng sheet bên cạnh đấy cần phải chứ đến tận hơn 3000 rows, hơn nữa có những trường hợp gần như trùng dữ liệu do đó dữ liệu nhảy không đúng.

Mình đang cài Office 2010 chắc dùng được 64 hàm IF lồng nhau. Bạn nào có cách làm tối ưu xử lý được vấn đề này không? Nếu mình cứ IF(AND thì chắc phải 1 trang giấy mất.

Không xài sheet bên cạnh, tạo bảng dò kế bên theo "yêu cầu" rồi dò tìm.
Kiểm tra bằng mắt xem bảng dò và yêu cầu có đúng không.
Nếu kết quả chưa phù hợp thì thay đổi dữ liệu trong bảng dò.
 

File đính kèm

Cảm ơn các bạn, hôm qua mình cài Office 2010 dùng một đống hàm IF mà không ra kết quả gì chứ chưa nói gì đến kết quả chính xác. Sau khi tham khảo cách làm của các bạn mình theo cách làm của bạn "Ba Tê" vì cách làm này dễ quản lý, kiểm tra dữ liệu mà chỉ mất ít cột phụ với dữ liệu nhỏ. Mình sẽ áp dụng ở 1 sheet ẩn để dễ tùy biến hơn.

Một lần nữa mình cảm ơn các bạn nhé!
 
Không xài sheet bên cạnh, tạo bảng dò kế bên theo "yêu cầu" rồi dò tìm.
Kiểm tra bằng mắt xem bảng dò và yêu cầu có đúng không.
Nếu kết quả chưa phù hợp thì thay đổi dữ liệu trong bảng dò.
Bác Ba Tê cho mình hỏi trong công thức LOOKUP(2,1/(A2>=$R$2:$R$19)/(C2>=$S$2:$S$19), $T$2:$T$19)) thì số "2" và đoạn này "1/(A2>=$R$2:$R$19)/(C2>=$S$2:$S$19)" ý nghĩa như thế nào mà công thức lookup nó chạy ra đúng vậy bác. Bác có link bài nào về cái này cho mình tự xem cũng đc -+*/
 
Bác Ba Tê cho mình hỏi trong công thức LOOKUP(2,1/(A2>=$R$2:$R$19)/(C2>=$S$2:$S$19), $T$2:$T$19)) thì số "2" và đoạn này "1/(A2>=$R$2:$R$19)/(C2>=$S$2:$S$19)" ý nghĩa như thế nào mà công thức lookup nó chạy ra đúng vậy bác. Bác có link bài nào về cái này cho mình tự xem cũng đc -+*/

Cứ gõ từ khóa "Hàm dò tìm nhiều điều kiện" sẽ tìm thấy nhiều bài viết để xem.
Ví dụ:
http://www.giaiphapexcel.com/forum/...-tìm-theo-nhiều-điều-kiện&p=302332#post302332
http://www.giaiphapexcel.com/forum/...m-cho-2-điều-kiện-trở-lên&p=540010#post540010
 
Cảm ơn bác. Bác cho mình hỏi thêm là khi dùng cách này tạo lookup vector thì mình thấy có một số trường hợp dùng phép nhân (*), một số lại dùng phép chia(/), nhưng hình như phép nhân có thể tạo ra mảng không đúng trong một số trường hợp còn dùng phép chia thì luôn đúng phải không bác?
 

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

Back
Top Bottom