Page 1 of 1

การใส่เครื่องหมายพิเศษ

Posted: Sat Oct 22, 2016 10:07 am
by sutham
ในคอลลัมน์ A เป็นข้อมูลที่มีอยู่ ส่วนในคอลัมน์ B เป็นข้อมูลที่ต้องการแสดงผล
ลักษณะที่ต้องการ คือ ถ้าขอมูลในเซลล์ของคอลัมน์ A เป็นเลขที่เรียงติดกันตามลำดับ ให้คั่น ด้วยขีด(-) ถ้ามีการกระโดดของเลขให้คั่นด้วยคอมม่า (,)

รบกวนขอคำแนะนำว่าผมจะต้องเขียนสูตรอย่างไร :)

Re: การใส่เครื่องหมายพิเศษ

Posted: Sat Oct 22, 2016 4:03 pm
by snasui
:D งานนี้คงต้องพึ่ง VBA ลองเขียนมาเองก่อน ติดตรงไหนค่อยถามกันต่อครับ

Re: การใส่เครื่องหมายพิเศษ

Posted: Sat Oct 22, 2016 4:54 pm
by sutham
ถ้าเป็นอย่างนั้นผมรบกวนขอลำดับแนวทางในการเขียน vba เพื่อแก้ปัญหาดังกล่าวครับ

Re: การใส่เครื่องหมายพิเศษ

Posted: Sat Oct 22, 2016 6:11 pm
by snasui
:D ลำดับการทำงานหลัก ๆ เพียงเพื่อเป็นตัวอย่าง การเขียนด้วย VBA ทำได้หลายแบบขึ้นกับความสามารถครับ
  1. สร้าง Array ขึ้นมา 2 ชุด ชุดแรกเป็น Array สำหรับการเก็บค่าทีละอักขระของเซลล์
  2. ทำการ Loop ในชุดแรกไปใส่ Array ในชุดที่ 2 โดยหาว่า Element ถัดไปมากกว่า Element ปัจจุบัน 1 ลำดับหรือไม่ หากใช่ให้ใส่ - หากไม่ใช่ให้ใส่ , ใน Array ชุดที่ 2
  3. นำ Element ใน Array ชุดที่สองมาเชื่อมกัน
  4. เปลี่ยน - ที่ติดกันหลายตัวเป็น - ตัวเดียว

Re: การใส่เครื่องหมายพิเศษ

Posted: Mon Oct 24, 2016 12:49 pm
by sutham
ขอบคุณครับ จะได้ลองทำดูครับ

Re: การใส่เครื่องหมายพิเศษ

Posted: Mon Oct 24, 2016 1:01 pm
by DhitiBank
หรืออีกวิธีหนึ่ง ลองใช้คอลัมน์ช่วยครับ อาจใช้เยอะหน่อย และข้อจำกัดคือจัดกลุ่มเฉพาะตัวเลขหลักเดียว และหากมีการซ้ำหรือไม่เรียงจากน้อยไปมากก็จะแสดงผลไม่ถูกต้องครับ

C2
=IF(COLUMNS($C2:C2)>LEN($A2),"",IF(COLUMNS($C2:C2)=1,LEFT($A2),
IF(COLUMNS($C2:C2)=LEN($A2),IF(RIGHT($A2)-MID($A2,LEN($A2)-1,1)>1,",","-")&RIGHT($A2),
IF(MID($A2,COLUMNS($C2:C2),1)-MID($A2,COLUMNS($C2:C2)-1,1)>1,","&MID($A2,COLUMNS($C2:C2),1),
IF(MID($A2,COLUMNS($C2:C2)+1,1)-MID($A2,COLUMNS($C2:C2),1)>1,"-"&MID($A2,COLUMNS($C2:C2),1),"")))))

Enter >> คัดลอกไปทางขวาเผื่อไว้เยอะๆ หน่อยครับ (ตามรูปผมคัดลอกไปถึงคอลัมน์ J) >> คัดลอกลงล่าง

ฺB2
=C2&D2&E2&F2&G2&H2&I2&J2
Enter >> คัดลอกลงล่าง (เชื่อมเซลล์ให้ครอบคลุมช่วงเซลล์ที่มีสูตรแรกอยู่ครับ)
2016-10-24 12_52_41-Microsoft Excel - ใส่เครื่องหมายพิเศษ.xlsx.png