Page 1 of 1
ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Sat Jun 24, 2017 12:44 pm
by zraptor
ขอสอบถามหน่อยครับ
อยากได้วิธีจัดการกับตัวเลขซ้ำในหนึ่งเซลล์ครับ
เช่น 1234456 อยากให้ผลลัพท์ ออกมาเป็น 123456
หรือ 569094 อยากให้ผลลัพท์ ออกมาเป็น 56904
พอจะมีวิธีการไหนบ้างครับ
ขอบคุณมากครับ
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Sat Jun 24, 2017 1:44 pm
by snasui

ตัวอย่างสูตรครับ
สมมุติ A1 คือค่าที่ต้องการตัดค่าซ้ำ ที่เซลล์ใด ๆ คีย์
=SUM(MID(A1,SMALL(IF(FREQUENCY(MATCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),0),ROW(INDIRECT("1:"&LEN(A1)))),ROW(INDIRECT("1:"&LEN(A1)))),ROW(INDIRECT("1:"&COUNT(IF(FREQUENCY(MATCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),0),ROW(INDIRECT("1:"&LEN(A1)))),ROW(INDIRECT("1:"&LEN(A1)))))))),1)*10^((COUNT(IF(FREQUENCY(MATCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),0),ROW(INDIRECT("1:"&LEN(A1)))),ROW(INDIRECT("1:"&LEN(A1)))))+1)-ROW(INDIRECT("1:"&COUNT(IF(FREQUENCY(MATCH(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),0),ROW(INDIRECT("1:"&LEN(A1)))),ROW(INDIRECT("1:"&LEN(A1)))))))))/10
Ctrl+Shift+Enter อ่านวิธีกดแป้นด้านล่างอย่างละเอียดครับ
!
| Note: Ctrl+Shift+Enter เป็นการสร้างสูตร Array โดยสามารถเลือกดำเนินการตามข้อ 1 หรือ 2 ด้านล่าง
- กรณีคีย์สูตรเอง เมื่อคีย์สูตรแล้ว แทนที่จะกด Enter ให้กดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วกด Enter เพื่อสร้างเป็นสูตร Array
- กรณี Copy สูตรไปวางให้กดแป้น F2 เพื่อทำการ Edit Cell นั้นก่อน จากนั้นกดแป้น Ctrl และ Shift พร้อมกันค้างไว้แล้วตามด้วย Enter เพื่อสร้างเป็นสูตร Array
- หากกดแป้นถูกต้องสูตรนั้นจะมีเครื่องหมายปีกกาครอบ เช่น {=YourFormulas(...)} ปีกกานี้ไม่สามารถคีย์เข้าไปเอง จะต้องมาด้วยการกดแป้น Ctrl+Shift+Enter เท่านั้น ถ้ายังไม่เห็นปีกกาครอบสูตรแสดงว่ากดแป้นให้รับสูตรไม่ถูกต้อง
- การแก้ไขเปลี่ยนแปลงสูตร Array จะต้องกดแป้นให้รับสูตรด้วย Ctrl+Shift+Enter ทุกครั้ง
|
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Sat Jun 24, 2017 1:54 pm
by zraptor
ขอบคุณมากเลยครับ เดี๋ยวจะลองไปใช้ดูครับ
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Mon Jun 26, 2017 2:02 pm
by zraptor
เรียนสอบถามเพิ่มครับ
ถ้าหากว่าใน column A มี ข้อมูลดังนี้ครับ
123
124
125
124
345
356
345
อยากตัดตัวเลขที่ซ้ำออกแล้วกรุ๊ป ให้เหลือแค่ 1 ตัว ดังนี้ครับ
123
124
125
345
356
ไม่ทราบว่าจะเขียนสูตรยังไงครับ
ขอบคุณครับ
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Mon Jun 26, 2017 2:36 pm
by puriwutpokin
ถ้าหากไม่ได้มีการทำบ่อยๆ ใช้ฟังก์ชั่นตามรูปนี้ได้เลยครับ
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Mon Jun 26, 2017 4:19 pm
by zraptor
ต้องขอบคุณมากเลยครับที่แนะนำ
แต่ว่า input ที่ผมใส่เข้าไป มันมีการป้อนอยู่ตลอดน่ะครับ
เช่น คีย์ข้อมูลที่่คอลัมน์ A แล้วให้ผลลัพท์ แสดงผลออกมาที่ B ทันที โดยที่ไม่ต้องใช้ฟังก์ชั่นสำเร็จรูปทุกครั้ง
เลยพยายามมองหาสูตรที่จะทำให้ออกมาได้น่ะครับ
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Mon Jun 26, 2017 4:28 pm
by puriwutpokin
ถ้าเป็นสูตรก็ที่ B1=IFERROR(INDEX(A$1:A$10&"",SMALL(IF(FREQUENCY(MATCH(A$1:A$10&"",A$1:A$10&"",0),ROW(A$1:A$10)-ROW($A$1)+1),ROW(A$1:A$10)-ROW($A$1)+1),ROWS(B$1:B1)))+0,"") กด Shift+Ctrl+Enter คัดลอกลงครับ
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Tue Jun 27, 2017 12:27 pm
by linzhengli
ผมขอสูตรสำหรับ excel 2003 ทั้งสองกรณีข้างต้นบ้างครับ และขอบคุณมา ณ โอกาสนี้
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Tue Jun 27, 2017 8:08 pm
by snasui

สูตรที่ผมตอบใน
#2 ไม่สามารถใช้กับ Excel 2003 ได้ เนื่องจากซ้อนกันเกิน 7 ชั้นหากจำเป็นต้องใช้ให้เขียนมาด้วย VBA ติดตรงไหนแล้วค่อยถามกันต่อครับ
ส่วนสูตรที่คุณ puriwutpokin กรุณาช่วยตอบมานั้น สามารถปรับเป็นด้านล่างครับ
=IF(ROWS(B$1:B1)<=SUM(($A$1:$A$100<>"")/COUNTIF(A$1:A$100,A$1:A$100&"")),INDEX(A$1:A$100,SMALL(IF(FREQUENCY(IF($A$1:$A$100<>"",MATCH(A$1:A$100,A$1:A$100,0)),ROW(A$1:A$100)-ROW($A$1)+1),ROW(A$1:A$100)-ROW($A$1)+1),ROWS(B$1:B1))),"")
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Wed Jun 28, 2017 8:52 am
by linzhengli
ขอบคุณมา ณ โอกาสนี้
ขอแสดงความนับถือ
林正利先生
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Thu Jun 29, 2017 4:28 pm
by zraptor
ขอบคุณมากที่ช่วยตอบครับ สามารถนำไปใช้ได้ผลดีเลยครับ
อยากจะขอเรียนถามเพิ่มเติมอีกนิดครับ
A B
1234 50
6789 55
3456 21
2234 90
8900 23
6789 33
2234 10
ต้องการผลลัพท์ของ column B ให้ เป็นรวมของเลขที่ซ้ำกัน(column A) ดังนี้ครับ โดยเรียงลำดับจาน้อยไปมาก
A B
1234 50
2234 100
3456 21
6789 88
8900 23
จะต้องแก้สูตรที่ให้มายังไงครับ
ขอบคุณมากครับ
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Thu Jun 29, 2017 4:46 pm
by snasui

ใช้ Sumif ครับ
หากไม่เข้าใจหรือทำไม่ได้ ให้แนบไฟล์ตัวอย่างมาด้วยจะได้ตอบแบบอ้างอิงเซลล์ได้ครับ
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Thu Jun 29, 2017 5:13 pm
by zraptor
ตามไฟล์แนบครับอาจารย์
ขอบคุณครับ
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Thu Jun 29, 2017 5:24 pm
by puriwutpokin
ที่e2=SUMIF(A$2:A$8,D2,B$2:B$8) copy ลงล่างครับ
Re: ขอวิธีการตัดตัวเลขซ้ำครับ
Posted: Thu Jun 29, 2017 5:42 pm
by zraptor
ขอบคุณมากครับ คุณ puriwutpokin
ส่วนเรื่องการให้มันเรียงค่าผลลัพท์จากน้อยไปมาก คงต้องใช้การ sort เองอีกที