Bài tập Excel nâng cao (1 người xem)

  • Thread starter Thread starter usagi90
  • Ngày gửi Ngày gửi
Liên hệ QC

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

mình có bài tập này ko giải được, mong các pác chỉ giáo giùm.
tính thành tiền dựa trên sheet banggia và số lượng ở sheet khachhang (như file đính kèm)
Trước VAT...........
=SUMPRODUCT(($C$1:$H$1=banggia!$A$2:$A$7)*banggia!$C$2:$C$7*khachhang!C2:H2)
Sau VAT
=SUMPRODUCT(($C$1:$H$1=banggia!$A$2:$A$7)*banggia!$D$2:$D$7*khachhang!C2:H2)
 
mình làm nhưng thấy dài, các bạn giúp phương án gọn hơn

Công thức của bạn:
Mã:
=VLOOKUP($C$1,banggia!$A$2:$D$7,$J$1,0)*$C2+VLOOKUP($D$1,banggia!$A$2:$D$7,$J$1,0)*$D2+VLOOKUP($E$1,banggia!$A$2:$D$7,$J$1,0)*$E2+VLOOKUP($F$1,banggia!$A$2:$D$7,$J$1,0)*$F2+VLOOKUP($G$1,banggia!$A$2:$D$7,$J$1,0)*$G2+VLOOKUP($H$1,banggia!$A$2:$D$7,$J$1,0)*$H2

Có thể rút gọn thành:
Mã:
=SUMPRODUCT((banggia!$A$2:$A$100=$C$1:$H$1)*(banggia!$D$2:$D$100)*($C2:$H2))
Ẹc... Ẹc...
Tóm lại: Nếu là TỔNG CÁC TÍCH thì ta có thể nghĩ đến SUMPRODUCT
 
Hay thật, cám ơn các bạn và các thầy. không biết còn phương án nào nữa không nhỉ ? Chắc phương án của thày NDU là tối ưu rồi !sợ thày thật; làm gọn, nói gọn .
 
Lần chỉnh sửa cuối:
gửi thày NDU và các bạn.
Bài toán này theo tôi chủ nhân của ý tưởng là theo dõi được giá trước khi bán, sau khi bán, trừ đi và sau khi nộp thuế, lãi là bao nhiêu? Nên bài toán có 2 nghiệm hoặc 1 nghiệm kép( trước và sau VAT). Xin phép thày NDU, nhà em thêm tí chút cho màu mè. mà không biết chủ ý tưởng đâu nhỉ ? té ra toàn khách .
 

File đính kèm

gửi thày NDU và các bạn.
Bài toán này theo tôi chủ nhân của ý tưởng là theo dõi được giá trước khi bán, sau khi bán, trừ đi và sau khi nộp thuế, lãi là bao nhiêu? Nên bài toán có 2 nghiệm hoặc 1 nghiệm kép( trước và sau VAT). Xin phép thày NDU, nhà em thêm tí chút cho màu mè. mà không biết chủ ý tưởng đâu nhỉ ? té ra toàn khách .

Công thức của bạn:
Mã:
=SUMPRODUCT((banggia!$A$2:$A$100=$C$1:$H$1)*($C2:$H2)*IF($K$1=1,banggia!$D$2:$D$100,banggia!$C$2:$C$100))
Với K1 = 0 hoặc 1 ---> Vậy có thể viết theo kiểu này:
Mã:
=SUMPRODUCT((banggia!$A$2:$A$100=$C$1:$H$1)*($C2:$H2)*OFFSET(banggia!$C$2:$C$100,,$K$1))
Đương nhiên, nếu K1 = cái khác (hổng phải là 0 hoặc 1) thì... ráng chịu hen
Ẹc... Ẹc...
 
Cám ơn thày NDU, bài toán tưởng bình thường mà thày giải rất hay; Thấy lời giải, tỉnh cả người .
Không biết các bạn thế nào ? tôi thấy kiểu học 1 người "lên bảng", còn lại"chầu rìa" kiểu chơi cờ này hiệu quả đấy.Tôi dốt nhất lên bảng rồi, còn các bạn ? ai có bài toán nào hay ta mang "thịt" đi. Tìm phương án tối ưu cho một bài toán? không biết có ai ủng hộ không ? Bắt đầu từ viết code cho bài toán trên, tôi dốt không viết được, ai bắt đầu?
 
Lần chỉnh sửa cuối:
Hay thật, cám ơn các bạn và các thầy. không biết còn phương án nào nữa không nhỉ ? Chắc phương án của thày NDU là tối ưu rồi !sợ thày thật; làm gọn, nói gọn .
không những làm gọn nói gon, mà nếu chém ai đó, chỉ 1 nhát thôi, là vào sau 3 phân thịt, chứ không có xoàn xoàn ngoài ra đâu nha
 
Cám ơn thày NDU, bài toán tưởng bình thường mà thày giải rất hay; Thấy lời giải, tỉnh cả người .
Không biết các bạn thế nào ? tôi thấy kiểu học 1 người "lên bảng", còn lại"chầu rìa" kiểu chơi cờ này hiệu quả đấy.Tôi dốt nhất lên bảng rồi, còn các bạn ? ai có bài toán nào hay ta mang "thịt" đi. Tìm phương án tối ưu cho một bài toán? không biết có ai ủng hộ không ? Bắt đầu từ viết code cho bài toán trên, tôi dốt không viết được, ai bắt đầu?
Thất nghiệp nên làm "thí thí".
PHP:
Public Function GPE1(Table As Range, R_MaSP As Range, R_SL As Range, DK As Range) As Double
Dim I As Long, J As Long, L As Long, ATab(), A_SP(), A_SL(), Tem As Double
ATab = Table: A_SP = R_MaSP: A_SL = R_SL
If DK > 0 Then
    L = 4
Else
    L = 3
End If
For I = 1 To UBound(A_SL, 2)
    If A_SL(1, I) > 0 Then
        For J = 1 To UBound(ATab, 1)
            If ATab(J, 1) = A_SP(1, I) Then
                Tem = Tem + A_SL(1, I) * ATab(J, L)
            End If
        Next J
    End If
Next I
    GPE1 = Tem
End Function
Công thức ô K2:
PHP:
=GPE1(banggia!$A$2:$D$7;$C$1:$H$1;$C2:$H2;$K$1)
 
Lần chỉnh sửa cuối:
Cám ơn thày Ba Tê đã "nã phát súng" đầu tiên này, riêng về code "nhà em" xin chầu rìa, còn các bạn và các thày có ý kiến đi ạ !
Riêng tôi sau khi xem lời giải của thày NDU lại phát hiện ra điều thú vị khác;vì câu cảnh báo của thày "Đương nhiên, nếu K1 = cái khác (hổng phải là 0 hoặc 1) thì... ráng chịu hen"Ẹc... Ẹc..."nên tôi lại tò mò, vậy nếu K1= 2;3;4....thì sao ? Vì thày chuyển từ hàm Vlookup sang hàm offset nên ta có thể thêm vào các cột (sheet banggia) cột chiết khấu, thực lãi ...và tại ô K1 ta chỉ việc nhập số bất kỳ( tất nhiên phải đồng bộ với sheet "Banggia" )kêt quả hiện ra tức thì .
Vì đây là bài tập nên tôi nghĩ ta có thể mổ phanh hết tim, gan , lòng, mề của bài toán, không những giải được, mà còn giải hay, và lời giải hay nhất ( kể cà hàm và code ).Mong các thày và các bạn giúp đỡ .
Riêng phần Hàm tôi thêm vào sau lời giải của thày NDU như tập tin đính kèm . Xin phép thầy và các bạn .
 

File đính kèm

Lần chỉnh sửa cuối:
Cám ơn thày Ba Tê đã "nã phát súng" đầu tiên này, riêng về code "nhà em" xin chầu rìa, còn các bạn và các thày có ý kiến đi ạ !
Riêng tôi sau khi xem lời giải của thày NDU lại phát hiện ra điều thú vị khác;vì câu cảnh báo của thày "Đương nhiên, nếu K1 = cái khác (hổng phải là 0 hoặc 1) thì... ráng chịu hen"Ẹc... Ẹc..."nên tôi lại tò mò, vậy nếu K1= 2;3;4....thì sao ? Vì thày chuyển từ hàm Vlookup sang hàm offset nên ta có thể thêm vào các cột (sheet banggia) cột chiết khấu, thực lãi ...và tại ô K1 ta chỉ việc nhập số bất kỳ( tất nhiên phải đồng bộ với sheet "Banggia" )kêt quả hiện ra tức thì .
Vì đây là bài tập nên tôi nghĩ ta có thể mổ phanh hết tim, gan , lòng, mề của bài toán, không những giải được, mà còn giải hay, và lời giải hay nhất ( kể cà hàm và code ).Mong các thày giúp đỡ .
Riêng phần Hàm tôi thêm vào sau lời giải của thày NDU như tập tin đính kèm . Xin phép thầy và các bạn .
Cái quan trọng, file của bạn ứng dụng để làm gì? VÌ:
1/ Nếu có hàng trăm mặt hàng thì việc bố trí như trên có hợp lý không?....
Nếu để tính doanh thu, giá vốn, lãi gộp ... thì thường người ta bố trí theo dòng chứ không theo cột!
 
Gửi bạn LienDong
Ô hay, đây là "bài toán" nên phải hiểu nó ở dạng tổng quát. Thấy bài toán hay hỏi thày để "học", và các thày đang dạy tôi và ai muốn học từ hôm trước đến giờ mà;
Bạn hỏi vậy chắc bạn vào diễn đàn không phải để "học" mà là để "dạy" rồi ? Không lẽ đi thi đòi đổi đề vì không hợp lý ? rõ thật là...
 
Gửi bạn LienDong
Ô hay, đây là "bài toán" nên phải hiểu nó ở dạng tổng quát. Thấy bài toán hay hỏi thày để "học", và các thày đang dạy tôi và ai muốn học từ hôm trước đến giờ mà;
Bạn hỏi vậy chắc bạn vào diễn đàn không phải để "học" mà là để "dạy" rồi ? Không lẽ đi thi đòi đổi đề vì không hợp lý ? rõ thật là...

Ha ha, Vậy thôi mỗi người tự hiểu ha, khỏi tranh luận mất thời gian và không đi đến đâu
Còn các thành viên trên diễn đàn sẽ biết tôi và bạn là những người như thế nào và có những cá tính gì? vậy thôi ha,,,,,,,,,,,,,,,
------------------------
P/s: Dù bạn hay ai có phản hồi gì thì tôi mackeno!!!
 
Dốt không hỏi, dốt cả đời, dốt mà hỏi khối kẻ cười. Kệ!
Nhà em vẫn muốn hỏi thày Batê, lúc thày viết code bài toán chỉ có 2 điều kiện 0 va 1 tại K1( bây giờ thay đổi từ 0 dến n ) thì code sửa thế nào ạ? và thày giúp luôn code nếu K1 thay đổi thi sau khi Enter code tự động chạy. Thấy 10h30 đêm thày vẫn thức để viêt lời giải cho học trò, nếu nhà em không học thì có lỗi quá . Xin cám ơn thầy! nhân tiện nhà em vẫn xin cám ơn thày NDU về lời giải bài toán, không phải bài toán nào cũng có lời giải hay;Và lời giải hay không phải ai cũng làm được .
 
Lần chỉnh sửa cuối:
Dốt không hỏi, dốt cả đời, dốt mà hỏi khối kẻ cười. Kệ!
Nhà em vẫn muốn hỏi thày Batê, lúc thày viết code bài toán chỉ có 2 điều kiện 0 va 1 tại K1( bây giờ thay đổi từ 0 dến n ) thì code sửa thế nào ạ? và thày giúp luôn code nếu K1 thay đổi thi sau khi Enter code tự động chạy. Thấy 10h30 đêm thày vẫn thức để viêt lời giải cho học trò, nếu nhà em không học thì có lỗi quá . Xin cám ơn thầy! nhân tiện nhà em vẫn xin cám ơn thày NDU về lời giải bài toán, không phải bài toán nào cũng có lời giải hay;Và lời giải hay không phải ai cũng làm được .
Hổng biết câu màu đỏ bên trên bạn muốn sao?
Code của tôi là Function nên khi thay đổi ô K1 là nó đã thay đổi rồi, tự động là sao nữa?
Hạy bạn muốn nó là 1 Sub, khi thay đổi K1 là nó gán luôn kết quả vào cột K?
Tạm xem file dùng Function trước đi:
 

File đính kèm

Hổng biết câu màu đỏ bên trên bạn muốn sao?
Code của tôi là Function nên khi thay đổi ô K1 là nó đã thay đổi rồi, tự động là sao nữa?
Hạy bạn muốn nó là 1 Sub, khi thay đổi K1 là nó gán luôn kết quả vào cột K?
Tạm xem file dùng Function trước đi:
Xin cám ơn thày.
Hôm trước coppy code của thày về dán vào module của tập tin. không hiểu nhà em thực hiện thiếu bước nào mà nó không chạy, phải thêm một sub để kích nó chạy nó mới nghe, nên mới có đề nghị trên. Hôm nay nhà em text thử tập tin tải của thày về, nó chạy bình thường nên đề nghị trên thừa rồi ạ. Nhưng thày có thể hướng dẫn cách viết thêm lệnh vào sub để kích hoạt code khi gán sự kiên vào 1 ô nào đó không ạ ? bỏ nút bấm .
Chúc thày khỏe, hạnh phúc .
 
Lần chỉnh sửa cuối:
Tại I2 bạn nhập công thức mảng sau rồi fill xuống các cell dưới
Cám ơn bạn.
Do hai hàm của bạn ứng dụng mình nhìn thấy lạ hoắc( đừng cười nhé ), nên hôm nay mới thử text được. Nhưng mình Coppy công thức của bạn dán vào I2 thì kết quả hiện #Value . Bạn kiểm tra lại giúp. Mình sai chỗ nào nhỉ ?
 
Xin cám ơn thày.
Hôm trước coppy code của thày về dán vào module của tập tin. không hiểu nhà em thực hiện thiếu bước nào mà nó không chạy, phải thêm một sub để kích nó chạy nó mới nghe, nên mới có đề nghị trên. Hôm nay nhà em text thử tập tin tải của thày về, nó chạy bình thường nên đề nghị trên thừa rồi ạ. Nhưng thày có thể hướng dẫn cách viết thêm lệnh vào sub để kích hoạt code khi gán sự kiên vào 1 ô nào đó không ạ ? bỏ nút bấm .
Chúc thày khỏe, hạnh phúc .
TB: Thấy thày nhắc, mới xem lại,đầu óc lú lẫn quá, cứ chắc mẩm nó là sub nên sau khi coppy nhà em không fill nó xuống, thấy nó không chạy, tưởng thày giải đến đó, còn đoạn sau trò phải tự làm lấy nên nhà em viết cho nó 1 cái sub đẩy vào đít nó mới chạy. Đúng là tập bơi đến tức thở, đứng xuống nước mới tới bụng .
 
Các Thành viên đừng quá nặng nề với các bài tập của USAGI90, có thể nó đã đủ với người này nhưng đang thiếu đối với người khác. Nhưng nó không phản tác dụng là được; ai có nhu cầu thì nghiên cứu, chắc nó sẽ hữu ích cho nhiều người. Tôi mới đọc một vài bài mà đã nắm được một số phương pháp mới khi vận dụng nhiều công thức lồng nhau. Nó khá hay đấy, và chắc nó đang còn là nguồn nghiên cứu của nhiều người mới làm quen cùng EXCEL. Xin cảm ơn tác giả

quần áo trẻ em | quan ao tre em | quần áo sơ sinh | quần áo bé trai | quần áo bé gái | bodysuit carter | quan ao so sinh | quan ao tre em nhap khau
 
Lần chỉnh sửa cuối:
Web KT

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

Trả lời
14
Đọc
5K
Back
Top Bottom