ฉันกำลังเขียนฟังก์ชันแมโครใน Excel เพื่อจัดระเบียบชุดข้อมูลการขายรายเดือน รูปแบบดั้งเดิมใช้ 6 แถวต่อรายการและตารางที่จัดระเบียบใช้เพียง 1 จำนวนการเปลี่ยนแปลงของยอดขายทุกเดือนดังนั้นฉันต้องคิดหาวิธีในการระบุจำนวนรายการขายที่มีเพื่อให้ฉันรู้ว่าจะขยาย สูตร
ในตอนท้ายของข้อมูลดิบจะปรากฏคำว่า "SIGNED:" ในคอลัมน์ที่สองเสมอดังนั้นฉันจึงใช้ฟังก์ชันทางอ้อมและการจับคู่เพื่อกำหนดว่าจะเติมสูตรได้ไกลแค่ไหน รหัสที่ฉันใช้มีลักษณะดังนี้:
Application.Goto Reference:= _
"INDIRECT(""T"" & (MATCH(""SIGNED:"",RawData!C2:C2,0)-3)/6+1)"
Range("T2", Selection).Select
Selection.FillDown
และใช้งานได้ดีในตอนแรกยกเว้นว่าบางครั้งข้อมูลดิบไม่ได้ใช้ 6 แถวเพราะบางครั้งฟังก์ชั่นการจับคู่กับอินพุตด้านบนจะไม่ส่งคืนจำนวนเต็ม ดังนั้นฉันจึงลองใช้ฟังก์ชั่นเพดานรอบฟังก์ชั่นการจับคู่เพื่อรับประกันว่าฉันจะได้จำนวนเต็มและคิดว่ามันจะโอเคถ้ามันปิดหนึ่งหรือสองเพราะมันจัดการได้ง่าย ๆ ด้วยตนเอง สิ่งที่ฉันเขียนมีลักษณะเช่นนี้:
Application.Goto Reference:= _
"INDIRECT(""T"" & Ceiling((MATCH(""SIGNED:"",RawData!C[-20],0)-3)/6+1),1))"
Range("A2", Selection).Select
Selection.FillDown
ตอนนี้ฉันได้รับข้อผิดพลาดและฉันไม่สามารถหาสาเหตุได้ ต้องทำอย่างไรกับรูปแบบของตัวเลขที่ส่งคืนโดยฟังก์ชันเพดานหรือไม่ ฉันจะขอขอบคุณอย่างมากสำหรับความช่วยเหลือใด ๆ ในการแก้ปัญหาหรืออาจเป็นแนวทางที่แตกต่างในการค้นหาจำนวนรายการขาย
ขอบคุณ!