EXCEL TOOLS
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
Excel Add-ins ที่พัฒนาโดยคุณสันติพงศ์ ณสุย (MVP Excel 2010-2020) ด้วยภาษา C# เพื่อแก้ไขปัญหาไฟล์ใหญ่ คำนวณนาน ทำงานช้า จัดการข้อมูลต่าง ๆ ที่ทำงานประจำวันได้อย่างสะดวกรวดเร็ว สนใจคลิกไปดูได้ที่นี่ครับ => Excel Tools
[code]
และปิดด้วย [/code]
ตัวอย่างเช่น [code]dim r as range[/code]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)อาจารย์ครับ สูตรนี้ตัว =MATCH(TRUE,INDEX($A$1:$A$100<>"",0),0)snasui wrote:ลองปรับสูตรเป็นด้านล่างครับ
=HYPERLINK("[สต๊อก - สินค้า57.xlsm]"&B3&"!"&"A"&MATCH(TRUE,INDEX($A$1:$A$100<>"",0),0)+1,"ไป")
ทำได้แล้วครับอาจารย์ ผมปรับสูตรเป็นsnasui wrote:ควรแนบไฟล์ตัวอย่างมาด้วยเพื่อสะดวกในการตอบครับ
สำหรับการ Match ตามค่าใน Sheet ที่ระบุใน B2 สามารถปรับสูตรเป็น
=HYPERLINK("[สต๊อก - สินค้า57.xlsm]"&B3&"!"&"A"&MATCH(TRUE,INDEX(INDIRECT("[สต๊อก - สินค้า57.xlsm]"&B3&"!"&"$A$1:$A$100")<>"",0),0)+1,"ไป")
การใช้ Vlookup จำนวนมากสามารถปรับเป็นพวก Index, Match เพื่อเพิ่มความเร็วได้
กรณี Indirect ควรใช้เท่าที่จำเป็น หากใช้มากจะทำให้คำนวณช้า ควรปรับฐานข้อมูลให้อยู่ในชีทเดียวกัน ไม่ควรแยกเป็นหลายชีท
ขอคำแนะนำ ในการเปลี่ยน CODE ด้านบนเป็น VBA หน่อยครับ เป็นการดึงข้อมูลที่อยู่ในวันเดียวกันของแต่ละชีทมาบวกกันborsalino wrote:
=SUMPRODUCT(SUMIF(INDIRECT("'[สต๊อก - สินค้า57.xlsm]"&AllSh&"'!A2:A1000"),$A13,INDIRECT("'[สต๊อก - สินค้า57.xlsm]"&AllSh&"'!E2:E1000")))