Page 1 of 1

ถามสูตร excel

Posted: Sun Apr 17, 2011 3:29 pm
by tast107
ครับ คือว่าวันนี้ผมมีปัญหาใหม่มาให้ชวนปวดหมองอีกแล้ว สูตรคือ VLOOKUP($B$4,[20101101declaration.xls]Declaration!$B$4:$F$36,2,0)

ผมอยากเปลี่ยน 20101101 ที่อยู่หน้า declaration.xls ให้อ้างอิงเซล A1 ครับ ไม่ทราบว่าทำได้หรือป่าวครับ เพราะผมจะได้ให้มันรัน ถึงวันที่ปัจจุบันเิลยครับ ไม่อยากไปนั่งแก้ในสูตร แต่ไปแก้ที่เซลแทน

Re: ถามสูตร excel

Posted: Sun Apr 17, 2011 3:39 pm
by snasui
:D ลองตามนี้ครับ

เปลี่ยนสูตรเป็น

=VLOOKUP($B$4,Indirect("'["&$A$1&"declaration.xls]Declaration'!$B$4:$F$36"),2,0)

Enter

Re: ถามสูตร excel

Posted: Sun Apr 17, 2011 6:08 pm
by tast107
ขอบคุณ คุณ snasui ครับ แต่ผมมีคำถามเพิ่มครับ ถ้าไฟล์ที่ดึงมามันอยู่ dive c เช่น =VLOOKUP($B$4,'C\[20101101declaration.xls]Declaration'!$B$4:$F$36,2,0) จะแก้ยังไงครับ

Re: ถามสูตร excel

Posted: Sun Apr 17, 2011 6:23 pm
by snasui
การใช้ Indirect กับไฟล์ที่ปิดอยู่นั้นไม่สามารถทำได้ครับ หากจำเป็นต้องทำเช่นนั้นต้องติดตั้ง Morefunc และใช้ Indirect.ext

จากนั้นแก้สูตรเป็นตามด้านล่างครับ

=VLOOKUP($B$4,Indirect.ext("'C\["&$A$1&"declaration.xls]Declaration'!$B$4:$F$36"),2,0)

Re: ถามสูตร excel

Posted: Sun Apr 17, 2011 7:22 pm
by tast107
ไม่มีทางอื่นเลยหรือครับ
คือผมต้องการแค่ให้มันรันตามวันที่ครับ เช่น
VLOOKUP($B$4,'C:\[20101101declaration.xls]Declaration'!$B$4:$F$100,2,0)
VLOOKUP($B$4,'C:\[20101102declaration.xls]Declaration'!$B$4:$F$100,2,0)
VLOOKUP($B$4,'C:\[20101103declaration.xls]Declaration'!$B$4:$F$100,2,0)
VLOOKUP($B$4,'C:\[20101104declaration.xls]Declaration'!$B$4:$F$100,2,0)

Re: ถามสูตร excel

Posted: Sun Apr 17, 2011 7:56 pm
by snasui
กรณีการใช้สูตร และต้องการเปลี่ยนชื่อไฟล์ในเซลล์ใด ๆ ไม่มีทางเลือกที่นอกเหนือไปจากที่กล่าวมาแล้วครับ :lol:

หากเป็นหนทางที่ไม่ใช้สูตรก็คงต้องพึ่ง VBA ครับ