snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
คำแสดงเจตนา
ขอผลแห่งการให้ความรู้นี้ จงกลับไปยังผู้ที่เป็นเจ้าของเดิม แม้ข้าพเจ้าจะไม่รู้จักท่านก็ตาม ขอให้แสงแห่งปัญญาที่ท่านเคยจุดไว้ ได้กลับไปเติมเต็มชีวิตของท่านอีกครั้ง และขอให้เจตนาของข้าพเจ้าเป็นการคืนความดีอย่างสงบ
ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
wasaruud
Member
Posts: 9 Joined: Mon Jan 23, 2012 4:18 pm
Contact:
#1
Post
by wasaruud » Mon Jan 23, 2012 4:55 pm
คืออยากทราบวิธีการกำหนดการดึงค่าข้อมูลจากไฟล์อื่น โดยสามารถกำหนดให้ดึงจากชื่อไฟล์ครับ
เช่น ให้ดึงข้อมูลจากไฟล์ที่ชื่อ test1.xls หรือ test2.xls มาแสดงก็ได้ หากระบุชื่อข้อมูลลงในเซล (ขอสมมุติว่าพิมพ์ในเซล A1 ของไฟล์ Test.xls) ว่าให้เลือกจากไฟล์ไหน
คือ พิมพ์ในช่อง A1 ชื่อไฟล์ test1 ในช่อง B1 ก็ให้ดึงข้อมูลจาก test1 มาแสดง หรือถ้าพิมพ์ในช่อง A1 ชื่อไฟล์ test2 ในช่อง B1 ก็ให้ดึงข้อมูลจาก test2 มาแสดง ประมาณนี้ครับ
ปล.รบกวนด้วยครับ น้องใหม่พึ่งหัดโพสก์ครั้งแรกครับ ขอบคุณอีกครั้งครับ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#2
Post
by bank9597 » Mon Jan 23, 2012 5:15 pm
การ Link ข้ามไฟล์ทำตามนี้ครับ
1. เปิดไฟล์ทั้งสองขึ้นมาพร้อมกัน
2. คลิกไปที่ไฟล์ปลายทาง > คลิกชีทที่ต้องการ > คลิกเซลล์ที่ต้องการวางข้อมูล > คีย์เครื่องหมาย =
3. คลิกเลือกไฟล์ต้นทาง > คลิกชีทที่ต้องการ > คลิกเซลล์ที่ต้องการนำข้อมูลไปวาง > กดแป้น F4 จำนวน 3 ครั้งติดกัน เพื่อเปลี่ยนการอ้างอิงเซลล์ให้เป็นแบบสัมพันธ์
4. Copy เซลล์ในข้อ 3 ไปยังตำแหน่งอื่น ๆ ตามต้องการ
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
wasaruud
Member
Posts: 9 Joined: Mon Jan 23, 2012 4:18 pm
Contact:
#3
Post
by wasaruud » Mon Jan 23, 2012 5:28 pm
อาจารย์ครับ ที่ผมถามหมายถึงว่าเรากำหนดลิ้งไว้ในไฟล์หลักแล้ว แต่จะสามารถดึงโดยกำหนดชื่อไฟล์ครับ
เช่น ถ้ากำหนดชื่อใน A1 เป็น Test1 ข้อมูลทั้งหมดใน Test.xls ก็จะดึงลิ้งค์ข้อมูลของ Test1 ทั้งหมดมาแสดง
แต่ถ้าเปลี่ยนข้อมูลใน A1 ของ Test.xls เป็นชื่อ Test2 ข้อมูลที่กำหนดลิ้งไว้ก็จะไปเลือกเอาไฟล์จาก Test2 มาแสดงแทน
ประมาณนี้ครับ
รบกวนด้วยครับ คือ ผมมีไฟล์หลักอยู่ 1 ไฟล์ ส่วนไฟล์ที่ใช้ดึงบางทีมาจากหลายไฟล์ครับ
อ้อ ผมทำงานเกี่ยวกับเลือกตั้งครับ
การใช้งานของผมคือผมมีไฟล์หลัก 1 ไฟล์ ถ้าต้องเรียกไฟล์จากไฟล์ อบต.ครับ คืออยากให้พิมพ์ชื่อ อบต.ลงในเซลแล้วให้ไฟล์หลักไปดึงข้อมูลจากไฟล์ของ อบต.นั้นมาเลยครับ
wasaruud
Member
Posts: 9 Joined: Mon Jan 23, 2012 4:18 pm
Contact:
#4
Post
by wasaruud » Mon Jan 23, 2012 5:46 pm
อาจารย์ครับ ที่ผมถามหมายถึงว่าเรากำหนดลิ้งไว้ในไฟล์หลักแล้ว แต่จะสามารถดึงโดยกำหนดชื่อไฟล์ครับ
เช่น ถ้ากำหนดชื่อใน A1 เป็น Test1 ข้อมูลทั้งหมดใน Test.xls ก็จะดึงลิ้งค์ข้อมูลของ Test1 ทั้งหมดมาแสดง
แต่ถ้าเปลี่ยนข้อมูลใน A1 ของ Test.xls เป็นชื่อ Test2 ข้อมูลที่กำหนดลิ้งไว้ก็จะไปเลือกเอาไฟล์จาก Test2 มาแสดงแทน
ประมาณนี้ครับ
รบกวนด้วยครับ คือ ผมมีไฟล์หลักอยู่ 1 ไฟล์ ส่วนไฟล์ที่ใช้ดึงบางทีมาจากหลายไฟล์ครับ
อ้อ ผมทำงานเกี่ยวกับเลือกตั้งครับ
การใช้งานของผมคือผมมีไฟล์หลัก 1 ไฟล์ ถ้าต้องเรียกไฟล์จากไฟล์ อบต.ครับ คืออยากให้พิมพ์ชื่อ อบต.ลงในเซลแล้วให้ไฟล์หลักไปดึงข้อมูลจากไฟล์ของ อบต.นั้นมาเลยครับ
จะถามต่อแต่งงกับการโพสก์ครับ
bank9597
Guru
Posts: 3868 Joined: Wed Aug 17, 2011 11:49 am
#5
Post
by bank9597 » Mon Jan 23, 2012 5:57 pm
ผมไม่ใชอาจารย์ครับ
งั้นลองศึกษาตามนี้ดูครับ
viewtopic.php?f=3&t=886
Forum Rules
อย่าใช้ภาษาแชทในการตอบ-ถาม
ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Mon Jan 23, 2012 6:17 pm
wasaruud wrote: อาจารย์ครับ ที่ผมถามหมายถึงว่าเรากำหนดลิ้งไว้ในไฟล์หลักแล้ว แต่จะสามารถดึงโดยกำหนดชื่อไฟล์ครับ
เช่น ถ้ากำหนดชื่อใน A1 เป็น Test1 ข้อมูลทั้งหมดใน Test.xls ก็จะดึงลิ้งค์ข้อมูลของ Test1 ทั้งหมดมาแสดง
แต่ถ้าเปลี่ยนข้อมูลใน A1 ของ Test.xls เป็นชื่อ Test2 ข้อมูลที่กำหนดลิ้งไว้ก็จะไปเลือกเอาไฟล์จาก Test2 มาแสดงแทน
ประมาณนี้ครับ
รบกวนด้วยครับ คือ ผมมีไฟล์หลักอยู่ 1 ไฟล์ ส่วนไฟล์ที่ใช้ดึงบางทีมาจากหลายไฟล์ครับ
อ้อ ผมทำงานเกี่ยวกับเลือกตั้งครับ
การใช้งานของผมคือผมมีไฟล์หลัก 1 ไฟล์ ถ้าต้องเรียกไฟล์จากไฟล์ อบต.ครับ คืออยากให้พิมพ์ชื่อ อบต.ลงในเซลแล้วให้ไฟล์หลักไปดึงข้อมูลจากไฟล์ของ อบต.นั้นมาเลยครับ
จากความต้องการนี้สามารถใช้สูตร Indirect เข้ามาช่วยได้แต่ต้องเปิดไฟลต้นแหล่งทุกไฟล์เอาไว้ด้วยถึงจะใช้สูตร Indirect เข้ามาช่วยเพื่อดึงข้อมูลจากไฟล์ใด ๆ ตามที่เราคีย์ลงไปในเซลล์ได้ ลองศึกษา Link ที่คุณ Bank9597 เพิ่มเติม หากยังไม่ตรงกับที่ต้องการช่วยแนบไฟล์ตัวอย่างและคีย์ตัวอย่างคำตอบที่ต้องการมาให้สักสองสามตัวอย่างเพื่อจะได้สะดวกในการตอบครับ
wasaruud
Member
Posts: 9 Joined: Mon Jan 23, 2012 4:18 pm
Contact:
#7
Post
by wasaruud » Mon Jan 23, 2012 8:33 pm
ผมไม่แน่ใจว่าผมอธิบายชัดเจนรึเปล่า เลยแนบไฟล์มาครับ (ผมคิดว่าถ้าได้เห็นไฟล์คงเข้าใจมากกว่าที่ผมถาม เพราะผมก็ไม่รู้จะอธิบายยังไงดีครับ)
ผมแนบไฟล์มาพร้อมนี้ครับ
ขอบคุณล่วงหน้าครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Mon Jan 23, 2012 8:46 pm
ที่ชีท Main เซลล์ C9 คีย์
=INDIRECT("'["&$C$4&".xlsx]"&"Sheet1'!"&E9)
Enter > Copy ไปเซลล์อื่น ๆ
อย่าลืมสังเกตคอลัมน์ E ผมเขียนเซลล์ที่ต้องการดึงข้อมูลมากำกับไว้เพื่อให้สูตรมีความยืดหยุ่นและง่ายต่อการทำความเข้าใจ กรณีไม่ต้องการให้แสดงคอลัมน์ E สามารถเขียนเข้าไปในสูตรได้เลย แต่กรณีมีการแก้ไขเซลล์อ้างอิงหลาย ๆ เซลล์จะมีความยุ่งยากลำบากในการเปลี่ยนแปลงแก้ไขสูตร อีกประการ จำเป็นต้องเปิดไฟล์ต้นทางไว้ด้วยเสมอครับ
You do not have the required permissions to view the files attached to this post.
wasaruud
Member
Posts: 9 Joined: Mon Jan 23, 2012 4:18 pm
Contact:
#9
Post
by wasaruud » Mon Jan 23, 2012 8:54 pm
อาจารย์ครับ กรณีนี้ถ้าไม่ได้เปิดไฟล์ที่ต้องการดึงข้อมูลไว้ด้วยก็เรียกข้อมูลมาไม่ได้ใช่รึเปล่าครับ
เพราะถ้าเก็บข้อมูลไว้ในโฟลเดอร์แยกต่างหาก แล้วให้ไฟล์หลักไปดึงข้อมูลมาดู เพื่อจะไม่ให้คนเข้าไปยุ่งกับไฟล์ data ก็ไม่ได้สิครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#10
Post
by snasui » Mon Jan 23, 2012 8:58 pm
wasaruud wrote: อาจารย์ครับ กรณีนี้ถ้าไม่ได้เปิดไฟล์ที่ต้องการดึงข้อมูลไว้ด้วยก็เรียกข้อมูลมาไม่ได้ใช่รึเปล่าครับ
ถูกต้องครับ
wasaruud wrote: เพราะถ้าเก็บข้อมูลไว้ในโฟลเดอร์แยกต่างหาก แล้วให้ไฟล์หลักไปดึงข้อมูลมาดู เพื่อจะไม่ให้คนเข้าไปยุ่งกับไฟล์ data ก็ไม่ได้สิครับ
ใช่แล้วครับ การดึงข้อมูลโดยใช้สูตรให้เลือกดึงตามแต่ละไฟล์ลักษณะนี้มีข้อจำกัดครับ
วิธีที่เหมาะสมคือให้ทำไฟล์ Database ไว้ต่างหาก 1 ไฟล์
ไม่ใช่ทำเช่นที่ทำอยู่นี้ครับ การเก็บข้อมูลก็ให้เก็บทุกตำบลอยู่ในไฟล์เดียวกันและเก็บลงไปด้านล่างเรื่อย ๆ ถึงจะเหมาะกับการใช้สูตรดึงข้อมูลมาแสดงครับ
wasaruud
Member
Posts: 9 Joined: Mon Jan 23, 2012 4:18 pm
Contact:
#11
Post
by wasaruud » Mon Jan 23, 2012 9:03 pm
ผมติดปัญหาเรื่อง data ครับ เพราะให้แต่ละ อบต.เป็นคนกรอกข้อมูล เลยทำให้แยกเป็นหลายไฟล์ครับ
ขอบคุณอาจารย์ที่ให้ความกระจ่างครับ
snasui
Site Admin
Posts: 31176 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Mon Jan 23, 2012 9:09 pm
ในขั้นที่แจ้งมานั้นเป็นขั้นตอนการรวบรวม ขั้นการทำ Database ก็เป็นอีกขั้นหนึ่งครับ การนำไฟล์ที่ได้มารวมไว้ด้วยกันให้เป็น Database ก็ทำหลังจากรวบรวมข้อมูลมาแล้ว เมื่อเป็น Database แล้วก็จะง่ายที่จะสรุปข้อมูล ไม่ว่าจะด้วยสูตรหรือด้วยความสามารถอื่น ๆ เช่น PivotTable เพื่อจะดูรายงานในมิติต่าง ๆ ได้สะดวก
กรณีมีไฟล์จำนวนมากและต้องการรวมกันเป็น Database อาจจะต้องใช้ VBA เข้ามาช่วยเพื่อความรวดเร็วและลดข้อผิดพลาด แต่จะเหมาะกับผู้ที่มีความรู้เรื่อง VBA มาบ้างไม่เช่นนั้นจะปรับปรุงเปลี่ยนแปลงแก้ไขเองไม่ได้ครับ
wasaruud
Member
Posts: 9 Joined: Mon Jan 23, 2012 4:18 pm
Contact:
#13
Post
by wasaruud » Mon Jan 23, 2012 9:13 pm
พอเข้าใจแล้วครับ กรณีนี้ต้องทำไฟล์ขึ้นมาอีก 1 ไฟล์เพื่อนำข้อมูลแต่ละไฟล์มารวมกันเป็น database แล้วถึงใช้ไฟล์หลักเรียกข้อมูลที่รวบรวมไว้อีกทีนึง