Xin được trợ giúp sử dụng hàm tìm kiếm với 2 điều kiện trở lên

Liên hệ QC

LeTrungDuc74

Thành viên mới
Tham gia
11/5/10
Bài viết
16
Được thích
15
Dear all!

Tôi gặp bài toán phải sử dụng tìm kiếm với 2 điều kiện nhưng thử nhiều cách theo hiểu biết của mình mà không được.
Vậy nhờ anh chị nào biết thì hướng dẫn giùm - theo file đính kèm.

Xin cảm ơn!

Trân trọng!
Lê Trung Đức
 

File đính kèm

  • BaiTap 1.xls
    35.5 KB · Đọc: 75
Bạn Tham khảo file mình làm nhé!
Quan trọng trong giải thuật là cần tư duy trong sáng và đơn giản!

Hy vọng đáp ứng được y/c của bạn!
 

File đính kèm

  • BaiTap 1.xls
    46.5 KB · Đọc: 83
Bạn Tham khảo file mình làm nhé!
Quan trọng trong giải thuật là cần tư duy trong sáng và đơn giản!

Hy vọng đáp ứng được y/c của bạn!

Cái của bạn có vẻ phức tạp chứ không trong sáng và đơn giản như bạn nghĩ đâu, tôi mạn phép trích ra nhé!
1. Thành tiền của bạn:
PHP:
=E43*SUMPRODUCT(($C$18:$C$21=LEFT(C43,3))*($E$17:$G$17=RIGHT(C43,1)+0)*($E$18:$G$21))
Tôi làm vầy:
PHP:
=VLOOKUP(D43,$D$18:$G$21,RIGHT(C43)+1,)*E43

2. Tiền giảm của bạn:
PHP:
=F43*IF(RIGHT(C43,1)="1",3%,IF(RIGHT(C43,1)="2",5%,7%))
Tôi làm vầy:
PHP:
=(RIGHT(C43)*2%+1%)*F43
 
Cái của bạn có vẻ phức tạp chứ không trong sáng và đơn giản như bạn nghĩ đâu, tôi mạn phép trích ra nhé!
1. Thành tiền của bạn:
PHP:
=E43*SUMPRODUCT(($C$18:$C$21=LEFT(C43,3))*($E$17:$G$17=RIGHT(C43,1)+0)*($E$18:$G$21))
Tôi làm vầy:
PHP:
=VLOOKUP(D43,$D$18:$G$21,RIGHT(C43)+1,)*E43

2. Tiền giảm của bạn:
PHP:
=F43*IF(RIGHT(C43,1)="1",3%,IF(RIGHT(C43,1)="2",5%,7%))
Tôi làm vầy:
PHP:
=(RIGHT(C43)*2%+1%)*F43
Công thức của bạn thực sự rất ngắn gọn! Tuy nhiên mình nhận thấy nó không hề dễ tư duy và ứng dụng tổng quát.
Nếu thay loại bằng 1, 3,4 (không có loại 2) thì công thức của bạn không còn đúng nữa (cả 2 công thức bạn thay thế). Ý tưởng này cũng không thể đến ngay khi đọc xong đầu bài.
Dùng hàm SUMPRODUCTcó thể ứng dụng để cộng theo nhiều điều kiện.

Vài lời trao đổi!
Trân trọng!
 
Công thức của bạn thực sự rất ngắn gọn! Tuy nhiên mình nhận thấy nó không hề dễ tư duy và ứng dụng tổng quát.
Nếu thay loại bằng 1, 3,4 (không có loại 2) thì công thức của bạn không còn đúng nữa (cả 2 công thức bạn thay thế). Ý tưởng này cũng không thể đến ngay khi đọc xong đầu bài.
Dùng hàm SUMPRODUCTcó thể ứng dụng để cộng theo nhiều điều kiện.

Vài lời trao đổi!
Trân trọng!

Đừng nên nói từ "nếu" ở đây (có loại 10 thì bài của bạn ứng dụng được không?)
Vì thế:
Cái thứ nhất, một bài toán giải quyết tốt là ứng dụng vừa đủ gói gọn yêu cầu (chẳng lẽ "làm chuồng chó cho mèo ở" - thành ngữ)
Cái thứ hai, Sumproduct của bạn là công thức mảng -> không cần thiết dùng trong trường hợp này (nếu bạn hỏi các cao thủ trên diễn đàn - đảm bảo 99% sẽ không làm như bạn )nếu làm thì họ dùng Index, Offset, Match, Vlookup, ...hoặc cũng làm vầy:
PHP:
=VLOOKUP(D43,$D$18:$G$21,MATCH(--RIGHT(C43,LEN(C43)-4),$E$17:$G$17,)+1,)*E43
hoặc vầy:
PHP:
=VLOOKUP(D43,$D$18:$G$21,MATCH(--RIGHT(C43),$E$17:$G$17,)+1,)*E43
Sumproduct dùng ở đây là "tối giản" !
Nhé,
 
Lần chỉnh sửa cuối:
Công thức của bạn thực sự rất ngắn gọn! Tuy nhiên mình nhận thấy nó không hề dễ tư duy và ứng dụng tổng quát.
Nếu thay loại bằng 1, 3,4 (không có loại 2) thì công thức của bạn không còn đúng nữa (cả 2 công thức bạn thay thế). Ý tưởng này cũng không thể đến ngay khi đọc xong đầu bài.
Dùng hàm SUMPRODUCTcó thể ứng dụng để cộng theo nhiều điều kiện.

Vài lời trao đổi!
Trân trọng!
Thực ra đối với loại bài này có cả đống cách giải
tùy vào trường hợp tác giả yêu cầu mà làm cho đơn giản đi mà vẫn cho kết quả như ý
trong trường hợp bài này thì không nen dung sumproduct vì nếu dữ liệu lớn khoảng 20000 rows thì sumproduct chạy ì ạch lắm
có thể thay như sau
PHP:
=E43*SUMPRODUCT(($C$18:$C$21=LEFT(C43,3))*($E$17:$G$17=RIGHT(C43,1)+0)*($E$18:$G$21))
 
thay bằng
 
=E43*VLOOKUP(LEFT(C43,3),$C$16:$G$21,MATCH(--RIGHT(C43),$C$17:$G$17,0),0)
 
Chào các bác!

Như tôi đã nói, tôi đang vóc vách học Excel, nên tôi chỉ có thể đưa ra 1 tình huông theo như bài tập đính kèm là vì chửa hình dung hết được các tình huống có thể xảy ra khác trong suốt quá trình học tập và sử dụng Excel.
Viêc các bác tranh luận thât tốt với tôi, các bác càng tranh luận nhiều, càng đưa ra nhiều các giã thiết, các tình huống cho việc ứng dụng của mỗi hàm thì tôi càng được mở rộng tầm mắt.

Một lần nữa xin được cảm ơn các bác đã, đang và sẽ tham gia những ý kiến, những tranh luận, ... (không riêng gì trong phạm vi bài này) giúp tôi giải quyết các vấn để của mình đồng thời sẽ là cơ hội cho nhiều người đang bắt đầu học Excel như tôi được nhanh chóng nâng cao kiến thức về Excel.

Trân trọng!
Lê Trung Đức
 
Web KT
Back
Top Bottom