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] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
yumui1711
Member
Posts: 5 Joined: Tue Jan 21, 2014 3:16 pm
#1
Post
by yumui1711 » Tue Jan 21, 2014 6:40 pm
รบกวนขอสูตรสำหรับดึงข้อมูลที่ซ้ำกันหลายๆรายการด้วยค่ะ คือ
ต้องการค้นหาข้อมูลเฉพาะชื่อที่ซ้ำกันให้ออกมาทั้งหมดหลายรายการโดยมีฐานข้อมูลอยู่อีกSheetหนึ่ง แต่จะดึงให้ออกมาโชว์อีกSheet โดยออกเฉพาะรายการที่เลือก ถ้ารายการที่เลือกมีซ้ำกันมากกว่าหนึ่งรายการก็ให้ออกมาโชว์ทั้งหมด ประมาณนี้ค่ะ
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
#2
Post
by DhitiBank » Wed Jan 22, 2014 1:08 am
ทดลองตามนี้ครับ
ที่เซลล์ A4 ชีท "ฟอร์มการค้นหา"
=IF($A$2="","",IFERROR(INDEX(ข้อมูลลูกค้า!B$2:B$13,SMALL(IF(ข้อมูลลูกค้า!$A$2:$A$13=$A$2,ROW(ข้อมูลลูกค้า!$A$2:$A$13)-ROW(ข้อมูลลูกค้า!$A$2)+1,""),ROWS($A$4:$A4))),""))
แล้วกด Ctrl+Shift+Enter (สามปุ่มพร้อมกัน)
ส่วนสูตรในเซลล์ B4 - G4 ใช้สูตรทำนองเดียวกัน เพียงแต่ปรับตรงส่วน
INDEX(ข้อมูลลูกค้า!B $2:B $13
ให้เป็นช่วงข้อมูลที่ต้องการนำมาแสดง โดยอิงตามชีท "ข้อมูลลูกค้า" ครับ
จากนั้นก็คัดลอกสูตรลงมาด้านล่าง
ลองดูตามไฟล์แนบครับ
You do not have the required permissions to view the files attached to this post.
yumui1711
Member
Posts: 5 Joined: Tue Jan 21, 2014 3:16 pm
#3
Post
by yumui1711 » Wed Jan 22, 2014 8:33 am
ขอบคุณมากค่ะ
DhitiBank wrote: ทดลองตามนี้ครับ
ที่เซลล์ A4 ชีท "ฟอร์มการค้นหา"
=IF($A$2="","",IFERROR(INDEX(ข้อมูลลูกค้า!B$2:B$13,SMALL(IF(ข้อมูลลูกค้า!$A$2:$A$13=$A$2,ROW(ข้อมูลลูกค้า!$A$2:$A$13)-ROW(ข้อมูลลูกค้า!$A$2)+1,""),ROWS($A$4:$A4))),""))
แล้วกด Ctrl+Shift+Enter (สามปุ่มพร้อมกัน)
ส่วนสูตรในเซลล์ B4 - G4 ใช้สูตรทำนองเดียวกัน เพียงแต่ปรับตรงส่วน
INDEX(ข้อมูลลูกค้า!B $2:B $13
ให้เป็นช่วงข้อมูลที่ต้องการนำมาแสดง โดยอิงตามชีท "ข้อมูลลูกค้า" ครับ
จากนั้นก็คัดลอกสูตรลงมาด้านล่าง
ลองดูตามไฟล์แนบครับ
yumui1711
Member
Posts: 5 Joined: Tue Jan 21, 2014 3:16 pm
#4
Post
by yumui1711 » Wed Jan 22, 2014 3:32 pm
รบกวนขอสูตรเพิ่มค่ะ ถ้าในกรณีที่เราต้องการที่จะค้นหาได้จากทุกข้อมูล เช่นจะค้นหาข้อมูลโดยใช้ คณะวิชา ชื่อ-สกุล ตำแหน่ง ยังคงดึงข้อมูลที่ซ้ำกันออกมาทั้งหมดค่ะ รบกวนหน่อยนะค่ะ
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#5
Post
by DhitiBank » Wed Jan 22, 2014 4:31 pm
หากต้องการค้นหาค่าใดก็ได้ที่มีใน database คงต้องขอคำแนะนำจากอาจารย์คนควนแล้วครับ
เพราะหากต้องการค้นหาโดยใช้ฟอร์มเดิม (หมายถึงช่องใส่คำค้นเดิมที่คุณออกแบบ) คงต้องใช้สูตรที่มีความยืดหยุ่นสูงมากๆ
ซึ่งผมก็ไม่รู้จะทำอย่างไรเหมือนกัน และหาก database ของคุณมีข้อมูลจำนวนมาก การทำงานอาจช้าลงได้นะครับ
รออาจารย์มาตอบครับ ผมก็จะรอเก็บความรู้เหมือนเดิม ^^!
snasui
Site Admin
Posts: 31257 Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 2019
Contact:
#6
Post
by snasui » Wed Jan 22, 2014 4:58 pm
ลองตามนี่้ครับ
จากไฟล์ที่คุณ DhitiBank แนบไป
Clear Validation ในเซลล์ A2 เนื่องจากต้องการใช้เซลล์นี้คีย์ค่าที่ต้องการค้นหา
เซลล์ A4 คีย์
=IFERROR(INDEX(ข้อมูลลูกค้า!B$2:B$13 ,SMALL(IF(MMULT(--(COLUMN(ข้อมูลลูกค้า!$A$1:$H$1)>0),--TRANSPOSE(ISNUMBER(SEARCH($A$2,ข้อมูลลูกค้า!$A$2:$H$13)))),TRANSPOSE(ROW(ข้อมูลลูกค้า!$A$2:$A$13)-ROW(ข้อมูลลูกค้า!$A$2)+1)),ROWS($A$4:$A4))),"")
Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง สำหรับคอลัมน์ใดข้อมูลไม่ตรงกับหัวคอลัมน์ให้ปรับช่วงเซลล์ที่ระบายสีไว้ในสูตร
! Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น { =YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
yumui1711
Member
Posts: 5 Joined: Tue Jan 21, 2014 3:16 pm
#7
Post
by yumui1711 » Wed Jan 22, 2014 5:15 pm
ขอบคุณมากค่ะสำหรับคำแนะนำนะค่ะ
DhitiBank wrote: หากต้องการค้นหาค่าใดก็ได้ที่มีใน database คงต้องขอคำแนะนำจากอาจารย์คนควนแล้วครับ
เพราะหากต้องการค้นหาโดยใช้ฟอร์มเดิม (หมายถึงช่องใส่คำค้นเดิมที่คุณออกแบบ) คงต้องใช้สูตรที่มีความยืดหยุ่นสูงมากๆ
ซึ่งผมก็ไม่รู้จะทำอย่างไรเหมือนกัน และหาก database ของคุณมีข้อมูลจำนวนมาก การทำงานอาจช้าลงได้นะครับ
รออาจารย์มาตอบครับ ผมก็จะรอเก็บความรู้เหมือนเดิม ^^!
yumui1711
Member
Posts: 5 Joined: Tue Jan 21, 2014 3:16 pm
#8
Post
by yumui1711 » Wed Jan 22, 2014 5:17 pm
ขอบคุณอาจารย์นะค่ะที่มาช่วยตอบ เดี๋ยวจะลองใส่สูตรที่อาจารย์ให้มาค่ะ
snasui wrote: ลองตามนี่้ครับ
จากไฟล์ที่คุณ DhitiBank แนบไป
Clear Validation ในเซลล์ A2 เนื่องจากต้องการใช้เซลล์นี้คีย์ค่าที่ต้องการค้นหา
เซลล์ A4 คีย์
=IFERROR(INDEX(ข้อมูลลูกค้า!B$2:B$13 ,SMALL(IF(MMULT(--(COLUMN(ข้อมูลลูกค้า!$A$1:$H$1)>0),--TRANSPOSE(ISNUMBER(SEARCH($A$2,ข้อมูลลูกค้า!$A$2:$H$13)))),TRANSPOSE(ROW(ข้อมูลลูกค้า!$A$2:$A$13)-ROW(ข้อมูลลูกค้า!$A$2)+1)),ROWS($A$4:$A4))),"")
Ctrl+Shift+Enter > Copy ไปด้านขวาและลงด้านล่าง สำหรับคอลัมน์ใดข้อมูลไม่ตรงกับหัวคอลัมน์ให้ปรับช่วงเซลล์ที่ระบายสีไว้ในสูตร
! Note: Ctrl+Shift+Enter หมายถึงเมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl+Shift ค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น { =YourFormulas(...)} ปีกกานี้คีย์เข้าไปเองไม่ได้ ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
DhitiBank
Gold
Posts: 1676 Joined: Mon Oct 15, 2012 12:07 am
#9
Post
by DhitiBank » Wed Jan 22, 2014 5:17 pm
มาแล้ว MMULT เมทริกซ์สินะครับ งงมากครับตั้งแต่เข้าไปดูใน Tip and Trick หัวข้อค้นหาคำบางคำในช่วงข้อมูล
ก็เห็นมีฟังก์ชันนี้ผสมอยู่ด้วย จะพยายามทำความเข้าใจครับ T T!