Page 1 of 1

ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sat May 09, 2015 11:23 am
by torisan
รบกวนขอคำแนะนำหน่อยครับ ผมลงข้อมูลในชีทหลับ แต่อยากให้ข้อมูลที่ลงในชิทแรก ไปแสดงรายการที่แจกแจงตามเงื่อนใขในชีทที่2 ครับ
ขอบคุณครับ
รายการอาหาร.xlsx

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sat May 09, 2015 11:27 am
by torisan
รายการอาหาร.xlsx

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sat May 09, 2015 11:46 am
by DhitiBank
ลองแบบนี้ครับ
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

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sat May 09, 2015 11:49 am
by snasui
:D อีกตัวอย่างครับ

ที่ชีท รายการที่ต้องการให้ออก(แจกแจง)
  1. เซลล์ 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 ลงด้านล่าง
  2. เซลล์ 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 สูตรไปใช้กับพื้นที่อืน ๆ โดยเปลียนเซลล์ที่ได้ทำการระบายสีเอาไว้ในสูตรด้านบนให้อ้างอิงกับเซลล์ที่ใช้จริง

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sat May 09, 2015 12:03 pm
by torisan
ขอบคุณทั้ง 2 ท่านนะครับ ทำตามทั้ง 2 ท่านแล้ว เป็นผลสำเร็จครับ ต้องขอขอบคุณมากๆเลยครับ (อยากเก่งอย่างนี้บ้างจัง)

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sat May 09, 2015 12:04 pm
by DhitiBank
ขอบพระคุณครับอาจารย์ เพิ่งเคยเห็นการใช้งาน Aggregate นี่แหละครับ เข้าไปอ่านคำอธิบายสูตรแล้ว... :shock: option เยอะเหลือเกิน

ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ (ขอคำแนะนำรอบ2)

Posted: Sun May 10, 2015 7:23 pm
by torisan
1.xlsx
จากคำถามที่ตั้งมาตอนแรกได้รับคำแนะนำมาเป็นอย่างดี แต่เมื่อนำมาใช้กับงานอีกประเภทซึ่งมีลักษณะงานที่คล้ายๆกัน แต่ไม่สามารถใช้งานได้จึงอยากรบกวนอีกครั้งครับ

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sun May 10, 2015 8:24 pm
by snasui
:D ทำตามด้านล่างครับ
  1. 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 ลงด้านล่าง
  2. 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 ลงด้านล่าง
  3. N5 คีย์สูตร
    =SUMIFS(PLAN!S$15:S$485,PLAN!$E$15:$E$485,$C5,PLAN!$Q$15:$Q$485,$L$2)
    Enter > Copy ไป M5

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sun May 10, 2015 10:31 pm
by torisan
ขอบคุณอาจารย์ครับ แต่ขออนุญาติถามต่อยอดอีกนิดนะครับ ถ้าในช่อง a1,a38,a75 และต่อไปอีเรื่อยๆ ผมอยากลงข้อมูลให้รันอัตโนมัตล่ะครบ โดย A1 ให้คีย์ 1 A38 ให้คีย์ 2 และAึ75 ให้คีย์ 3 และรันต่อไปเรื่อยๆครับ

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Mon May 11, 2015 9:46 am
by logic
ให้คัดลอกสูตรแล้วเปลี่ยนตำแหน่งอ้างอิงดูเองก่อนดีไหมครับ

ทำแล้วติดปัญหาก็ส่งมาถามกันได้ครับ :)

ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sun May 17, 2015 8:28 am
by torisan
เรียนอาจารย์ครับ (ท่านผู้รู้และให้วิชาความรู้ถือเป็นครูทุกท่านนะครับอย่าน้อยใจนะ)
จากที่สูตรที่ท่านให้มาผลลองทำแล้วทำได้ แต่เมื่อ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 เพิ่มเข้ามาครับ


ทั้งนี้ได้แนบข้อความเตือนมาด้วยครับ

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sun May 17, 2015 11:07 am
by snasui
torisan wrote:เป็นเพราะExcel คนล่ะเวอร์ชั่นหรือไหมครับ
:D ใช่แล้วครับ กรณีต้องการใช้ได้กับทุก Version ในใช้สูตรที่คุณ DhitiBank แนะนำครับ

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sun May 17, 2015 4:33 pm
by torisan
เรียนอาจารย์ และคุณDhitiBank
ก่อนอื่นต้องขอขอบคุณอีกครั้งนะครับ ผมได้ลองนำมาดัดแปลงในการใช้งานแล้ว แต่ติดปัญหาในเรื่องของการ copy ลงมาในหน้า 2,3,4,5,.....ลงมาเรื่อยๆ
พอจะมีวิธีบล๊อคหรือการcopy แบบง่ายให้สูตรที่เราตั้งเอาไว้เปลี่ยนเอง หรือมีวิธีแนะนำไหมครับ
ขอบคุณครับ
Plan.xlsx

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sun May 17, 2015 4:37 pm
by snasui
:D หน้า 2, 3, 4, 5 ที่กล่าวถึงอยู่ที่ชีทไหน เซลล์ไหนครับ

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sun May 17, 2015 4:45 pm
by torisan
เรียนอาจารย์
ชีท RT50&RF10ใหม่ครับ

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sun May 17, 2015 7:27 pm
by snasui
:D อ่านแล้วไม่เข้าใจว่ากำลังกล่าวถึงปัญหาใด ช่วยชี้ให้เห็นว่ากำลังทำอะไร ปัญหาคืออะไร คำตอบที่ต้องการคืออะไรครับ

หากเป็นปัญหาของปริมาณข้อมูลที่มากขึ้นแล้วสูตรเดิมไม่ครอบคลุม ให้ปรับช่วงเซลล์ในสูตรตามปริมาณข้อมูลจริงครับ

Re: ลงข้อมูลชีทแรกให้แจกแจงรายการอีกชิทครับ

Posted: Sun May 17, 2015 7:48 pm
by torisan
เรียนอาจารย์ครับ
ตอนนี้ผมกำลังใช้วิธีนั่งก๊อปและเปลี่ยนข้อมูลแล้วครับ แต่ยังไม่เสร็จ ขอบคุณสำหรับการตอบปัญหาที่รวดเร็วมากครับ
ต้องขอบคุณจริงๆหากผมติดปัญหาในเรื่องอื่นผมจะมาถามอาจารย์และท่านอื่นๆที่รู้นะครับ
ช่วงนี้นั่งอ่านและเก็บข้อมูลในหัวข้อของท่านอื่นอยู่ครับ
ขอบคุณครับ
:cp: :cp: :cp: