Vba: วิธีเพิ่มถ้าระหว่างวันที่สองวัน


คุณสามารถใช้ไวยากรณ์ต่อไปนี้ใน VBA เพื่อคำนวณผลรวมหากเซลล์อยู่ระหว่างสองวัน:

 Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
                                                       Range(" A2:A9 "), " <= " & [E2])
End Sub

ตัวอย่างนี้จะรวมค่าในช่วง B2:B9 เฉพาะเมื่อวันที่ในช่วง A2:A9 อยู่ระหว่างวันที่เริ่มต้นในเซลล์ E1 และวันที่สิ้นสุดในเซลล์ E2 เท่านั้น

ผลรวมจะแสดงในเซลล์ E3

ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ

ตัวอย่าง: วิธีเพิ่ม If ระหว่างวันที่สองวันใน VBA

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

สมมติว่าเราต้องการคำนวณผลรวมยอดขายเฉพาะวันที่ระหว่าง 01/07/2023 ถึง 01/26/2023

เราสามารถสร้างมาโครต่อไปนี้เพื่อทำสิ่งนี้:

 Sub SumifBetweenDates()
Range(" E3 ") = WorksheetFunction.SumIfs(Range(" B2:B9 "), Range(" A2:A9 "), " >= " & [E1], _
                                                       Range(" A2:A9 "), " <= " & [E2])
End Sub

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

โปรดทราบว่าเซลล์ E3 มีค่า 16

ซึ่งแสดงถึงผลรวมของค่าในคอลัมน์ยอดขายโดยวันที่อยู่ระหว่าง 01/07/2023 ถึง 01/26/2023

เราสามารถตรวจสอบได้ว่าข้อมูลนี้ถูกต้องโดยการคำนวณผลรวมของค่าในคอลัมน์ Sales ด้วยตนเอง โดยที่ค่าที่สอดคล้องกันในคอลัมน์ Date อยู่ระหว่าง 01/7/2023 ถึง 01/26/2023:

ผลรวมของยอดขาย: 3 + 7 + 6 = 16 .

ซึ่งสอดคล้องกับค่าที่คำนวณโดย VBA

โปรดทราบว่าหากคุณเปลี่ยนค่าวันที่เริ่มต้นและสิ้นสุดในเซลล์ E1 และ E2 ตามลำดับ และเรียกใช้มาโครอีกครั้ง ระบบจะคำนวณผลรวมของยอดขายสำหรับวันที่ใหม่

หมายเหตุ : สันนิษฐานว่าค่าในคอลัมน์วันที่มีการจัดรูปแบบเป็นวันที่ใน Excel แล้ว

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

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

VBA: วิธีเขียนฟังก์ชัน SUMIF และ SUMIFS
VBA: วิธีเขียนฟังก์ชัน COUNTIF และ COUNTIFS
VBA: วิธีเขียนฟังก์ชัน AVERAGEIF และ AVERAGEIFS

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

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