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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#1
Post
by siamsrising » Fri Oct 11, 2019 1:56 pm
คือผมต้องการค้นหาข้อมูลเพื่อให้มาโชว์ครับ ผมต้องการดึงข้อมูลในช่วง D:F มาโชว์ในช่อง A4:B10 ครับ โดยอิงจาก B1
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#2
Post
by siamsrising » Fri Oct 11, 2019 3:10 pm
ไฟล์ครับ
You do not have the required permissions to view the files attached to this post.
snasui
Site Admin
Posts: 30920 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:
#3
Post
by snasui » Fri Oct 11, 2019 7:49 pm
ตัวอย่างสูตรครับ
เซลล์ A4 คีย์
=IFERROR(INDEX(E$2:E$15,SMALL(IF(FREQUENCY(IF($D$2:$D$154=$B$1,MATCH($E$2:$E$15&$F$2:$F$15,$E$2:$E$15&$F$2:$F$15,0)),ROW($D$2:$D$15)-ROW($D$2)+1),ROW($D$2:$D$15)-ROW($D$2)+1),ROWS(A$4:A4))),"")
Ctrl+Shift+Enter > Copy ไป B4 > Copy ลงด้านล่าง
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#4
Post
by siamsrising » Tue Oct 15, 2019 9:43 am
สามารถทำได้แล้วครับแต่ตอนนี้ผมยากเพิ่มโดยให้ดูจากวันที่ด้วยครับ
เช่น
วันที่ 9/10/2019 มี SKU,สี อะไรบ้างโดยดึงข้อมูลเฉพาะวันที่ 9/10/2019 เท่านั้นครับ เราต้องแก้ตรงไหนครับหรือต้องเพิ่มตรงไหนครับ
แล้วเราสามารถเขียนสูตรให้ข้อมูลเรียงตามชื่อเลยได้ไหมครับ
You do not have the required permissions to view the files attached to this post.
puriwutpokin
Guru
Posts: 3792 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#5
Post
by puriwutpokin » Tue Oct 15, 2019 12:29 pm
ปรับที่ A4=IFERROR(INDEX(F$2:F$15,SMALL(IF($D$2:$D$154=$B$2,IF($E$2:$E$154=$B$1,ROW($E$2:$E$15)-ROW($E$2)+1)),ROWS(A$4:A4))),"") Ctrl+Shift+Enter > Copy ไป B4 > Copy ลงด้านล่างครับ
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#6
Post
by siamsrising » Tue Oct 15, 2019 3:44 pm
ผมลองทำแล้วครับแต่ทำยังไงข้อมูลที่ซ้ำกันถึงจะหายไปครับ เช่น sku กับ สี ตรงกัน ให้โชว์แค่ 1 ครับ
puriwutpokin
Guru
Posts: 3792 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#7
Post
by puriwutpokin » Tue Oct 15, 2019 5:16 pm
ลองทำตัวอย่างที่ต้องการมาดูอีกทีครับ เพราะตามที่อาจารย์คนควน ให้ไปก็แก้ได้ แต่คำถามก่อนหน้านี้แจ้งไว้อีกแบบ ก็ทำสูตรตามคำถามที่เปลี่ยนไปครับ ทำตัวอย่างและคำตอบมาอีกทีครับ
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#8
Post
by siamsrising » Wed Oct 16, 2019 8:26 am
สิ่งที่ต้องการครับคือผมยากให้ข้อมูลขึ้นมาโชว์ใน cloum A4 : cloum B10 ครับโดยให้อิงจากข้อมูลวันที่ใน cloum A2 และข้อมูลใน cloum B2 ครับ โดยถ้า sku ใน cloum A ขึ้นมาโชว์แล้ว ช่อง B ก็จะขึ้นตามโดยสีนั้น จะต้องอิงจากช่อง A4 ด้วยครับและให้ข้อมูลขึ้นมาโชว์โดยเรียงกันครับ ถ้าข้อมูลมูลซ้ำกันให้โชว์แค่ 1 ครับ
เช่น
ข้อมูล D1:G15
วันที่ ข้อมูล sku สี
9/10/2019 123 KK WH
9/10/2019 123 KK WH
9/10/2019 123 KK BL
9/10/2019 123 KK BB
9/10/2019 123 GU BL
10/10/2019 123 KK WH
เมื่อเรากรอกข้อมูล ใน ช่อง A1 เป็น 123 และ กรอกข้อมูลในช่องวันที่ เป็น 9/10/2019 จะโชว์ข้อมูลในช่อง A4 : B10 โดยเรียงตามชื่อครับ
GU BL
KK WH
KK BL
KK BB
You do not have the required permissions to view the files attached to this post.
puriwutpokin
Guru
Posts: 3792 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#9
Post
by puriwutpokin » Wed Oct 16, 2019 2:10 pm
ปรับเป็น ที่ A4=IFERROR(INDEX(F$2:F$15,SMALL(IF($D$2:$D$15=$B$2,IF($E$2:$E$15=$B$1,ROW($E$2:$E$15)-ROW($E$2)+1)),ROWS(A$4:A4))),"") Ctrl+Shift+Enter > Copy ไป B4 > Copy ลงด้านล่างครับ
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#10
Post
by siamsrising » Wed Oct 16, 2019 4:00 pm
ค่าซ้ำกันยังไม่หายไปครับแล้วข้อมูลยังไม่เรียงต่อกันครับ รบกวนด้วยครับ
puriwutpokin
Guru
Posts: 3792 Joined: Fri Jan 04, 2013 9:49 pm
Location: Bangkok
Excel Ver: MS.365
#11
Post
by puriwutpokin » Wed Oct 16, 2019 5:59 pm
ต้องแก้ไขตัวทำตัวอย่างให้ตรงคำถามด้วยครับ ไม่เช่นนั้นก็จะไม่เข้าใจความต้องการ และอะไรที่ไม่ให้ซ้ำระบุด้วยครับ
Bo_ry
Gold
Posts: 1245 Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:
#12
Post
by Bo_ry » Wed Oct 16, 2019 6:05 pm
A4:B4
=IFERROR(INDEX(F:F,MOD(AGGREGATE(15,6,COUNTIF($F$2:$F$15,"<="&$F$2:$F$15)*10^8+COUNTIF($G$2:$G$15,"<="&$G$2:$G$15)*10^4+ROW($E$2:$E$15)/($E$2:$E$15=$B$1)/($D$2:$D$15=$B$2)/ISERROR(MATCH($F$2:$F$15&$G$2:$G$15,$A$3:$A3&$B$3:$B3,)),1),10^4)),"")
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#13
Post
by siamsrising » Thu Oct 17, 2019 9:17 am
ขอโทษครับผมได้ลองนำโค๊ดมาปรับใช้แต่ไม่ขึ้นครับรบกวนช่วยดูให้หน่อยครับผมต้องการดึงข้อมูลในหน้า Sheet1 มาโชว์ครับ
You do not have the required permissions to view the files attached to this post.
Bo_ry
Gold
Posts: 1245 Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:
#14
Post
by Bo_ry » Thu Oct 17, 2019 1:29 pm
A11:B11
=IFERROR(INDEX(Sheet1!D:D,MOD(AGGREGATE(15,6,COUNTIF(Sheet1!$D$2:$D$999,"<="&Sheet1!$D$2:$D$999)*10^8+COUNTIF(Sheet1!$E$2:$E$999,"<="&Sheet1!$E$2:$E$999)*10^4+ROW(Sheet1!$E$2:$E$999)/(Sheet1!$C$2:$C$999=$S$2)/(Sheet1!$A$2:$A$999=$A$1)/ISERROR(MATCH(Sheet1!$D$2:$D$999&Sheet1!$E$2:$E$999,$A$10:$A10&$B$10:$B10,)),1),10^4)),"")
ใช้ได้ 999 Row
You do not have the required permissions to view the files attached to this post.
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#15
Post
by siamsrising » Sat Oct 19, 2019 11:50 am
ได้แล้วขอบคุณมากครับ ขอสอบถามเพิ่มอีกนิดครับ ถ้าผมต้องการดูเป็นผลรวมโดยไม่ต้องอิงจากวันที่ แต่เป็นวันที่ทั้งหมด ได้ไหมครับ
=IFERROR(INDEX(Sheet1!D:D,MOD(AGGREGATE(15,6,COUNTIF(Sheet1!$D$2:$D$999,"<="&Sheet1!$D$2:$D$999)*10^8+COUNTIF(Sheet1!$E$2:$E$999,"<="&Sheet1!$E$2:$E$999)*10^4+ROW(Sheet1!$E$2:$E$999)/(Sheet1!$C$2:$C$999=$S$2)/(Sheet1!$A$2:$A$999=$A$1)/ISERROR(MATCH(Sheet1!$D$2:$D$999&Sheet1!$E$2:$E$999,$A$10:$A10&$B$10:$B10,)),1),10^4)),"")
Bo_ry
Gold
Posts: 1245 Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:
#16
Post
by Bo_ry » Sat Oct 19, 2019 4:36 pm
=IFERROR(INDEX(Sheet1!D:D,MOD(AGGREGATE(15,6,COUNTIF(Sheet1!$D$2:$D$999,"<="&Sheet1!$D$2:$D$999)*10^8+COUNTIF(Sheet1!$E$2:$E$999,"<="&Sheet1!$E$2:$E$999)*10^4+ROW(Sheet1!$E$2:$E$999)/(Sheet1!$C$2:$C$999=$S$2)/ISERROR(MATCH(Sheet1!$D$2:$D$999&Sheet1!$E$2:$E$999,$A$10:$A10&$B$10:$B10,)),1),10^4)),"")
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#17
Post
by siamsrising » Mon Oct 21, 2019 8:30 am
ถ้าเรายากเพิ่มช่วงข้อมูลสามารถแก้ 999 เพิ่มได้เลยใช่ไหมครับ
logic
Gold
Posts: 1510 Joined: Thu Mar 18, 2010 1:57 pm
Excel Ver: 365
#18
Post
by logic » Mon Oct 21, 2019 9:12 am
ลองเปลี่ยนดูเลยครับ
กด ctrl+h จะได้หน้าต่างแทนที่ ~~> คีย์ 999 ที่ช่องบน ~~> คีย์ค่าบรรทัดใหม่ที่ช่องล่าง ~~> replace all
siamsrising
Member
Posts: 56 Joined: Tue Oct 24, 2017 9:00 am
#19
Post
by siamsrising » Mon Oct 21, 2019 9:28 am
ผมลองเปลี่ยนเป็น 5000 ดูครับแต่ เวลานำข้อมูลไปใส่ถึง row 5000 ข้อมูลกับไม่รวมครับตามสูตรครับ
Bo_ry
Gold
Posts: 1245 Joined: Sun Aug 12, 2018 12:11 am
Excel Ver: MS 365
Contact:
#20
Post
by Bo_ry » Mon Oct 21, 2019 9:39 am
=IFERROR(INDEX(Sheet1!D:D,MOD(AGGREGATE(15,6,COUNTIF(Sheet1!$D$2:$D$9999,"<="&Sheet1!$D$2:$D$9999)*10^10+COUNTIF(Sheet1!$E$2:$E$9999,"<="&Sheet1!$E$2:$E$9999)*10^5+ROW(Sheet1!$E$2:$E$9999)/(Sheet1!$C$2:$C$9999=$S$2)/ISERROR(MATCH(Sheet1!$D$2:$D$9999&Sheet1!$E$2:$E$9999,$A$10:$A10&$B$10:$B10,)),1),10^5)),"")