snasui.com ยินดีต้อนรับ
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ ระบุ Version ของ Excel
ฟอรัมถาม-ตอบปัญหาการใช้งานสูตรและฟังก์ชัน Excel
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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
sommonr99
Member
Posts: 5 Joined: Sun Jun 16, 2019 2:58 pm
#1
Post
by sommonr99 » Sun Jun 16, 2019 3:25 pm
ปรึกษาอาจารย์ทุกท่านครับ
ผมต้องการรวบรวมข้อมูลของลูกค้าที่ส่งมาให้ โดยมีไฟล์ 2 ประเภทคือ
ไฟล์แรกชื่อ Tracking file.xlsx เป็นไฟล์ที่ต้องการรวบรวมข้อมูล โดยมีเนื้อที่ต้องการหาดังนี้
1.) มีไฟล์ชื่อนี้อยู่ใน floder(สมมติชื่อ DATA) หรือไม่ ถ้า มี ตอบ "มี" ถ้าไม่มีตอบ "ไม่มี"
2.) ถ้ามีไฟล์ในfloderแล้ว ให้แสดงว่าในไฟล์นั้นมีระบุว่ารายการของใบอนุญาตดังนี้
2.1) มีใบอนุญาต A หรือไม่ ถ้ามีให้แสดงว่า "มี" และแสดง "วันหมดอายุ"
2.2) มีใบอนุญาต B หรือไม่ ถ้ามีให้แสดงว่า "มี" และแสดง "วันหมดอายุ"
2.3) มีใบอนุญาต C หรือไม่ ถ้ามีให้แสดงว่า "มี" และแสดง "วันหมดอายุ"
กลุ่มไฟล์ที่2 เป็นไฟล์ xxxx.xlsx ซึ่งเป็นไฟล์ที่ลูกค้าส่งกลับมาให้
รบกวนช่วยแนะนำด้วยครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
sommonr99
Member
Posts: 5 Joined: Sun Jun 16, 2019 2:58 pm
#2
Post
by sommonr99 » Sun Jun 16, 2019 4:00 pm
ผมลองที่cell c3 ของไฟล์ Tracking file
=INDIRECT("["&TEXT( $A3,"0000")&"]"&"Data"&"'!"&C3) มันขึ้น #REF!
แก้ยังไงดีครับ หรือต้องใช้วิธีอี่น
snasui
Site Admin
Posts: 31256 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#3
Post
by snasui » Sun Jun 16, 2019 6:36 pm
คอลัมน์ A ซึ่งเป็นชื่อไฟล์ไม่สามารถนำมาใช้กับสูตรเพื่อตรวจสอบไฟล์ที่ปิดอยู่ได้ครับ
หากจะทำลักษณะนั้นพอจะมีวิธีการทำได้โดยให้เปิดไฟล์ Tracking file.xlsx ไว้พร้อมกับไฟล์ต้นทาง หากไฟล์ต้นทางยังไม่มีให้สร้างเอาไว้ก่อนแล้วค่อยลบทิ้งเมื่อมีการเขียนสูตรเสร็จแล้วก็ทำได้ ที่ต้องเปิดไว้พร้อมกันก่อนเพียงเพื่อสะดวกในการเขียนสูตรเท่านั้น
สมมุติไฟล์ต้นทางคือ 0123.xlsm ที่ไฟล์ Tracking file.xlsx เขียนสูตรดังนี้
ที่ B3 คีย์
=IF(ISERR([0123.xlsx]Data!$A$1),"ไม่มี","มี")
Enter > Copy ลงด้านล่าง
ที่ C3 คีย์
=IF($B3="ไม่มี","",IF(SUMPRODUCT(--([0123.xlsx]Data!$B$3:$B$5=C$2),--([0123.xlsx]Data!$C$3:$C$5="มี")),"มี","ไม่มี"))
Enter > Copy ลงด้านล่าง
ที่ D3 คีย์
=IF($B3="ไม่มี","",SUMPRODUCT(--([0123.xlsx]Data!$B$3:$B$5=C$2),[0123.xlsx]Data!$D$3:$D$5))
Enter > Copy ลงด้านล่าง
คัดลอกสูตรไปใช้กับเซลล์อืน ๆ และเปลี่ยนชื่อไฟล์และตำแหน่งเซลล์อ้างอิงตามใบอนุญาตที่ต้องการตรวจสอบ
คำว่า "มี" หรือ "ไม่มี" ในไฟล์ต้นทาง จะต้องไม่มีวรรคนำหน้าหรือต่อท้าย ไม่เช่นนั้นจะไม่ได้คำตอบครับ ตัวเลขวันที่จะแสดงผลเป็นตตัวเลขทั่วไป หากต้องการให้แสดงเป็นวันที่ต้องจัดรูปแบบเองใหม่ครับ
sommonr99
Member
Posts: 5 Joined: Sun Jun 16, 2019 2:58 pm
#4
Post
by sommonr99 » Sun Jun 16, 2019 8:08 pm
อาจารย์ snasui ครับ
ขอบคุณมากครับ แต่ขออนุญาตถามเพิ่มเติมครับ
1. จากข้อที่1 พอ copy ลงมาข้างล่าง มันฟ้องเป็นมีหมดเลยครับ
1. ถ้าไฟล์ต้นทาง เป็นเลขเช่น 1234,1235,1236 ผมต้องเปลี่ยนสูตร [0123.xlsx] เป็นเลขตามชื่อไฟล์ใช่ไหมครับ ถ้าเป็นแบบน้ันผมต้องเปิดไฟล์และแก้สูตรประมาณ 400คร้ัง(มีประมาณ 400ไฟล์ครับ) มีวิธีแก้ไขไหมครับ
2. พอเราทำสูตรเสร็จหมดแล้ว สามารถปิดและลบไฟล์ต้นทาง(ที่สร้างเอาไว้ก่อน)ได้ใช่ไหมครับ
ขอบคุณครับ
snasui
Site Admin
Posts: 31256 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#5
Post
by snasui » Sun Jun 16, 2019 8:12 pm
sommonr99 wrote: Sun Jun 16, 2019 8:08 pm
1. จากข้อที่1 พอ copy ลงมาข้างล่าง มันฟ้องเป็นมีหมดเลยครับ
1.
ถ้าไฟล์ต้นทาง เป็นเลขเช่น 1234,1235,1236 ผมต้องเปลี่ยนสูตร [0123.xlsx] เป็นเลขตามชื่อไฟล์ใช่ไหมครับ ถ้าเป็นแบบน้ันผมต้องเปิดไฟล์และแก้สูตรประมาณ 400คร้ัง(มีประมาณ 400ไฟล์ครับ) มีวิธีแก้ไขไหมครับ
ถูกต้องครับ
การใช้สูตรจะมีข้อจำกัด มีเป็พันไฟล์ก็ต้องเขียนทั้งพันไฟล์ครับ ยกเว้นจะใช้ VBA และหากต้องการคำตอบเป็น VBA จำเป็นต้องเขียนมาเองก่อนตามกฎการใช้บอร์ดข้อ 5 ด้านบนครับ
sommonr99
Member
Posts: 5 Joined: Sun Jun 16, 2019 2:58 pm
#6
Post
by sommonr99 » Sun Jun 16, 2019 8:19 pm
ขอบคุณอาจารย์ที่แนะนำ ได้แนวทางมากขึ้นเยอะเลยครับ
เดี๋ยวผมลองดูเรื่อง VBA ก่อนครับ
ขอบคุณอีกคร้ังครับ