Viết câu lệnh có nhiều điều kiện

Liên hệ QC

Chau Cuong

Thành viên mới
Tham gia
21/4/13
Bài viết
8
Được thích
0
Kính gửi các anh chị,
Vui lòng giúp đỡ cho em vấn đề đặt câu lệnh với nhiều điều kiện trong file đính kèm. Em xin phép mô tả chi tiết như sau:
Em có 2 cột điều kiện trong cột a và b, nếu thỏa cả 2 thì sẽ cho kết quả tương ứng ở cột c
Em đã lặp câu điều kiện if và and trong câu lệnh nhưng không thành công vì dùng lệnh đến 10 lần trong 1 câu lệnh nên em đành bó tay.
Vì vậy các anh chị vui lòng giúp em với.
Em có gửi file đính kèm
Nếu như được thì anh chị cho em 2 cách nha:
Thứ 1: Viết câu lệnh trên excel
Thứ 2: Viết code trong vba
Chân thành cảm ơn các anh chị
 

File đính kèm

  • bai tap.xlsx
    10.8 KB · Đọc: 55
Kính gửi các anh chị,
Vui lòng giúp đỡ cho em vấn đề đặt câu lệnh với nhiều điều kiện trong file đính kèm. Em xin phép mô tả chi tiết như sau:
Em có 2 cột điều kiện trong cột a và b, nếu thỏa cả 2 thì sẽ cho kết quả tương ứng ở cột c
Em đã lặp câu điều kiện if và and trong câu lệnh nhưng không thành công vì dùng lệnh đến 10 lần trong 1 câu lệnh nên em đành bó tay.
Vì vậy các anh chị vui lòng giúp em với.
Em có gửi file đính kèm
Nếu như được thì anh chị cho em 2 cách nha:
Thứ 1: Viết câu lệnh trên excel
Thứ 2: Viết code trong vba
Chân thành cảm ơn các anh chị
LẤY CÁI GÌ so sánh với điều kiện ở A và B vậy đồng chí?
Xem file chả hiểu viết cái gì nữa
 
Có lẽ Châu Cường có dữ liệu như file đính kèm.
(Tôi tạo thêm 2 dòng dữ liệu)

Cũng thấy bối rối, nhưng đoán là dữ liệu là như vậy. Không biết có mâu thuẫn gì không

Thấy câu hỏi ít nhiều có cái phù hợp với cá nhân nên xin gửi và hỏi tiếp
 

File đính kèm

  • bai tap mới.xlsx
    10.6 KB · Đọc: 28
Xin lỗi, em đưa thông tin thiếu
Cột điều kiện a & b trong excel là điều kiện tiên quyết để ra được cột kết quả
Ví dụ em nhập giá trị ô E3 là 277000 và F3 là 30% thì ô G3 có kết quả là 100%
Cảm ơn anh đã giúp đỡ
 
Dạ đúng như thành viên haonlh mô tả
Anh hiểu đúng ý em rồi
 
Thôi thì dùng IF, công thức tại G3:
Mã:
=IF((E3<=138750)*(F3<=1),1,IF(E3<=277500,IF(F3<=0.25,0.75,1),IF(E3<=925000,IF(F3<0.25,0.5,IF(F3<=0.5,0.75,1)),IF(F3<=0.25,0.25,IF(F3<=0.5,0.5,IF(F3<=0.75,0.75,1))))))
 
Dạ đúng như thành viên haonlh mô tả
Anh hiểu đúng ý em rồi
Về công thức ta có thể làm như sau:

- Nhóm chúng về cùng loại kết quả (có 4 nhóm: 25%, 50%, 75%, 100%)

- Theo Nhóm mà tính ra công thức, như vậy ta có 3 hàm IF lồng nhau, kết hợp với các hàm AND và OR.

- Thêm 1 hàm IF nếu 1 trong 2 điều kiện bằng 0 thì bằng 0%

- Như thế ta có tất cả 4 hàm IF lồng vào nhau.

Công thức:

=IF(OR(E3=0,F3=0),0,IF(AND(E3>925000,F3<=0.25),0.25,IF(OR(AND(E3>925000,F3<=0.5),AND(E3<=925000,F3<0.25)),0.5,IF(OR(AND(E3<=277500,F3<=0.25),AND(E3<=925000,F3<=0.5),AND(E3>925000,F3<=0.75)),0.75,1))))
 

File đính kèm

  • BaiTapHTN.xlsx
    12 KB · Đọc: 18
Lần chỉnh sửa cuối:
Về công thức ta có thể làm như sau:

- Nhóm chúng về cùng loại kết quả (có 4 nhóm: 25%, 50%, 75%, 100%)

- Theo Nhóm mà tính ra công thức, như vậy ta có 3 hàm IF lồng nhau, kết hợp với các hàm AND và OR.

- Thêm 1 hàm IF nếu 1 trong 2 điều kiện bằng 0 thì bằng 0%

- Như thế ta có tất cả 4 hàm IF lồng vào nhau.

Công thức:

=IF(OR(E3=0,F3=0),0,IF(AND(E3>925000,F3<=0.25),0.25,IF(OR(AND(E3>925000,F3<=0.5),AND(E3<=925000,F3<0.25)),0.5,IF(OR(AND(E3<=277500,F3<=0.25),AND(E3<=925000,F3<=0.5),AND(E3>925000,F3<=0.75)),0.75,1))))

Dựa vào file của Nghĩa, "phăng" 1 công thức kiểu khác xem
Mã:
=INDEX($D$2:$D$11,MATCH(1,COUNTIFS(F3,$A$2:$A$11,G3,$B$2:$B$11),0))
Có thể thêm IF.. IF gì gì đó để loại trừ lỗi
Cũng chẳng biết trúng hay trật
Ẹc... Ẹc...
 
Dựa vào file của Nghĩa, "phăng" 1 công thức kiểu khác xem
Mã:
=INDEX($D$2:$D$11,MATCH(1,COUNTIFS(F3,$A$2:$A$11,G3,$B$2:$B$11),0))
Có thể thêm IF.. IF gì gì đó để loại trừ lỗi
Cũng chẳng biết trúng hay trật
Ẹc... Ẹc...

Công thức của Thầy là công thức mảng, kết thúc công thức phải bấm tổ hợp phím Ctrl+Shift+Enter thì ra kết quả. Kết quả hoàn toàn đúng như kết quả công thức của em! Một dạng tuyệt chiêu công thức!


===============================


Trong các điều kiện này, điều kiện để ra 100% là ngộ nhất, có điều kiện lại thõa với điều kiện cho ra kết quả 75%.

Xem file sẽ hiểu.
 

File đính kèm

  • BaiTapHTN1.xlsx
    12.6 KB · Đọc: 23
Lần chỉnh sửa cuối:
Trong các điều kiện này, điều kiện để ra 100% là ngộ nhất, có điều kiện lại thõa với điều kiện cho ra kết quả 75%.
Xem file sẽ hiểu.
Vấn đề nằm ở chổ:
- Sắp xếp hợp lý 2 cột điều kiện
- Khi thỏa nhiều dòng điều kiện cùng lúc thì ta quyết định lấy cái thỏa mản TRƯỚC hay SAU
Ở đây tôi lấy dòng đầu tiên thỏa điều kiện
------------
Hình như tác giả sắp xếp 2 cột điều kiện chưa hợp lý khiến phần đánh giá bị rơi vào tình trạng trùng rất nhiều dòng điều kiện
 
Anh Nghĩa ơi, em chưa hiểu rõ công thức mãng của thầy, anh giải thích cho em rõ được không
Cảm ơn anh
 
Anh Nghĩa ơi, em chưa hiểu rõ công thức mãng của thầy, anh giải thích cho em rõ được không
Cảm ơn anh
Trời, cái này là tuyệt chiêu mà! Đâu phải dễ dàng để giải thích nè! Chỉ có Thầy mới giải thích cặn kẻ cho bạn hiểu được!
 
Anh Nghĩa ơi,
Em áp dụng công thức của anh, nhưng kết quả chưa hoàn toàn chính xác lắm
Có cách nào khác không anh?
Còn viết code thì thế nào hả anh?
 
Anh Nghĩa ơi,
Em áp dụng công thức của anh, nhưng kết quả chưa hoàn toàn chính xác lắm
Có cách nào khác không anh?
Còn viết code thì thế nào hả anh?
Công thức có chính xác hay không là do điều kiện đặt ra có đúng hay không, ở bài #9 tôi đã nói rất rõ rồi, trong file tôi cũng đã dẫn chứng 1 trường hợp rồi, bài #10 thầy NDU cũng đã nói rõ hơn. Vì điều kiện cứ chồng chéo lẫn nhau như thế chắc chắn sẽ cho kết quả sai. Cần phải nghiên cứu chính xác hơn vấn đề lớn hơn hay lớn hơn hoặc bằng để điều kiện của mình chặt chẽ hơn nữa.

Chẳng hạn, điều kiện 1: x >=5 thì điều kiện 2 chắc chắn phải là x < 5 chứ không thể nào vừa x >= 5 lại x <= 5 được, trường hợp này nếu x là 5 thì rơi vào đk1 hay là đk2 đây?
 
chao ca nha, em dang cần cả nhà giúp em cho viec tinh hoa hồng như bên dưới, cả nhà góp ý giùm em, cam on ah.
DK1=nếu doanh thu <=$3,999 (trong đó doanh thu khách hàng mới là $1,0000 và khách hàng hiện có là $2,999) va số lượng khách hàng mới <=9 người
-->thì hoa hồng 1(dựa trên doanh thu của khách hàng mới)=3% và hoa hồng 2 =1.5% dựa trên doanh thu của khách hàng hiện có
DK2=nếu doanh thu <=5,000 và số lượng khách hàng mới <=19 người -->hoa hồng 1 = 5%, hh2=2.5%
DK2=nếu doanh thu <=9,000 và số lượng khách hàng mới <=24 người-->hoa hồng 1=7% và hh2=3.5%
 
chao ca nha, em dang cần cả nhà giúp em cho viec tinh hoa hồng như bên dưới, cả nhà góp ý giùm em, cam on ah.
DK1=nếu doanh thu <=$3,999 (trong đó doanh thu khách hàng mới là $1,0000 và khách hàng hiện có là $2,999) va số lượng khách hàng mới <=9 người
-->thì hoa hồng 1(dựa trên doanh thu của khách hàng mới)=3% và hoa hồng 2 =1.5% dựa trên doanh thu của khách hàng hiện có
DK2=nếu doanh thu <=5,000 và số lượng khách hàng mới <=19 người -->hoa hồng 1 = 5%, hh2=2.5%
DK2=nếu doanh thu <=9,000 và số lượng khách hàng mới <=24 người-->hoa hồng 1=7% và hh2=3.5%
không hiểu bạn muốn gì? tạo file với bảng dữ liệu giả lập, trình bày yêu cầu và kết quả mong muốn, lúc đó các bạn trên diễn đàn mới góp ý được
 
chao ca nha, em dang cần cả nhà giúp em cho viec tinh hoa hồng như bên dưới, cả nhà góp ý giùm em, cam on ah.
DK1=nếu doanh thu <=$3,999 (trong đó doanh thu khách hàng mới là $1,0000 và khách hàng hiện có là $2,999) va số lượng khách hàng mới <=9 người
-->thì hoa hồng 1(dựa trên doanh thu của khách hàng mới)=3% và hoa hồng 2 =1.5% dựa trên doanh thu của khách hàng hiện có
DK2=nếu doanh thu <=5,000 và số lượng khách hàng mới <=19 người -->hoa hồng 1 = 5%, hh2=2.5%
DK2=nếu doanh thu <=9,000 và số lượng khách hàng mới <=24 người-->hoa hồng 1=7% và hh2=3.5%
Chào hadesknight,

(Bổ sung thêm vào ý của bạn HieuCD)

Điều kiện bạn đưa ra còn nhiều chỗ hổng, ví dụ:
1. ĐK 1: nếu <=$ 3,999 nhưng >9 người thì mần cái gì, hoặc hiện ra cái gì? tương tự cho các ĐK khác.
2. Nếu doanh thu > 9,000 thì phải mần sao?
3. Tất cả các điều kiện có cùng chung doanh thu hiện có là $ 2,999, phải vậy không? nếu đúng vậy thì doanh thu thực tế - trừ $ 2,999 là doanh thu mới phải không?

Chúc bạn ngày vui
 
Web KT
Back
Top Bottom