Page 1 of 1

ขอสูตร link และ เชื่อมขุ้อมูล

Posted: Sat Jul 17, 2010 11:17 am
by na_nut
สวัสดีครับ
มีเรื่องรบกวนนิดนึงครับ คืออยากได้คำสั่งลิงค์ข้อมูลข้ามเวิร์คชีต ดังนี้ครับ
- ข้อมูลที่ต้องการอยู่ที่ drive และ Folder D:\product
- ไฟล์ที่ต้องการอยู่ใน drive และ Folder ที่กล่าวมา ตั้งชื่อไฟล์ว่า code-xxx.xls
- ในแต่ละไฟล์มีชีตย่อย ๆ อีกไฟล์ละเป็นร้อยชีต โดยตั้งชื่อชีตตามรหัสสินค้า เช่น รหัสสินค้า = 1234567890ABC ชื่อชีตก็เป็น 1234567890ABC เช่นกัน (ชีตต่อไปอาจเป็น 1234211567DAEO อะไรประมาณนี้ แต่สามตัวหน้าต้องตรงกันกับรหัส xxx ในชื่อไฟล์ เช่น ไฟล์ชื่อ Code-123.xls ชื่อชีตในไฟล์นั้นต้องขึ้นต้นด้วย 123 ตามด้วยเลขต่อท้ายและตัวอักษร ตามตัวอย่าง)
- ข้อมูลที่ต้องการอยู่ที่ cell K8 กับ L8 คงที่ทุกชีต (มีหลายร้อยชีต)
- ในจำนวนไฟล์ทั้งหมดซึ่งมีหลายสิบไฟล์ มีอยู่ 1 ไฟล์ที่เป็นไฟล์สรุปตัวเลขที่เอามาจาก cell K8 กับ L8 ของทุกชีต ทุกไฟล์
ยกตัวอย่างที่ต้องการคือ
ลำดับที่ รหัส รายการ หน่วย ราคา จำนวนของ จำนวนเงิน
1 12322252225AAN น้ำมันหมูเกรดพิเศษแพ็คถุง 5 กิโล ถุง 300.- 100 30,000.-

*remark รหัส 1232225225aan อยู่ที่ cell b10

-ช่องรหัส ผมใช้สูตรนับชีตที่คุณคนควน Post สอนไว้ นำมาใช้ได้ประโยชน์มากจริง ๆ ข้อมูลที่นำมาใส่ในช่อรหัส ก็ copy มาจาก ชีตที่มีสูตร countsheet แล้วมา vlookup หา description ใส่อีกที
-ที่เหลือคือ จำนวนของ กับ จำนวนเงิน ซึ่งจะมีการเปลี่ยนแปลงไปเรื่อย ๆ ผมจึุงอยากได้สูตรที่กว่าที่ไว้
-ที่ทำไว้ก็คือ ทำ link ไปหา cell k8 กับ l8 (ดูเหมือนน่าจะดี แต่ไม่ดีตรงที่ ไฟล์นี้คนทำไม่ค่อยได้อัพเดทรหัสปล่อยให้มีรหัสเกิดใหม่ มากมายผมต้องเสียเวลามาทำลิงค์กันเป็นวัน

สรุป ความต้องการ
- อยากรบกวนคุณคนควน ขอสูตร (คิดอยู่หลายวันแล้ว) ดึงค่าจาก cell K8 กับ L8 โดยอ้างอิงชื่อชีตจากรหัส
- สูตรเดิมที่ใช้อยู่ แค่ทำลิงค์ธรรมดาคือ ='[Code-123.xls]123555422dady'!$K$8
- สูตรที่พยายามทำ ='[Code-123.xls]ฺิิิิิ&B10'!$K$8 แต่ error ref# มั่ง Value# มั่ง ไม่รู้จะทำอย่างไรให้ชื่อชีตมันมาต่อกับชื่อไฟล์ได้โดยอ้างอิงจาก cell b10 เพื่อจะได้ไม่ต้องมานั่งแก้ตัวเลขทุก ๆ บรรทัดซึ่งมีเป็นพัน ๆ บรรทัด

พยายามรวบรัดแล้วครับ แต่มันก็ยาวจนได้ นี่เป็นการโพสก์ครั้งแรก หากผิดพลาดขออภัยด้วย และรบกวนด้วยครับ

Re: ขอสูตร link และ เชื่อมขุ้อมูล

Posted: Sat Jul 17, 2010 12:11 pm
by snasui
:D การสร้างสูตรให้ Link กันกรณีข้ามไฟล์นั้นสามารถทำได้ 2 กรณีครับ อย่างที่ผมจะนำเสนอนี้เป็นการใช้ฟังก์ชั่น Indirect เข้ามาช่วย ส่วนอีกกรณีเป็นการใช้เทคนิคจากการรวมข้อมูลจากหลายไฟล์มาไว้ในไฟล์เดียว สามารถดูได้จาก http://snasui.blogspot.com/2010/06/blog-post.html

การรวมข้อมูลตาม Link ด้านบน ไม่จำเป็นต้องเปิดไฟล์ต้นทาง แต่สำหรับการใช้ฟังก์ชั่น Indirect นั้นไฟล์ต้นทางจำเป็นจะต้องเปิดขึ้นมาครับ ไม่เ่ช่นนั้นจะเกิดค่าผิดพลาด เช่นตัวอย่างที่ผมทำมา File ที่ชื่อ Code-123.xls นั้นถูกเปิดขึ้นมาพร้อมกับไฟล์ที่เรากำัลังเขียนสูตร โดยทำดังนี้ครับ

1. คอลัมน์ A เป็นการระบุชื่อไฟล์ที่นำมาใช้
2. คอลัมน์ B เป็นการระบุชื่อ Sheet ในไฟล์ที่นำมาใช้
3. คอลัมน์ C และ D ระบุชื่อเซลล์ที่นำข้อมูลมาใช้
4. ที่ C2 เขียนสูตร

=INDIRECT("'["&$A2&"]"&$B2&"'!"&C$1)

Enter > Copy ไปทางขวาและลงด้านล่าง

ต้องปรับใช้ดูครับ :mrgreen:

Re: ขอสูตร link และ เชื่อมขุ้อมูล

Posted: Sat Jul 17, 2010 1:37 pm
by na_nut
ขอบคุณครับ ผมได้นำไปปรับใช้ได้เรียบร้อยแล้วครับ
แต่เนื่องจากไฟล์ที่ลิงค์กันมีจำนวนมาก ลองเปิดมาทั้งหมดเล่นเอาเครื่องอืดไปเลย เครื่องเ่ก่า รุ่น p4 นู่น แรมแค่ 512
เลยอยากได้สูตรหรือฟังชั่นที่ไม่ต้องเปิดไฟล์ มีมั้ยครับ
ขอบคุณครับ ขอรบกวนอีกครั้งครับ

Re: ขอสูตร link และ เชื่อมขุ้อมูล

Posted: Sat Jul 17, 2010 2:09 pm
by snasui
na_nut wrote:ขอบคุณครับ ผมได้นำไปปรับใช้ได้เรียบร้อยแล้วครับ
แต่เนื่องจากไฟล์ที่ลิงค์กันมีจำนวนมาก ลองเปิดมาทั้งหมดเล่นเอาเครื่องอืดไปเลย เครื่องเ่ก่า รุ่น p4 นู่น แรมแค่ 512
เลยอยากได้สูตรหรือฟังชั่นที่ไม่ต้องเปิดไฟล์ มีมั้ยครับ
ขอบคุณครับ ขอรบกวนอีกครั้งครับ
:D หากไม่ต้องการเปิดไฟล์สามารถใช้วิธีตาม Link ที่ให้ไปครับตามด้านล่าง ลองทำดูนะครับ ติดขัดตรงไหนถามมาได้เรื่อย ๆ ไม่ต้องเกรงใจครับ
snasui wrote::D การสร้างสูตรให้ Link กันกรณีข้ามไฟล์นั้นสามารถทำได้ 2 กรณีครับ อย่างที่ผมจะนำเสนอนี้เป็นการใช้ฟังก์ชั่น Indirect เข้ามาช่วย ส่วนอีกกรณีเป็นการใช้เทคนิคจากการรวมข้อมูลจากหลายไฟล์มาไว้ในไฟล์เดียว สามารถดูได้จาก http://snasui.blogspot.com/2010/06/blog-post.html ...

Re: ขอสูตร link และ เชื่อมขุ้อมูล

Posted: Sat Jul 17, 2010 2:40 pm
by na_nut
ขอบคุณครับ จะลองศึกษาและเอาไปปรับปรุงงานดูครับ