Giúp viết hàm tính công thức

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

hvha

Thành viên mới
Tham gia
2/8/07
Bài viết
3
Được thích
0
Tôi đang cần viết hàm tính công thức như sau:
Xtb=(a1*X1 + a2*X2 + ... + an*Xn)
nhưng lại không biết gì về lập trình trong exel cả, mong các bạn giúp tôi vì tôi phải dùng hàm này rất nhiều.
Nhân tiện, bạn nào có thể giới thiệu cho tôi một cuốn sách để học lập trình nhanh nhất trong exel, xin cảm ơn.
 
Chào bạn
Bạn có thể tự thực hiện được thôi. Đây là 1 ví dụ, bạn tham khảo nhé :
Mã:
Public Function XTB(Van As Double, Toan As Double)
    Dim Diem As Double
    Diem = Round((Van + Toan) / 2, 0)
    XTB = Diem
End Function
TDN
 
Upvote 0
Neu vay thi cach khai bao 2 mang A(a1, a2, .., an) va X(x1, x2, .., xn) nhu the nao nhi?
 
Upvote 0
Bài này sao phải viết hàm nhỉ? Sử dụng ngay công thức trong Excel là ra thôi.
Giả sử Vùng A1:An là vùng giá trị của a1, a2,... an
Vùng B1:Bn là vùng giá trị của X1, X2,.... Xn
Bạn sử dụng công thức sau:
C1 = Sumproduct(A1:An, B1:Bn)
Vậy thôi!
 
Upvote 0
Cám ơn bạn nvson, nhưng công thức này chỉ áp dụng cho mảng các biến liên tục thôi, ý tôi muốn nói rằng 2 mảng A(a1, a2, ..., an) và X(x1, x2, ..., xn) là tập hợp những biến nằm trong các ô rời rạc nhau, chẳng hạn a1 trong ô A1 nhưng a5 lại ở ô C3 thì sao. Trong trường hợp này vẫn phải viết hàm thôi.
 
Upvote 0
Bạn làm theo thứ tự sau:
Vào VBA, Insert/ Module
Thêm đoạn code sau:
Mã:
Option Explicit
Public Function SumProduct_GPE(ParamArray Numbers())
Dim y, gtri, i
For i = 0 To UBound(Numbers) Step 2
    If TypeName(Numbers(i)) = "Range" And TypeName(Numbers(i + 1)) = "Range" Then
        gtri = WorksheetFunction.SumProduct(Numbers(i), Numbers(i + 1))
    Else
        gtri = Numbers(i) * Numbers(i + 1)
    End If
    y = y + gtri
Next i
SumProduct_GPE = y
End Function
Cú pháp của hàm trên là:
SumProduct_GPE(vùng_a_1, vùng_X_1, vùng_a_2, vùng_X_2,....,vùng_a_n, vùng_X_n)
trong đó các Vùng_a_i và vùng_X_i phải giống nhau về kích thước và đã có vùng_a_i thì phải có vùng_X_i
Ví dụ:
=SumProduct_GPE(B7:B8,C7:C8,B8,C8,B9,C9,2,F12,B10,D14)
 
Upvote 0
Web KT

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

Back
Top Bottom