Page 1 of 1
ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Mon Nov 28, 2011 3:32 pm
by 5xXx5
ผมมีข้อมูล 2 ไฟล์ เนื่องจากไฟล์ต้นทางมีหลาย worksheet ซึ่งเก็บข้อมูลเป็นเดือนๆ
ไฟล์ปลายทางมีชีท 2 ชนิดคือ ชีทตั้งค่า กับชีทที่รับข้อมูล ในส่วนของชีทที่รับข้อมูลเราสามารถทำแบบนี้ได้ไหมครับ
=[ชื่อไฟล์]ชื่อแผ่นงาน!ตำแหน่งเซลล์
โดยให้ชื่อแผ่นงานเป็นค่าของเซลล์ในชีทตั้งค่าของไฟล์ปลางทาง ได้ไหมครับ แบบว่าเวลาเปลี่ยนเดือนเราเปลี่ยน
เฉพาะค่าในเซลล์ของชีทตั้งค่า เช่น ตค. พย. เป็นต้น เท่านั้นนะครับ เพราะค่าของไฟล์ต้นทางมาใหม่ทุกๆเดือนนะครับ
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Mon Nov 28, 2011 3:58 pm
by bank9597
ชื่อไฟล์]ชื่อแผ่นงาน!ตำแหน่งเซลล์

ถ้าเข้าใจไม่ผิด ก็น่าจะเป็นการเชื่อมโยงข้ามไฟล์ หากไฟล์ต้นทางมีการเปลี่ยนแปลง ไฟล์ปลายทางก็จะเปลี่ยนตาม
แต่จะติดใจตรงที่ว่า ไฟล์ต้นทางมีหลายชีท แล้วจะนำมาเก็บในไฟล์ที่ 2 ไม่ทราบว่าจะเก็บรวมไว้ที่ชีทเดียวหรือตามไฟล์ต้นทาง เช่น ต้นทางมี 10 ชีท ปลายทางก็ต้องสร้างชีทไว้รับข้อมูล 10 ชีทเช่นกัน
อีกอย่างคือ การเก็บข้อมูลดังกล่าวแค่เชื่อมโยงอย่างเดียวหรือบันทึกมาเก็บที่ไฟล์ปลายทางเลย เพราะหากบันทึกเก็บเลย จะต้องทำใช้ VBA เข้ามาช่วย เพราะหากใช้สูตรก็จะทำได้แค่การเชื่อมโยงและดึงข้อมูลข้ามชีทกันเท่านั้น (เท่าที่รู้น่ะครับ)
ส่วนไฟล์ตั้งค่า ตรงนี้ยังไม่เข้าใจ
ฉะนั้น คำถามนี้ยังคลุมเครืออยู่ ให้ลองทำไฟล์ตัวอย่างพร้อมคำตอบที่ควรจะเป็นแล้วแนบมาดูครับ จะได้เห็นตัวอย่างและแก้ไขได้ถูกประเด็น

Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Mon Nov 28, 2011 3:58 pm
by snasui

สามารถใช้ Indirect มาช่วยได้ครับ แต่จะต้องเปิดไฟล์ต้นทางด้วยเสมอไม่เช่นนั้น Indirect จะไม่สามารถทำงานได้ครับ
Form สูตรจะเป็นตามด้านล่าง
=Indirect("'[Filename.xls]Sheetname'!CellAddress")
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Mon Nov 28, 2011 4:27 pm
by bank9597
แต่จะต้องเปิดไฟล์ต้นทางด้วยเสมอไม่เช่นนั้น Indirect จะไม่สามารถทำงานได้ครับ

ผมคิดว่ามันจะเกิดขึ้นกับกรณีบันทึกข้ามไฟล์โดยใช้ VBA อย่างเดียว ที่แท้ใช้สูตรก็เกิดกรณีนี้ได้ด้วยเหรอ

Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Mon Nov 28, 2011 4:46 pm
by snasui
bank9597 wrote:แต่จะต้องเปิดไฟล์ต้นทางด้วยเสมอไม่เช่นนั้น Indirect จะไม่สามารถทำงานได้ครับ

ผมคิดว่ามันจะเกิดขึ้นกับกรณีบันทึกข้ามไฟล์โดยใช้ VBA อย่างเดียว ที่แท้ใช้สูตรก็เกิดกรณีนี้ได้ด้วยเหรอ

ถูกต้องครับ
ฟังก์ชั่นต่อไปนี้หากใช้กับไฟล์ที่ปิดอยู่จะเกิด Error ครับ
- Sumif
- Countif
- Indirect
- Offset
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Mon Nov 28, 2011 4:55 pm
by bank9597

มี COUNTIF ด้วย
ดีน่ะที่ใช้ INDEX

(หวังว่า INDEX คงจะโปรดภัยจาก Error น่ะครับ )
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Mon Nov 28, 2011 4:59 pm
by snasui
bank9597 wrote:หวังว่า INDEX คงจะโปรดภัยจาก Error น่ะครับ
Index สามารถใช้ข้ามไฟล์ได้ครับ
อ้อ...สำหรับ VBA แล้วการอ่านหรือเขียนไฟล์ที่กำลังปิดอยู่นั้นสามารถทำได้โดยไม่ต้องเปิดขึ้นมาครับ
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Mon Nov 28, 2011 5:07 pm
by bank9597

อาจารย์กลั่นแกล้งผม
หาก VBA ใช้ทำงานก็ไฟล์ที่ปิดอยู่ได้ สงสัยต้องตั้งกระทู้ใหม่แล้วล่ะครับ อยากรู้วิธีการทำมากๆครับ เพราะที่ทำมาตลอดคือต้องเปิดไฟล์ทั้ง 2 ไว้ด้วย

Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Mon Nov 28, 2011 8:27 pm
by 5xXx5
แบบนี้ครับที่จะถามคือ สมมุติเราให้เซลล์ที่อยู่ในไฟล์ปลายทางมีค่า = ชื่อ worksheet ในไฟล์ต้นทางแล้ว ใช้สูตร =[ชื่อไฟล์ต้นทาง.xls]เซลล์ปลายทางที่เก็บค่าชื่อ worksheetต้นทาง!ตำแหน่งเซลล์ต้นทาง ได้ไหมครับ
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Mon Nov 28, 2011 8:32 pm
by snasui

ไม่สามารถใช้ตามที่ถามมาได้ครับ จำเป็นจะต้องใช้ฟังก์ชั่น Indirect เข้ามาช่วย
ลองแนบไฟล์ตัวอย่างมาดีกว่าครับ สังเกตว่าผมตอบไปแล้วก็ยังไม่เข้าใจอยู่ดี ดังนั้น ควรถามด้วยตัวอย่าง จะได้เห็นว่าต้องเขียนสูตรอย่างไร การถามไปถามมาลักษณะนี้ผมสามารถตอบได้เรื่อย ๆ เท่าที่ต้องการถาม แต่กว่าจะได้คำตอบตรงกับที่ต้องการจะใช้งานนั้นกินเวลานานครับ
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Tue Nov 29, 2011 9:29 am
by 5xXx5
น่าจะประมาณนี้ครับ
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Tue Nov 29, 2011 9:47 am
by bank9597

เอ...ยังตีโจทย์ไม่แตกครับ เนื่องจากไม่ได้เห็นคำตอบที่ควรจะเป็นด้วย เลยทำให้เข้าใจโจทย์ไม่ทั้งหมด

ให้เพิ่มคำตอบที่อยากได้มาให้ด้วยได้ไหมครับ เผื่อจะมองอะไรออกได้มากกว่านี้
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Tue Nov 29, 2011 10:18 am
by 5xXx5
เพิ่มเติมครับ
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Tue Nov 29, 2011 11:24 am
by snasui

เปิดทั้งสองไฟล์ขึ้นมาพร้อมกัน จากนั้นไปที่ไฟล์ปลายทาง ชีท 1 เซลล์ A1 คีย์
=INDIRECT("'[ไฟล์ต้นทาง.xlsx]"&setup!$A$1&"'!"&ADDRESS(ROW(),COLUMN()))
Enter > Copy ไปทางขวา
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Tue Nov 29, 2011 11:36 am
by bank9597

เอิ๊ก.. บอกตรงๆ แบบซื่อๆน่ะครับ ผมยังไม่ Get กับคำถามเลย

ขออภัยเพื่อนสมาชิกด้วยครับ และขอบคุณอาจารย์ที่ให้คำตอบครับ

Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Tue Nov 29, 2011 1:48 pm
by 5xXx5
ขอบคุณครับ..พอดีติดอีกนิดครับ..ในส่วนของ ADDRESS(ROW(),COLUMN()) นี้เราสามารถระบุเซลล์ในไฟล์ต้นทางเลยได้ไหมครับ พอดีในส่วนของไฟล์ปลายทางจะเป็นฟอร์มนะครับ เซลล์ใครเซลล์มันนะครับ แต่ที่ไฟล์ต้นทางจะเป็นแถวแบบนั้นนะครับ
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Tue Nov 29, 2011 2:29 pm
by snasui

ลองปรับเป็น
=INDIRECT("'[ไฟล์ต้นทาง.xlsx]"&setup!$A$1&"'!"&"
A1")
Enter แล้วสังเกตดูผล ปรับเป็นเซลล์ใด ๆ ตามต้องการ
Re: ขอสอบถามเรื่อง link ข้อมูลระหว่าง workbook ครับ
Posted: Tue Nov 29, 2011 3:04 pm
by 5xXx5