วิธีการคำนวณค่าเฉลี่ยถ่วงน้ำหนักใน vba (พร้อมตัวอย่าง)
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อคำนวณค่าเฉลี่ยถ่วงน้ำหนักโดยใช้ VBA:
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
ตัวอย่างเฉพาะนี้จะคำนวณค่าเฉลี่ยถ่วงน้ำหนักโดยใช้เซลล์ในช่วง B2:B7 เป็นค่า และเซลล์ในช่วง C2:C7 เป็นน้ำหนัก
ค่าเฉลี่ยถ่วงน้ำหนักจะแสดงในเซลล์ E2
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่าง: คำนวณค่าเฉลี่ยถ่วงน้ำหนักโดยใช้ VBA
สมมติว่าเรามีชุดข้อมูลต่อไปนี้ใน Excel ที่แสดงยอดขายต่างๆ โดยพนักงานของบริษัท:
สมมติว่าเราต้องการคำนวณค่าเฉลี่ยถ่วงน้ำหนักของราคาโดยใช้ค่าในคอลัมน์ จำนวน เป็นค่าและค่าในคอลัมน์ ราคา เป็นน้ำหนัก:
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
Sub FindWeightedAverage()
Range(" E2 ") = _
WorksheetFunction.SumProduct(Range(" B2:B7 "), Range(" C2:C7 ")) / _
WorksheetFunction.Sum(Range(" C2:C7 "))
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
โปรดสังเกตว่าเซลล์ E2 มีค่าเป็น 9.705882
เราสามารถตรวจสอบได้ว่าข้อมูลนี้ถูกต้องโดยการคำนวณค่าเฉลี่ยถ่วงน้ำหนักด้วยตนเอง
โปรดจำไว้ว่าเราใช้สูตรต่อไปนี้สำหรับค่าเฉลี่ยถ่วงน้ำหนัก:
ค่าเฉลี่ยถ่วงน้ำหนัก = Σw i X i / Σw i
ทอง:
- w i = ค่าน้ำหนัก
- X i = ค่าข้อมูล
เราสามารถแทนค่าจากชุดข้อมูลของเราลงในสูตรนี้เพื่อคำนวณราคาถัวเฉลี่ยถ่วงน้ำหนัก:
- ค่าเฉลี่ยถ่วงน้ำหนัก = Σw i X i / Σw i
- ค่าเฉลี่ยถ่วงน้ำหนัก = (1*8 + 3*5 + 2*6 + 2*7 + 5*12 + 4*14) / (1+3+2+2+5+4)
- เกรดเฉลี่ยของนักเรียน A = 9.705882
ซึ่งตรงกับค่าที่เราคำนวณโดยใช้มาโคร
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีเขียนฟังก์ชัน AVERAGEIF และ AVERAGEIFS
VBA: วิธีเขียนฟังก์ชัน SUMIF และ SUMIFS
VBA: วิธีเขียนฟังก์ชัน COUNTIF และ COUNTIFS