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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#2
Post
by snasui » Mon Jan 13, 2014 3:58 pm
แนบภาพ แนบไฟล์มาที่ฟอรัมนี้ได้เลยครับ
shub
Member
Posts: 13 Joined: Mon Jan 13, 2014 2:47 pm
#3
Post
by shub » Mon Jan 13, 2014 4:18 pm
ครับ ไฟล์ excelนะครับ ส่วนรูปpdfนี่เป็นแค่ตัวอย่างนะคับว่าอยากให้ออกมาหน้าตาแบบนี้
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#4
Post
by snasui » Mon Jan 13, 2014 4:50 pm
ไม่พบหน้าตา Report ที่ต้องการครับ
ช่วยแนบหรือชี้ให้เห็นว่า ข้อมูลเป็นอย่างไร รายงานที่ต้องการเป็นอย่างไร
shub
Member
Posts: 13 Joined: Mon Jan 13, 2014 2:47 pm
#5
Post
by shub » Mon Jan 13, 2014 5:00 pm
ออกมาเป็นแบบในรูปที่ 2 อะคับซึ่งอาจจะเปลี่ยนแปลงได้อิสระครับ เหมือนไฟล์ excel ไว้เก็บข้อมูลไว้เฉยๆครับ แล้วดึงข้อมูลออกมาเป็นฟอร์มตามรูปที่2เพื่อปริ้นออกมาใช้งานครับ ไม่ทราบว่ามีวิธีไหนสามารถทำได้ไหมครับ
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#6
Post
by snasui » Mon Jan 13, 2014 5:06 pm
ผมไม่ดูภาพดูไฟล์จากที่อื่น ช่วยแนบไฟล์แนบภาพมาที่ฟอรัมนี้ครับ
ขนาดภาพต้องไม่เกิน 800*600 ขนาดไฟล์ต้องไม่เกิน 300kb
ฟอรัมนี้
ห้ามใช้ภาษาแชท เช่นคำว่า
คับ อ่ะคับ ฯลฯ ช่วยอ่านกฎการใช้บอร์ดทุกข้อด้านบนด้วยครับ
shub
Member
Posts: 13 Joined: Mon Jan 13, 2014 2:47 pm
#7
Post
by shub » Mon Jan 13, 2014 5:26 pm
นี่ครับรูปตัวอย่างฟอร์มของรีพอร์ตโดยประมาณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#8
Post
by snasui » Mon Jan 13, 2014 5:29 pm
ให้สร้าง Report เลียนแบบรูปที่แนบมา โดยข้อมูลต้นทางที่จะนำมาทำรายงานควรทำให้เป็น Database จะได้ง่ายต่อการดึงข้อมูลด้วยสูตรมาแสดงในรายงาน
จากนั้นแนบไฟล์ข้อมูลและไฟล์รายงานที่ต้องการมาถามตอบกันต่อครับ
shub
Member
Posts: 13 Joined: Mon Jan 13, 2014 2:47 pm
#9
Post
by shub » Tue Jan 14, 2014 9:23 am
ครับผมสร้างฟอร์มเลียนแบบมาแล้วนะครับ แต่ถ้าพูดในทางทฤษฎีนี่ผมสงสัยว่าถ้าเราสร้างข้อมูลในexcelมาเยอะๆแล้วข้อมูลแต่ละบรรทัดจะถูกส่งไปในBOOKING TRUCKยังไงเหรอครับ สมมุติผมมีข้อมูลในexcel 5แถว ผมต้องการให้แถวที่2กับแถวที่5ออกมาอยู่ในbooking truckซึ่งมันต้องออกมา2ใบนี่ขั้นตอนมันจะเป็นยังไงเหรอครับถ้าเสร็จแล้วผมสงสัยจุดนี้ครับ มันจะง่ายกว่าเร็วกว่าสะดวกกว่าcopyไปวางรึเปล่าครับ แล้วสูตรที่ว่านี่คือต้องมานั่งใส่ก่อนจะแปลงข้อมูลให้ไปอยู่รูปในรูปแบบ booking truck หรือเปล่าครับ
ตรงนี้เพราะว่าผมต้องการทำให้เป็นสำเร็จรูปครับ ให้userง่ายต่อการใช้งานครับ
ต้องขอบคุณ คุณsnasuiมากนะครับที่มาช่วยตอบคำถาม
You do not have the required permissions to view the files attached to this post.
shub
Member
Posts: 13 Joined: Mon Jan 13, 2014 2:47 pm
#10
Post
by shub » Tue Jan 14, 2014 9:49 am
ส่วนเรื่องdatabase นี่มีคำแนะนำหรือเปล่าครับว่าต้องทำอย่างไรบ้าง?
cruzz
Member
Posts: 54 Joined: Thu Dec 23, 2010 1:07 pm
#11
Post
by cruzz » Tue Jan 14, 2014 11:49 am
1. ไฟล์ข้อมูลก็เกือบใช้ได้ครับ เปลี่ยนชื่อสดมภ์นิดหน่อย เช่น ไม่ควรจะมี วรรคตอน ให้ใช้ "_" แทนครับ
2. การดึงข้อมูลมาแสดงก็ใช้ vlookup() (กรณีที่ข้อมูลเรียงตามลำดับ) หรือใช้ index()+Match() (ข้อมูลไม่ได้เรียงลำดับ) ให้ไปแสดงบน Report
3. แต่ประเด็นที่สำคัญคือ การคัดกรองข้อมูล ดังที่คุณว่า "ผมต้องการให้แถวที่2กับแถวที่5ออกมา"
แล้ว "แถวที่2กับแถวที่5" มีข้อมูลอะไรที่ต่างจากข้อมูลอื่น
ข้อมูลที่แตกต่างไปนั้น เราก็ใช้เป็น "ค่า" ในการคัดกรองข้อมูลครับ
4. การสั่งพิมพ์ก็ใช้ Macro เอาครับ โดยการคัดกรองข้อมูลก่อน > นับจำนวน ใช้ Count() หรือ Max() > สั่งพิมพ์ตามจำนวนนั้น ครับ
cruzz
Member
Posts: 54 Joined: Thu Dec 23, 2010 1:07 pm
#12
Post
by cruzz » Tue Jan 14, 2014 11:57 am
ต้องขออภัยที่ไม่ได้ทำตัวอย่างมาให้ เพราะไฟล์ข้อมูลที่คุณให้มามันมีแค่ 3 บรรทัด
รบกวนเอาข้อมูลมากกว่านี้สักหน่อย จะได้ทำตัวอย่างมาให้ดูกันครับ
และให้กำหนด ค่าที่ใช้คัดกรอง มาด้วยนะครับ
shub
Member
Posts: 13 Joined: Mon Jan 13, 2014 2:47 pm
#13
Post
by shub » Tue Jan 14, 2014 2:15 pm
ผมแก้ไฟล์มาแล้วนะครับ เพิ่มข้อมูลแล้วก็แก้ไขหน้า BOOKING TRUCK ให้ใกล้เคียงกับตัวไฟล์ข้อมูล
ช่วยยกตัวอย่างการเอาข้อมูลจากหน้า ไฟล์ข้อมูล ไปใส่ในหน้า BOOKING TRUCK ให้ทีครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#14
Post
by snasui » Tue Jan 14, 2014 2:42 pm
ตัวอย่าง การดึงข้อมูลมาแสดง
ที่ชีท BOOKING TRUCK
เซลล์ D9 คีย์ '001
เซลล์ G9 คีย์สูตร
=VLOOKUP(D9,ไฟล์ข้อมูล!$C$2:$D$13,2,0)
Enter เพื่อดึงข้อมูลของ Job CGF ของ Job No. 001 มาแสดง สำหรับรายการอื่น ๆ ก็สามารถใช้สูตรลักษณะนี้ได้เช่นเดียวกัน
สำหรับการใช้งาน Vlookup ดูตัวอย่างได้จาก Link นี้ครับ
wordpress/vlookup/
กรณีไม่ได้คำตอบที่ต้องการ ช่วยกรอกข้อมูลตัวอย่างคำตอบที่ถูกต้องมาด้วยว่า ค่านั้น ๆ ดึงมาจากชีทไหน เซลล์ไหน ด้วยเงื่อนไขใด จะได้เข้าใจตรงกันครับ
shub
Member
Posts: 13 Joined: Mon Jan 13, 2014 2:47 pm
#15
Post
by shub » Tue Jan 14, 2014 3:18 pm
กรณีที่ผมเอา code =VLOOKUP(D9,ไฟล์ข้อมูล!$C$2:$D$13,2,0) ไปใช้กับคอลัมGหรืออื่นๆ นี่ผมต้องแก้ที่จุดไหนยังไงเหรอครับ หรือช่วยยกตัวอย่าง ตรงCustomerให้ผมดูอีกสักอันสิครับ ผมลองแล้วมันขึ้น n/a น่าจะแก้ผิดจุดครับ
อัพเดท ผมแก้ได้ละครับเด๋วติดตรงไหนจะมาถามอีกทีครับขอบคุณครับ
กรณีที่ผมต้องการใช้DATEที่อยู่คอลัม A นี่ต้องทำอย่างไรบ้างครับ
Last edited by
shub on Tue Jan 14, 2014 3:40 pm, edited 1 time in total.
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#16
Post
by snasui » Tue Jan 14, 2014 3:28 pm
กรณีเป็นคอลัมน์ Customer สามารถใช้สูตรด้านล่างครับ
=VLOOKUP(D9,ไฟล์ข้อมูล!$C$2:$
H $13,
6 ,0)
ค่าที่ต้องปรับคือที่ระบายสีแดงไว้ในสูตรครับ
อ่าน Vlookup ตาม Link ที่ผมแนบไปให้เข้าใจจะสามารถดัดแปลงแก้ไขสูตรได้เอง
shub
Member
Posts: 13 Joined: Mon Jan 13, 2014 2:47 pm
#17
Post
by shub » Tue Jan 14, 2014 3:42 pm
ผมลองให้มันค้นหาจาก คอลัมA แล้วมันกลายเป็นN/A ครับ =VLOOKUP(D9,ไฟล์ข้อมูล!$A$2:$AV$13,1,0) ตัวอย่าง
snasui
Site Admin
Posts: 30917 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#18
Post
by snasui » Tue Jan 14, 2014 3:55 pm
snasui wrote: อ่าน Vlookup ตาม Link ที่ผมแนบไปให้เข้าใจจะสามารถดัดแปลงแก้ไขสูตรได้เอง
Vlookup ไม่สามารถค้นหาจากขวาไปซ้ายได้ หากต้องการนำคอลัมน์ A ในชีท ไฟล์ข้อมูล มาแสดงโดยดูเงื่อนไขตาม JOB_NO ต้องใช้ Function อื่น เช่นด้านล่างครับ
=INDEX(ไฟล์ข้อมูล!$A$2:$A$13,MATCH(D9,ไฟล์ข้อมูล!$C$2:$C$13,0))
shub
Member
Posts: 13 Joined: Mon Jan 13, 2014 2:47 pm
#19
Post
by shub » Tue Jan 14, 2014 3:59 pm
สำเร็จแล้วครับ ต้องขอบคุณ คุณ snasui มากๆเลยครับ
cruzz
Member
Posts: 54 Joined: Thu Dec 23, 2010 1:07 pm
#20
Post
by cruzz » Wed Jan 15, 2014 10:58 am
เพิ่มเติมข้อคิด
ปกติผมก็จะใช้ vlookup() บ่อย ๆ และเคยใช้แบบของอาจารย์ คือ
=VLOOKUP(D9,ไฟล์ข้อมูล!$C$2:$H$13,6,0)
แต่ข้อมูลที่ผมต้องการดึงมาแสดงผลนั้น มีหลายค่า
การกำหนดเลข 6 นั้นจึงเป็นการกำหนดแบบตายตัว
ตอนนี้เวลาที่ผมใช้ vlookup() มักใช้คู่กับ Match(ชื่อสดมภ์ที่ใช้สูตร vlookup(),ชื่อสดมภ์ของชุดข้อมูล,0) ครับ
โดยชื่อของ สดมภ์ที่ใช้สูตร vlookup() ให้สร้าง Data Validation => List ชื่อสดมภ์ของชุดข้อมูล
เพราะทำแบบนี้แล้ว จะป้องกันการ Insert หรือ Delete สดมภ์ และสามารถเลือกใช้สดมภ์ที่ต้องการได้อย่างสะดวกยิ่งขึ้นครับ
(เพราะถ้าใส่เลข 6 เวลา Insert Column ค่าของช่องที่ 6 จะเปลี่ยนค่าไป)