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]
เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
dkfj
Member
Posts: 15 Joined: Mon May 07, 2018 4:06 pm
#1
Post
by dkfj » Sun May 02, 2021 3:09 am
หากต้องการเลือกค่าที่ซ้ำกันแล้วผลลัพธ์ต้องเรียงลำดับจากน้อยไปหามาก ให้อยู่ในสูตรเดียวสามารถปรับสูตรที่ใช้อยู่ได้ยังไงบ้างครับ
You do not have the required permissions to view the files attached to this post.
norkaz
Gold
Posts: 1758 Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365
#2
Post
by norkaz » Sun May 02, 2021 8:35 am
...
ตัวอย่าง
F3
=IFERROR(AGGREGATE(15,6,$A$3:$A$13/(MATCH($A$3:$A$13&$F$2,$A$3:$A$13&$B$3:$B$13,0)=ROW($1:$13)),ROW(1:1)),"")
Copy ลงไป
Norkaz
You do not have the required permissions to view the files attached to this post.
dkfj
Member
Posts: 15 Joined: Mon May 07, 2018 4:06 pm
#3
Post
by dkfj » Sun May 02, 2021 11:05 am
ใช้งานได้แล้วครับ ขอบคุณมากครับ
แต่อยากรบกวนสอบถามครับว่าทำไมต้องใช้ & กับสูตร match ทำไมถึงใช้ = หรือ * ไม่ได้เลยจากที่ลอง
norkaz
Gold
Posts: 1758 Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365
#4
Post
by norkaz » Sun May 02, 2021 11:24 am
...
ไม่ค่อยเข้าใจที่ถามมาครับ
ขอตอบไปกลางๆก่อน
ที่เลือก ใช้ & ไปเชื่อมเพื่อให้ ตัดทางให้แคบลง โดยให้มองค่าจาก 2 คอลัมน์ เป็นค่าเดียวก่อนครับ จากนั้นก็ใช้ หลักการ MATCH ตามปกติ
หากไม่ใช้ & ไปเชื่อมข้อความก่อน ก็ได้ แต่ก็ต้อง ไปวิธีอื่นๆ
เช่น
F3
=IFERROR(AGGREGATE(15,6,$A$3:$A$13/(MATCH($A$3:$A$13/($F$2=$B$3:$B$13),$A$3:$A$13/($F$2=$B$3:$B$13),0)=ROW($1:$13)),ROW(1:1)),"")
Norkaz
norkaz
Gold
Posts: 1758 Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365
#5
Post
by norkaz » Sun May 02, 2021 12:01 pm
...
ถ้าหมายถึงที่ท่านเจ้าของคำถาม ทำไว้ที่ E3 จากไฟล์ที่ทำมาครั้งแรก
E3
=INDEX($A$3:$A$13,MATCH(1,($B$3:$B$13=$E$2)*(COUNTIF($E$2:E2,$A$3:$A$13)=0),0))
Ctrl + Shift + Enter
แบบนี้จะหมายถึง การทำ Remove Duplicates ตัดค่าซ้ำทิ้งไป โดยยังคง
ให้ค่าตัวเลข " เรียง " ตามต้นฉบับ
ดังนั้น หากต้องการให้เรียง จากน้อยไปมาก ให้ไป Sort ข้อมูล ให้เรียง น้อยไปมากก่อน ก็จะได้ผลลัพธ์ ตามที่ต้องการ
** และ สูตรที่ท่านเจ้าของคำถามทำมานี้ หากต้องการเลี่ยง แบบ Array เต็มรูป สามารถใช้ INDEX ,0 ไปวางไว้หน้าชุดข้อมูล ก่อน MATCH
E3
=INDEX($A$3:$A$13,MATCH(1,INDEX(($B$3:$B$13=$E$2)*(COUNTIF($E$2:E2,$A$3:$A$13)=0),0),0))
Enter
Norkaz
dkfj
Member
Posts: 15 Joined: Mon May 07, 2018 4:06 pm
#6
Post
by dkfj » Sun May 02, 2021 12:55 pm
ขอบคุณทุกท่านมากๆ ครับ เข้าใจหลายๆ อย่างมากขึ้นเลยครับ