วิธีการคำนวณค่าเฉลี่ยถ่วงน้ำหนักใน 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

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *