ด้านล่างเราจะดูโปรแกรมใน Excel VBA นั่น แก้ปัญหา ตัวอย่างเล็ก ๆ ของ a ปัญหาเป้ .
คำจำกัดความ: กำหนดชุดของรายการ โดยแต่ละรายการมีน้ำหนักและมูลค่า กำหนดรายการที่จะรวมไว้ในคอลเลกชัน เพื่อให้มูลค่ารวมมีขนาดใหญ่ที่สุดและน้ำหนักรวมน้อยกว่าขีดจำกัดที่กำหนด มันได้ชื่อมาจากปัญหาที่ต้องเผชิญกับใครบางคนที่ถูกจำกัดด้วยเป้ขนาดคงที่และต้องเติมรายการที่มีประโยชน์ที่สุด
ตัวอย่าง: 5 รายการที่มีน้ำหนัก ค่า และขีดจำกัดตามที่กำหนด
ใน Excel ปัญหานี้มีลักษณะดังนี้:
ติดตั้ง add-in ตัวแก้
1. ขั้นแรก เราประกาศตัวแปรห้าตัวประเภท Double โดยมีชื่อจำกัด น้ำหนัก ค่า น้ำหนักรวม และค่าสูงสุด
ไม่มีขีดจำกัดเนื่องจาก สองเท่า, น้ำหนักเนื่องจาก สองเท่า, ค่าเนื่องจาก สองเท่า, น้ำหนักรวมเนื่องจาก สองเท่า, ค่าสูงสุดเนื่องจาก สองเท่า2. ต่อไป เราประกาศตัวแปรประเภทจำนวนเต็มจำนวน 5 ตัวโดยใช้ชื่อ i, j, k, l, m
ฟังก์ชัน if ใน excel คืออะไรไม่มีผม, เจ, k, ล, มเนื่องจาก จำนวนเต็ม
3. เราเริ่มต้นสองตัวแปร เราเริ่มต้นขีด จำกัด ของตัวแปรด้วยค่าของเซลล์ D6 เราเริ่มต้นตัวแปร maximumValue ด้วยค่า 0
จำกัด = ช่วง ('D6').valueค่าสูงสุด = 0
4. ต่อไป เราจะตรวจสอบแต่ละวิธีแก้ไขที่เป็นไปได้ เราสามารถใส่รายการ (1) หรือปล่อยไว้ (0) เราเริ่ม 5 For Next ลูป หนึ่งรายการสำหรับแต่ละรายการ
สำหรับผม = 0ถึง1สำหรับเจ = 0ถึง1
สำหรับk = 0ถึง1
สำหรับล. = 0ถึง1
สำหรับม. = 0ถึง1
5. เราคำนวณน้ำหนักและมูลค่าของวิธีแก้ปัญหาที่เป็นไปได้
น้ำหนัก = 12 * i + 2 * j + 1 * k + 1 * l + 4 * mค่า = 4 * i + 2 * j + 2 * k + 1 * l + 10 * m
6. เฉพาะในกรณีที่ค่าสูงกว่าค่าสูงสุดและน้ำหนักต่ำกว่าขีดจำกัด เราพบวิธีแก้ปัญหาใหม่ที่ดีกว่าแล้ว
ถ้าค่า > ค่าสูงสุดและน้ำหนัก<= limit แล้ว7. ถ้าเป็นจริง เราจะเขียนคำตอบใหม่ในแถวที่ 4 น้ำหนักเป็น TotalWeight และค่าเป็นค่าสูงสุด
ช่วง('B4').value = iช่วง ('C4').value = j
ช่วง('D4').value = k
ช่วง('E4').value = l
ช่วง('F4').value = m
รวมน้ำหนัก = น้ำหนัก
ค่าสูงสุด = ค่า
8. อย่าลืมปิดคำสั่ง if
จบ ถ้า9. อย่าลืมปิดลูป 5 For Next
คุณจะเพิ่มวันที่ใน excel ได้อย่างไรต่อไปNS
ต่อไปNS
ต่อไปถึง
ต่อไปNS
ต่อไปผม
Excel VBA ตรวจสอบแต่ละวิธีแก้ปัญหาที่เป็นไปได้ด้วยวิธีนี้ และด้วยเหตุนี้ โซลูชันที่เหมาะสมที่สุดจะปรากฏในแถวที่ 4 โปรดจำไว้ว่า 1 หมายถึงเรารวมรายการ 0 หมายถึงเราปล่อยทิ้งไว้
10. สุดท้าย เขียน TotalWeight และ maximumValue ของโซลูชันที่เหมาะสมที่สุดลงในเซลล์ B6 และ B8 ตามลำดับ
ช่วง('B6').value = TotalWeightช่วง('B8').value = maximumValue
11. ทดสอบโปรแกรม
ผลลัพธ์:
สรุป: เป็นการดีที่สุดที่จะรวมสี่รายการสุดท้ายด้วยค่าสูงสุด 15 วิธีแก้ปัญหานี้ที่มีน้ำหนักรวม 2 + 1 + 1 + 4 = 8 ไม่เกินขีดจำกัด 15
หมายเหตุ: โดยการสร้างตัวแปรน้ำหนักและค่า คุณสามารถแก้ปัญหาเป้ขนาดนี้ได้ (ดูไฟล์ Excel ที่ดาวน์โหลดได้)
ไปที่บทถัดไป: ข้อผิดพลาดมาโคร