Vba: วิธีคำนวณค่าเฉลี่ยของช่วง
คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อคำนวณค่าเฉลี่ยของช่วงใน Excel โดยใช้ VBA:
SubAverageRange ()
Range(" E2 ") = WorksheetFunction.Average(Range(" B1:B12 "))
End Sub
ตัวอย่างนี้จะคำนวณค่าเฉลี่ยในช่วง B2:B12 และกำหนดผลลัพธ์ให้กับเซลล์ E2
ถ้าคุณต้องการแสดงค่าเฉลี่ยในกล่องข้อความแทน คุณสามารถใช้ไวยากรณ์ต่อไปนี้:
SubAverageRange ()
'Create variable to store average value
Dim avg As Single
'Calculate average value of range
avg = WorksheetFunction.Average(Range(" B1:B12 "))
'Display the result
MsgBox " Average Value in Range: " & avg
End Sub
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับชุดข้อมูลต่อไปนี้ใน Excel ที่มีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:
ตัวอย่างที่ 1: คำนวณค่าเฉลี่ยของช่วงโดยใช้ VBA และแสดงผลลัพธ์ในเซลล์
สมมติว่าเราต้องการคำนวณค่าเฉลี่ยในคอลัมน์คะแนนและแสดงผลลัพธ์ในเซลล์ใดเซลล์หนึ่ง
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubAverageRange ()
Range(" E2 ") = WorksheetFunction.Average(Range(" B1:B12 "))
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
โปรดสังเกตว่าเซลล์ E2 มีค่าเป็น 21.27273
นี่บอกเราว่าค่าเฉลี่ยในคอลัมน์คะแนนคือ 21.27273
ตัวอย่างที่ 2: คำนวณค่าเฉลี่ยของช่วงโดยใช้ VBA และแสดงผลลัพธ์ในกล่องข้อความ
สมมติว่าเราต้องการ คำนวณค่าเฉลี่ยในคอลัมน์คะแนนและแสดงผลลัพธ์ในกล่องข้อความแทน
เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:
SubAverageRange ()
'Create variable to store average value
Dim avg As Single
'Calculate average value of range
avg = WorksheetFunction.Average(Range(" B1:B12 "))
'Display the result
MsgBox " Average Value in Range: " & avg
End Sub
เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:
กล่องข้อความบอกเราว่าค่าเฉลี่ยในช่วง B2:B12 คือ 21.27273
โปรดทราบว่าในตัวอย่างนี้ เราคำนวณค่าเฉลี่ยในช่วง B2:B12
อย่างไรก็ตาม หากคุณต้องการคำนวณค่าเฉลี่ยของทั้งคอลัมน์แทน คุณสามารถพิมพ์ B:B แทนได้
วิธีนี้จะคำนวณค่าเฉลี่ยของแต่ละเซลล์ในคอลัมน์ B
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:
VBA: วิธีเขียนฟังก์ชัน AVERAGEIF และ AVERAGEIFS
VBA: วิธีเขียนฟังก์ชัน SUMIF และ SUMIFS
VBA: วิธีเขียนฟังก์ชัน COUNTIF และ COUNTIFS