Vba: วิธีเขียนฟังก์ชัน averageif และ averageifs


คุณสามารถใช้วิธีต่อไปนี้เพื่อเขียนฟังก์ชัน AVERAGEIF และ AVERAGEIFS โดยใช้ VBA ใน Excel:

วิธีที่ 1: ฟังก์ชัน AVERAGEIF ใน VBA

 Sub Averageif_Function()
    Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub

ตัวอย่างนี้จะคำนวณค่าเฉลี่ยในช่วง B2:B12 โดยที่ค่าที่สอดคล้องกันในช่วง A2:A12 เท่ากับ “Mavs” จากนั้นกำหนดผลลัพธ์ให้กับเซลล์ E2

วิธีที่ 2: ฟังก์ชัน AVERAGEIFS ใน VBA

 Sub Averageifs_Function()
    Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub

ตัวอย่างนี้จะคำนวณค่าเฉลี่ยในช่วง C2:C12 โดยที่ค่าในช่วง A2:A12 เท่ากับ “Mavs” และ ค่าในช่วง B2:B12 มากกว่า 20 จากนั้นกำหนดผลลัพธ์ให้กับเซลล์ E2 . .

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับชุดข้อมูลต่อไปนี้ใน Excel ที่มีข้อมูลเกี่ยวกับผู้เล่นบาสเกตบอลต่างๆ:

ตัวอย่างที่ 1: ฟังก์ชัน AVERAGEIF ใน VBA

สมมติว่าเราต้องการคำนวณค่าเฉลี่ยในคอลัมน์คะแนนสำหรับผู้เล่นในทีม Mavs

เราสามารถสร้างแมโครต่อไปนี้เพื่อดำเนินการฟังก์ชัน AVERAGEIF นี้:

 Sub Averageif_Function()
    Range(" E2 ") = WorksheetFunction.AverageIf(Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "))
End Sub

เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

โปรดสังเกตว่าเซลล์ E2 มีค่าเป็น 18.25

สิ่งนี้บอกเราว่าค่าเฉลี่ยในคอลัมน์คะแนนสำหรับผู้เล่นทีม Mavs คือ 18.25

เราสามารถตรวจสอบได้ว่าสิ่งนี้ถูกต้องโดยการคำนวณค่าคะแนนผู้เล่นเฉลี่ยบน Mavs ด้วยตนเอง:

คะแนนเฉลี่ยของผู้เล่น Mavs: (22 + 10 + 29 + 12) / 4 = 18.25

ตัวอย่างที่ 2: ฟังก์ชัน AVERAGEIFS ใน VBA

สมมติว่าเราต้องการคำนวณค่าเฉลี่ยในคอลัมน์ช่วยเหลือสำหรับผู้เล่นที่มีคุณสมบัติตรงตามเกณฑ์ต่อไปนี้:

  • ผู้เล่นเป็นส่วนหนึ่งของทีม Mavs
  • ผู้เล่นทำคะแนนได้มากกว่า 20 คะแนน

เราสามารถสร้างแมโครต่อไปนี้เพื่อดำเนินการฟังก์ชัน AVERAGEIFS นี้:

 Sub Averageifs_Function()
    Range(" E2 ") = WorksheetFunction.AverageIfs(Range(" C2:C12 "), Range(" A2:A12 "), " Mavs ", Range(" B2:B12 "), " >20 ")
End Sub

เมื่อเราเรียกใช้แมโครนี้ เราได้รับผลลัพธ์ต่อไปนี้:

โปรดสังเกตว่าเซลล์ E2 มีค่า 9

สิ่งนี้บอกเราว่าค่าเฉลี่ยแอสซิสต์ของผู้เล่นที่อยู่ในทีม Mavs และ ที่ทำคะแนนได้มากกว่า 20 คะแนนคือ 9

หมายเหตุ : ในตัวอย่างนี้ เราได้สร้างฟังก์ชัน AVERAGEIFS โดยใช้ช่วงเกณฑ์สองช่วง แต่คุณสามารถใช้ช่วงเกณฑ์ได้มากเท่าที่คุณต้องการในเมธอด WorksheetFunction.AverageIfs

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ใน VBA:

VBA: วิธีคำนวณค่าเฉลี่ยของช่วง
VBA: วิธีเขียนฟังก์ชัน SUMIF และ SUMIFS
VBA: วิธีเขียนฟังก์ชัน COUNTIF และ COUNTIFS

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

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