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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
torisan
Member
Posts: 16 Joined: Wed Jun 18, 2014 12:00 am
#1
Post
by torisan » Sat May 09, 2015 11:23 am
รบกวนขอคำแนะนำหน่อยครับ ผมลงข้อมูลในชีทหลับ แต่อยากให้ข้อมูลที่ลงในชิทแรก ไปแสดงรายการที่แจกแจงตามเงื่อนใขในชีทที่2 ครับ
ขอบคุณครับ
รายการอาหาร.xlsx
torisan
Member
Posts: 16 Joined: Wed Jun 18, 2014 12:00 am
#2
Post
by torisan » Sat May 09, 2015 11:27 am
You do not have the required permissions to view the files attached to this post.
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#3
Post
by DhitiBank » Sat May 09, 2015 11:46 am
ลองแบบนี้ครับ
1. ยกเลิกการผสานเซลล์ในส่วนของ รายการอาหาร ในชีท "รายการที่ต้องการให้ออก(แจกแจง)" ก่อน
2. B3 คีย์
=IFERROR(INDEX('รายการอาหาร(ที่ลงข้อมูล)'!$B$2:$B$39,SMALL(IF('รายการอาหาร(ที่ลงข้อมูล)'!$C$2:$C$39=D$1 ,ROW('รายการอาหาร(ที่ลงข้อมูล)'!$C$2:$C$39)-ROW('รายการอาหาร(ที่ลงข้อมูล)'!$C$2)+1),ROWS(B$3:B3 ))),"")
กด Ctrl+Shift ค้างไว้ แล้วกด Enter ครับ
3. E3 คีย์
=IFERROR(INDEX('รายการอาหาร(ที่ลงข้อมูล)'!$D$2:$D$39,SMALL(IF('รายการอาหาร(ที่ลงข้อมูล)'!$C$2:$C$39=D$1 ,ROW('รายการอาหาร(ที่ลงข้อมูล)'!$C$2:$C$39)-ROW('รายการอาหาร(ที่ลงข้อมูล)'!$C$2)+1),ROWS(E$3:E3 ))),"")
กด Ctrl+Shift ค้างไว้ แล้วกด Enter ครับ
4. คัดลอกสูตรลงด้านล่างจนถึงบรรทัดที่ 12
5. คัดลอกสูตรจากตารางโต๊ะที่ 1 ไปทางขวา (โต๊ะที่ 2 และที่ 3)
6. เวลาคัดลอกสูตรลงมายังตารางที่ถัดลงไปด้านล่าง ให้เปลี่ยนตำแหน่งอ้างอิงที่ระบายสีแดงเอาไว้ครับ เช่น
ในตารางโต๊ะที่ 4 หากคัดลอกสูตรจากโต๊ะที่ 1 ลงมาแล้ว ให้ไปที่ formula bar แล้วเปลี่ยนตรงที่ระบายสีแดงโดย
6.1 ที่ B16 : เป็น D$14 และ B$16:B16 ตามลำดับ
6.2 ที่ E16 : เป็น D$14 และ E$16:E16 ตามลำดับ
6.3 แก้ไขแล้วกด Ctrl+Shift+Enter ครับ แล้วค่อยคัดลอกสูตรลงถึงแถวที่ 25
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#4
Post
by snasui » Sat May 09, 2015 11:49 am
อีกตัวอย่างครับ
ที่ชีท รายการที่ต้องการให้ออก(แจกแจง)
เซลล์ B3 คีย์สูตร
=IFERROR(INDEX('รายการอาหาร(ที่ลงข้อมูล)'!$B$2:$B$39 ,AGGREGATE(15,6,1/('รายการอาหาร(ที่ลงข้อมูล)'!$C$2:$C$39=$D$1 )*(ROW('รายการอาหาร(ที่ลงข้อมูล)'!$A$2:$A$39)-ROW('รายการอาหาร(ที่ลงข้อมูล)'!$A$2)+1),$A3)),"")
Enter > Copy ลงด้านล่าง
เซลล์ E3 คีย์สูตร
=IFERROR(INDEX('รายการอาหาร(ที่ลงข้อมูล)'!$D$2:$D$39 ,AGGREGATE(15,6,1/('รายการอาหาร(ที่ลงข้อมูล)'!$C$2:$C$39=$D$1 )*(ROW('รายการอาหาร(ที่ลงข้อมูล)'!$A$2:$A$39)-ROW('รายการอาหาร(ที่ลงข้อมูล)'!$A$2)+1),$A3)),"")
Enter > Copy ลงด้านล่าง
จากนั้น Copy สูตรไปใช้กับพื้นที่อืน ๆ โดยเปลียนเซลล์ที่ได้ทำการระบายสีเอาไว้ในสูตรด้านบนให้อ้างอิงกับเซลล์ที่ใช้จริง
torisan
Member
Posts: 16 Joined: Wed Jun 18, 2014 12:00 am
#5
Post
by torisan » Sat May 09, 2015 12:03 pm
ขอบคุณทั้ง 2 ท่านนะครับ ทำตามทั้ง 2 ท่านแล้ว เป็นผลสำเร็จครับ ต้องขอขอบคุณมากๆเลยครับ (อยากเก่งอย่างนี้บ้างจัง)
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#6
Post
by DhitiBank » Sat May 09, 2015 12:04 pm
ขอบพระคุณครับอาจารย์ เพิ่งเคยเห็นการใช้งาน Aggregate นี่แหละครับ เข้าไปอ่านคำอธิบายสูตรแล้ว...
option เยอะเหลือเกิน
torisan
Member
Posts: 16 Joined: Wed Jun 18, 2014 12:00 am
#7
Post
by torisan » Sun May 10, 2015 7:23 pm
1.xlsx
จากคำถามที่ตั้งมาตอนแรกได้รับคำแนะนำมาเป็นอย่างดี แต่เมื่อนำมาใช้กับงานอีกประเภทซึ่งมีลักษณะงานที่คล้ายๆกัน แต่ไม่สามารถใช้งานได้จึงอยากรบกวนอีกครั้งครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#8
Post
by snasui » Sun May 10, 2015 8:24 pm
ทำตามด้านล่างครับ
C5 คีย์สูตร
=IFERROR(INDEX(PLAN!$E$15:$E$485,AGGREGATE(15,6,1/(PLAN!$Q$15:$Q$484=$L$2)*ROW(PLAN!$E$15:$E$485)-ROW(PLAN!$E$15)+1,$B5)),"")
Enter > Copy ลงด้านล่าง
E5 คีย์สูตร
=IFERROR(INDEX(PLAN!$H$15:$H$485,AGGREGATE(15,6,1/(PLAN!$Q$15:$Q$484=$L$2)*ROW(PLAN!$E$15:$E$485)-ROW(PLAN!$E$15)+1,$B5)),"")
Enter > Copy ลงด้านล่าง
N5 คีย์สูตร
=SUMIFS(PLAN!S$15:S$485,PLAN!$E$15:$E$485,$C5,PLAN!$Q$15:$Q$485,$L$2)
Enter > Copy ไป M5
torisan
Member
Posts: 16 Joined: Wed Jun 18, 2014 12:00 am
#9
Post
by torisan » Sun May 10, 2015 10:31 pm
ขอบคุณอาจารย์ครับ แต่ขออนุญาติถามต่อยอดอีกนิดนะครับ ถ้าในช่อง a1,a38,a75 และต่อไปอีเรื่อยๆ ผมอยากลงข้อมูลให้รันอัตโนมัตล่ะครบ โดย A1 ให้คีย์ 1 A38 ให้คีย์ 2 และAึ75 ให้คีย์ 3 และรันต่อไปเรื่อยๆครับ
logic
Gold
Posts: 1511 Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365
#10
Post
by logic » Mon May 11, 2015 9:46 am
ให้คัดลอกสูตรแล้วเปลี่ยนตำแหน่งอ้างอิงดูเองก่อนดีไหมครับ
ทำแล้วติดปัญหาก็ส่งมาถามกันได้ครับ
torisan
Member
Posts: 16 Joined: Wed Jun 18, 2014 12:00 am
#11
Post
by torisan » Sun May 17, 2015 8:28 am
เรียนอาจารย์ครับ (ท่านผู้รู้และให้วิชาความรู้ถือเป็นครูทุกท่านนะครับอย่าน้อยใจนะ)
จากที่สูตรที่ท่านให้มาผลลองทำแล้วทำได้ แต่เมื่อsave แล้ว แล้วปิดนำมาเปิดที่เครื่องอื่นซึ่ง สูตรจะมีการเปลี่ยนแปลงเล็กน้อย และสูตรก็ไม่ทำงานครับ เป็นเพราะExcel คนล่ะเวอร์ชั่นหรือไหมครับ เครื่องผมเป็น 2010 และเครื่องที่เปฺิดภายหลังเป็น 2007
สูตรที่แสดง =IFERROR(INDEX(PLAN!$E$15:$E$485,_xlfn.AGGREGATE(15,6,1/(PLAN!$Q$15:$Q$484=$L$335)*ROW(PLAN!$E$15:$E$485)-ROW(PLAN!$E$15)+1,$B338)),"")
เท่าที่สังเกตคือจะมี _xlfn เพิ่มเข้ามาครับ
ทั้งนี้ได้แนบข้อความเตือนมาด้วยครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#12
Post
by snasui » Sun May 17, 2015 11:07 am
torisan wrote: เป็นเพราะExcel คนล่ะเวอร์ชั่นหรือไหมครับ
ใช่แล้วครับ กรณีต้องการใช้ได้กับทุก Version ในใช้สูตรที่คุณ DhitiBank แนะนำครับ
torisan
Member
Posts: 16 Joined: Wed Jun 18, 2014 12:00 am
#13
Post
by torisan » Sun May 17, 2015 4:33 pm
เรียนอาจารย์ และคุณDhitiBank
ก่อนอื่นต้องขอขอบคุณอีกครั้งนะครับ ผมได้ลองนำมาดัดแปลงในการใช้งานแล้ว แต่ติดปัญหาในเรื่องของการ copy ลงมาในหน้า 2,3,4,5,.....ลงมาเรื่อยๆ
พอจะมีวิธีบล๊อคหรือการcopy แบบง่ายให้สูตรที่เราตั้งเอาไว้เปลี่ยนเอง หรือมีวิธีแนะนำไหมครับ
ขอบคุณครับ
Plan.xlsx
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#14
Post
by snasui » Sun May 17, 2015 4:37 pm
หน้า 2, 3, 4, 5 ที่กล่าวถึงอยู่ที่ชีทไหน เซลล์ไหนครับ
torisan
Member
Posts: 16 Joined: Wed Jun 18, 2014 12:00 am
#15
Post
by torisan » Sun May 17, 2015 4:45 pm
เรียนอาจารย์
ชีท RT50&RF10ใหม่ครับ
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#16
Post
by snasui » Sun May 17, 2015 7:27 pm
อ่านแล้วไม่เข้าใจว่ากำลังกล่าวถึงปัญหาใด ช่วยชี้ให้เห็นว่ากำลังทำอะไร ปัญหาคืออะไร คำตอบที่ต้องการคืออะไรครับ
หากเป็นปัญหาของปริมาณข้อมูลที่มากขึ้นแล้วสูตรเดิมไม่ครอบคลุม ให้ปรับช่วงเซลล์ในสูตรตามปริมาณข้อมูลจริงครับ
torisan
Member
Posts: 16 Joined: Wed Jun 18, 2014 12:00 am
#17
Post
by torisan » Sun May 17, 2015 7:48 pm
เรียนอาจารย์ครับ
ตอนนี้ผมกำลังใช้วิธีนั่งก๊อปและเปลี่ยนข้อมูลแล้วครับ แต่ยังไม่เสร็จ ขอบคุณสำหรับการตอบปัญหาที่รวดเร็วมากครับ
ต้องขอบคุณจริงๆหากผมติดปัญหาในเรื่องอื่นผมจะมาถามอาจารย์และท่านอื่นๆที่รู้นะครับ
ช่วงนี้นั่งอ่านและเก็บข้อมูลในหัวข้อของท่านอื่นอยู่ครับ
ขอบคุณครับ