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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#1
Post
by Totem » Wed Nov 20, 2013 4:04 pm
สอบถามปัญหา เมื่อใช้สูตร countifs จะแสดงผลในช่อง b8 = 3 ราย แล้ว ต้องการทราบว่าจำนวน 3 รายนั้นที่แสดงรายการสินค้า AG ชำระเป็นเงินสด ให้แจกแจงรายละเอียด ในตารางช่อง a16:h18 ครับ
ขอบคุณครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30761 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#2
Post
by snasui » Wed Nov 20, 2013 4:13 pm
โปรแกรมจะทราบได้อย่างไรว่า เมื่อใดจะแสดงข้อมูลของ AG เมื่อไรจะแสดงข้อมูลของ AH ฯลฯ มีอะไรมาบอกหรือไม่ ถ้ามีการบอกไว้ก่อน ค่านั้นระบุอยู่ในเซลล์ใดครับ
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#3
Post
by Totem » Thu Nov 21, 2013 9:53 am
snasui wrote: โปรแกรมจะทราบได้อย่างไรว่า เมื่อใดจะแสดงข้อมูลของ AG เมื่อไรจะแสดงข้อมูลของ AH ฯลฯ มีอะไรมาบอกหรือไม่ ถ้ามีการบอกไว้ก่อน ค่านั้นระบุอยู่ในเซลล์ใดครับ
ข้อมูลของ AG , AH ฯลฯ ทางด้านขวา ข้อมูลตัวอย่าง ดึงออกมาจากระบบ ออก file เป็น Excel เรียงเป็นแถวมาให้ทุกอย่าง ไม่มีอะไรบอกครับ ส่วนตัวรายงานสร้างแบบฟอร์มเอาไว้รอข้อมูล รายการสินค้า AG หรือ AH ฯลฯ ในแบบฟอร์ม และต้องตรวจสอบว่ามีรายละเอียดอะไรบ้างเฉพาะบางรายการ จึงไปดูข้อมูลตัวอย่าง (ข้อมูลมีจำนวนมากกว่าตัวอย่าง) ให้สรุปออกตามมาเป็นรายละเอียดที่ต้องการที่ช่อง A16:H18 ที่สร้างไว้
ปัจจุบัน ใช้วิธี Pivotable แล้ว เลือก fields ที่ต้องการ เมือได้ข้อมูลที่ต้องการแล้ว ก็คัดลอกมาใช้งาน
ผมจึงคิดว่าน่าจะมีสูตร ที่นำมาใช้แทนวิธี Pivotable ครับ
ขอบคุณครับ
snasui
Site Admin
Posts: 30761 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#4
Post
by snasui » Thu Nov 21, 2013 10:26 am
ถ้าทำด้วย
PivotTable ได้ก็ไม่จำเป็นต้องใช้สูตร
ถ้าหากจะใช้สูตรให้ดึงข้อมูลตามเงื่อนไข จะต้องระบุให้ได้ว่าดึงมาตามเงื่อนไขใดหรือดึงมาเมื่อใด ดูจากที่ใด เป็นต้น ไม่เช่นนั้นโปรแกรมจะไม่ทราบว่าเมื่อใดต้องดึงตามเงื่อนไขนั้น ถ้าไม่ทราบว่าเมื่อใดหรือดึงจากเซลล์ใดก็ไม่สามารถเขียน Code หรือสูตรเข้ามาช่วยได้ ต้องทำมืออย่างเดียวครับ
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#5
Post
by Totem » Thu Nov 21, 2013 11:06 am
snasui wrote: ถ้าทำด้วย
PivotTable ได้ก็ไม่จำเป็นต้องใช้สูตร
ถ้าหากจะใช้สูตรให้ดึงข้อมูลตามเงื่อนไข จะต้องระบุให้ได้ว่าดึงมาตามเงื่อนไขใดหรือดึงมาเมื่อใด ดูจากที่ใด เป็นต้น ไม่เช่นนั้นโปรแกรมจะไม่ทราบว่าเมื่อใดต้องดึงตามเงื่อนไขนั้น ถ้าไม่ทราบว่าเมื่อใดหรือดึงจากเซลล์ใดก็ไม่สามารถเขียน Code หรือสูตรเข้ามาช่วยได้ ต้องทำมืออย่างเดียวครับ
ขอบคุณครับ
ขอยกตัวอย่าง เงื่อนไข ถ้าต้องการทราบว่า รายการสินค้า AG เท่ากับช่อง A8 และการชำระเป็นเงินสด มีจำนวน 3 ราย เท่ากับช่อง B8 มีชื่อใดบ้าง แล้วให้ดึงข้อมูลดูจาก ตัวอย่างทางด้านขวา ชื่อ ช่อง j3:j22 ว่าใน 3 ราย ที่ขายสินค้า AG = N2 และได้ชำระเป็นเงินสด = O2 มีชื่ออะไรบ้าง มาแสดงผลลัพธ์ B16:B18 ตามลำดับ แบบนี้ จะใช้สูตรใดในการผูกเงื่อนไขครับ อาจารย์
snasui
Site Admin
Posts: 30761 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#6
Post
by snasui » Thu Nov 21, 2013 11:15 am
AG ที่ว่านั้นมาจากไหนครับ จู่ ๆ โปรแกรมจะทราบได้อย่างไรว่าเราต้องการดู AG ครับ
ที่ต้องถามเช่นนี้เนื่องจากมี Code อื่นอีกเยอะแยะไม่เฉพาะ AG จึงจำเป็นต้องทราบว่าเมื่อใดจึงจะดึง AG หรือดูจากเครื่องใด ไฟล์ใด ชีทใด เซลล์ใด กล่องข้อความ หรือ Object ใด ฯลฯ จึงจะทราบว่าต้องดึงเฉพาะ AG ครับ
snasui
Site Admin
Posts: 30761 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#7
Post
by snasui » Thu Nov 21, 2013 11:51 am
สูตรด้านล่างนี้คือดูที่
A8
ที่ A16 คีย์สูตร
=IFERROR(INDEX(I$3:I$22,SMALL(IF($N$3:$N$22=
$A$8 ,ROW($I$3:$I$22)-ROW($I$3)+1),ROWS(A$16:A16))),"")
Ctrl+Shift+Enter > Copy ไปทางขวาและลงด้านล่าง
! Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น { =YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
Totem
Silver
Posts: 650 Joined: Fri Oct 11, 2013 7:52 pm
Excel Ver: 365 , 2007
#8
Post
by Totem » Thu Nov 21, 2013 12:08 pm
snasui wrote: สูตรด้านล่างนี้คือดูที่
A8
ที่ A16 คีย์สูตร
=IFERROR(INDEX(I$3:I$22,SMALL(IF($N$3:$N$22=
$A$8 ,ROW($I$3:$I$22)-ROW($I$3)+1),ROWS(A$16:A16))),"")
Ctrl+Shift+Enter > Copy ไปทางขวาและลงด้านล่าง
! Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น { =YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
ใช่เลยครับ แบบนี้เลย ผมจะได้ไปปรับใช้กับงานที่เกี่ยวข้อง ขอบคุณครับ อาจารย์