\=IF(C18="trụ gỗ tạp","Nhàtạm",IF(OR(C18="trụ BT đúc sẵn",C18="trụ gỗ quy cách"),VLOOKUP(MAX(A3:A4),A3:S4, Show 2),IF(AND(C18="t rụ BT",Q18="1"),VLOOKUP(MAX(A6:A8),A6:S8,2))))
Nếu mình đổi hàm "and" thành chữ "or" thì OK nhưng sai vấn đề mình lý luận ! thiệt lạ ! Hỏng dám OK đâu Bạn sửa AND thành OR xong, bạn thử chọn C18 = trụ gạch và Q18 = 2 xem nó ra cái gì? Vấn đề nằm ở chổ hàm IF của bạn chưa phát biểu hết tất cả các trường hợp có thể xảy ra -> Trong trường hợp này người ta thường dùng INDEX để tra cứu 2 chiều, sẽ nhanh và gọn hơn IF -
\=IF(C18="trụ gỗ tạp","Nhà tạm",IF(OR(C18="trụ BT đúc sẵn",C18="trụ gỗ quy cách"),VLOOKUP(MAX(A3:A4),A3:S4,2),IF(AND(C18="tr ụ BT",Q18="1"),VLOOKUP(MAX(A6:A8),A6:S8,2,0) ;0))) > Bạn hỏi bên webketoan một câu tương tự thì phải, đã có câu trả lời rồi đó bạn Thực ra câu trên chỉ bỏ một dấu đóng sau A3:S4,2)) là ổn thôi -
Rất mong các bạn tiếp tục giúp đỡ cho mình ! - > Gửi bởi nguyentronghieu876356Cám ơn các bạn rất nhiều mình giải quyết được rồi, nhưng có điều mình không hiểu khi giá trị C18 là "trụ gỗ tạp", "trụ BT đúc sẵn" thì hàm trả về giá trị theo đúng ý mình , còn khi C18 ="trụ BT" và Q18=1 thì nó lại trả về giá trị True/false đúng ra phải là nhà bán kiên cố A1 ? \=IF(C18="trụ gỗ tạp","Nhà tạm",IF(OR(C18="trụ BT đúc sẵn",C18="trụ gỗ quy cách"),VLOOKUP(MAX(A3:A4),A3:S4,2),IF(AND(C18="tr ụ BT",Q18="1"),VLOOKUP(MAX(A6:A8),A6:S8,2,0)))) Rất mong các bạn tiếp tục giúp đỡ cho mình ! Bạn phải gửi cái file của bạn lên đây thì mới có câu trả lời chính xác được. Nghĩa là, cái dùng để dò VLOOKUP nó như thế nào? Trong cột A có cái gì? (để kiểm tra hàm MAX)... Cám ơn bạn rất nhiều! phần mình hỏi nằm tại ô màu đỏ , mình xin giải thích một chút về phần mềm : phần mềm dùng để tra kết cấu nhà cho các người dân bị giải tỏa, nguyên tắt là gồm một bảng cấu trúc các loại nhà như nhà tạm , nhà bán kiên cố C1 ,C2 ......kèm theo các cấu kiện phải có là cột , dầm , móng, mái , tường .....phải khớp Nguyên tắt trong bảng cấu kiện là khi nhập đúng loại cột , dầm , vách ....thì nó sẽ trả về số 1 , còn không giống thì trả về số không , sao đó có một cột để cộng tổng theo hàng ngang các cấu kiện dầm, kèo cột , sau đó có hàm max để tìm giá trị lớn nhất sẽ là dòng chứa loại nhà cần tra , đương nhiên còn phải kết hợp với hàm Vlookup để trả về đúng ô của từng cấu kiện. Ngoài ra , do lấy phần cấu kiện "cột" và "số tầng" làm chủ đạo nên bạn thấy trong hàm if có dòng if(C18=trụ gỗ ,trụ BT đúc sẵn , trụ BT .,.....) [IMG]file:///C:/DOCUME%7E1/NGUYEN%7E1/LOCALS%7E1/Temp/moz-screenshot.jpg[/IMG] Mình để ý thấy mấu chốt tại hàm "and" nên trả về true/ fasle nhưng không biết khắc phục thế nào để trả về giá trị mình mong muốn ! Hàm IFS kiểm tra xem một hoặc nhiều điều kiện có được đáp ứng hay không và trả về một giá trị tương ứng với điều kiện TRUE đầu tiên. Hàm IFS có thể chiếm vị trí của nhiều câu lệnh IF lồng nhau, đồng thời giúp việc đọc các câu lệnh có nhiều điều kiện trở nên dễ dàng hơn rất nhiều. Cú pháp đơn giảnThông thường, cú pháp hàm IFS là: \=IFS([Điều gì đó là True1, Giá trị nếu True1, Điều gì đó là True2, Giá trị nếu True2, Điều gì đó là True3, Giá trị nếu True3) Vui lòng lưu ý rằng hàm IFS cho phép bạn kiểm tra tối đa 127 điều kiện khác nhau. Tuy nhiên, chúng tôi không khuyến khích bạn lồng quá nhiều điều kiện với câu lệnh IF hoặc IFS. Điều này là do nhiều điều kiện cần được nhập theo đúng thứ tự và có thể rất khó để xây dựng, kiểm tra và cập nhật. Cú pháp IFS(logical_test1, value_if_true1, [logical_test2, value_if_true2], [logical_test3, value_if_true3],…)Tham đối Mô tả logical_test1 (bắt buộc) Điều kiện đánh giá thành TRUE hoặc FALSE. value_if_true1 (bắt buộc) Kết quả cần trả về nếu logical_test1 đánh giá thành TRUE. Có thể được bỏ trống. logical_test2…logical_test127 (tùy chọn) Điều kiện đánh giá thành TRUE hoặc FALSE. value_if_true2…value_if_true127 (tùy chọn) Kết quả cần trả về nếu logical_testN đánh giá thành TRUE. Mỗi value_if_trueN tương ứng với một điều kiện logical_testN. Có thể được bỏ trống. Ví dụ 1Công thức cho các ô A2:A6 là: =IFS(A2>89,"A",A2>79,"B",A2>69,"C",A2>59,"D",TRUE,"F")Nghĩa là IF(A2 Lớn Hơn 89, thì trả về "A", IF A2 Lớn Hơn 79, thì trả về "B" và cứ như vậy và với tất cả các giá trị nhỏ hơn 59, trả về "F"). Ví dụ 2Công thức trong ô G7 là: =IFS(F2=1,D2,F2=2,D3,F2=3,D4,F2=4,D5,F2=5,D6,F2=6,D7,F2=7,D8)Nghĩa là IF(giá trị trong ô F2 bằng 1, thì trả về giá trị trong ô D2, IF giá trị trong ô F2 bằng 2, thì trả về giá trị trong ô D3, và v.v., cuối cùng kết thúc bằng giá trị trong ô D8 nếu không có các điều kiện khác được đáp ứng). Ghi chúĐể xác định một kết quả mặc định, nhập TRUE cho tham đối logical_test cuối cùng của bạn. Nếu không có điều kiện nào khác được đáp ứng, giá trị tương ứng sẽ được trả về. Trong Ví dụ 1, hàng 6 và 7 (với điểm 58) thể hiện điều này. Nếu tham đối logical_test được cung cấp mà không có value_if_true tương ứng, hàm này sẽ hiển thị thông báo lỗi "You've entered too few arguments for this function" (Bạn đã nhập quá ít tham đối cho hàm này). Nếu tham đối logical_test được đánh giá và giải thành một giá trị khác không phải TRUE hoặc FALSE, hàm này sẽ trả về lỗiVALUE! .
|