help!!! xin hàm tính tổng nhiều điều kiện

Liên hệ QC

o0mangg0o

Thành viên mới
Tham gia
9/4/16
Bài viết
4
Được thích
0
Em có bảng theo dõi đơn hàng, e muốn tính giá tiền cho từng đơn theo số sản phẩm bán ra (giá tra theo bảng 2) mà mày mò mãi không ra được. Mong các pro giúp đỡ em ạ :(

Nếu được xin các pro chỉ giùm em xem làm thế nào để tính toán được khi 1 khách hàng mua 2sp cùng 1 mã nữa ạ :( em xin Chân thành cảm ơn ạ.



 

File đính kèm

Dấu X là gì vậy? 1 KH mua sp nào?
 
Nhìn vào bảng tôi chẳng hiểu gì cả, cách tính như thế nào bạn phải nói rõ chứ.
 
Mình cũng chỉ đoán mò í của bạn thôi

Em có bảng theo dõi đơn hàng, e muốn tính giá tiền cho từng đơn theo số sản phẩm bán ra (giá tra theo bảng 2) mà mãi không ra được. (*) Nếu được xin các pro chỉ giùm em xem làm thế nào để tính toán được khi 1 khách hàng mua 2sp cùng 1 mã nữa ạ :( em xin Chân thành cảm ơn ạ.

Xem trong file, mình làm bỡi hàm tự tạo

(*) Muốn tính cái này, bạn sẽ fải xài 1 con số nào đó chỉ số lượng mặt hàng thay vì dấu "X"

Cần chú í: Các con số giả lập của bạn cũng chưa thật hay; Xem ~ con số của mình!
 

File đính kèm

Nhìn vào bảng tôi chẳng hiểu gì cả, cách tính như thế nào bạn phải nói rõ chứ.
em đã thay dấu "x" bằng số lượng sản phẩm rồi ạ, em muốn tính được cột giá tiền trên từng đơn hàng, ví dụ như khách hàng mua 1 mã 001 và 2 mã 006 thì giá tiền sẽ được cộng theo giá trên bảng 2 ạ.
 

File đính kèm

Vậy thì sửa hàm người dùng ở bài #5 lại như vầy:
PHP:
Option Explicit
Function DonGia(Rng As Range)
 Dim Cls As Range, WF As Object
 Dim MaHg As String
 Const Ma As String = "vcd "
 
1 Set WF = Application.WorksheetFunction
 For Each Cls In Rng
3    If IsNumeric(Cls.Value) And Cls.Value > 0 Then       '*'
        MaHg = Ma & Right("00" & CStr(Cells(2, Cls.Column).Value), 3)
5        DonGia = DonGia + Cls.Value * WF.VLookup(MaHg, Range("DGia"), 2, False)     '*'
    End If
7 Next Cls
End Function
 
Lần chỉnh sửa cuối:
Vậy thì sửa hàm người dùng ở bài #5 lại như vầy:
PHP:
Option Explicit
Function DonGia(Rng As Range)
 Dim Cls As Range, WF As Object
 Dim MaHg As String
 Const Ma As String = "vcd "
 
 Set WF = Application.WorksheetFunction
 For Each Cls In Rng
    If IsNumeric(Cls.Value) And Cls.Value > 0 Then       '*'
        MaHg = Ma & Right("00" & CStr(Cells(2, Cls.Column).Value), 3)
        DonGia = DonGia + Cls.Value * WF.VLookup(MaHg, Range("DGia"), 2, False)     '*'
    End If
 Next Cls
End Function

Hic, Pro có thể giải thích rõ hơn được không ạ em vẫn chưa hiểu ạ :(
 
(Đối chiếu với #7)

3 Dòng lệnh trước D1: Khai báo các biến cũng như 1 hằng cần dùng
D1: Gán đối tượng hàm của Excel vô biến đối tượng đã khai báo;
D2: Tạo vòng lặp duyệt toàn bộ các ô đã cung cấp cho hàm (Là các ô trong cùng dòng với UDF)
Vòng lặp này kết thúc tại D7;
D3: Nếu ô đang được duyệt có dạng số & hơn 0 thì thực hiện các câu lệnh tiếp sau cho đến D6.
D4: Dòng lệnh tạo mã hàng bằng cách lấy hằng (đã khai báo) nối tiếp với chuỗi, mà chuỗi này được tạo bỡi cách sau:
Lấy 2 con số không nối với trị trong ô thuộc dòng 2 & cùng cột với ô đang duyệt (khảo sát) đã được chuyển sang dạng chuỗi; Sau đó cắt chỉ lấy độ đài là 3 (kí tự)
Giá (Thành tiền) sẽ là số lần mua mặt hàng đem nhân với đơn giá của mặt hàng đó; Đơn giá mặt hàng đó được tham chiếu bỡi hàm VLOOKUP() trang excel

Chúc vui!
 
Web KT

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

Back
Top Bottom