Page 1 of 1

การแปลงข้อมูลเป็นรหัสที่ต้องการ

Posted: Mon Nov 05, 2012 4:07 pm
by Don_K
เนื่องจากคนทำบัญชีเก่าบันทึกข้อมูลไว้ในเซลเดียวกัน
และไม่ได้ทำระเบียนข้อมูลไว้ ทำให้วิเคราะห์ข้อมูลยากมาก
ดังนั้น ใคร่รบกวนผู้รู้ช่วยแนะนำด้วยว่าควรใช้สูตรอย่างใดในการแปลงเป็นรหัสที่ต้องการ
เช่น ข้อมูลเป็น ค่าไฟ + ค่าเช่าห้อง + ค่าแฟ้ม = +85 ซึ่งอยู่ในเซลเดียวกัน
ต้องการแปลงเป็นรหัส เช่น dfh 85 ให้อยู่ในอีกเซล (ตามตัวอย่างไฟล์แนบ)
ข้อมูลมีเป็นหมื่นบรรทัดครับ นั่งปวดหัวอยู่นี่ ไม่รู้จะทำอย่างใดให้กระชับที่สุด
ขอบคุณครับ

Re: การแปลงข้อมูลเป็นรหัสที่ต้องการ

Posted: Mon Nov 05, 2012 6:20 pm
by snasui
:D ลองดูตัวอย่างการใช้ Substitute ตามไฟล์แนบครับ

สำหรับ Excel 2007+ สามารถเขียนซ้อนกันได้ถึง 64 ชั้น แต่ 2003 ลงไปซ้อนได้ 7 ชั้นเท่านั้น เลยต้องแยกออกมาหลายทอด กรณีไม่ต้องการเป็นสูตรคงต้องพึ่ง VBA ในการทำงานนี้ครับ

Re: การแปลงข้อมูลเป็นรหัสที่ต้องการ

Posted: Mon Nov 05, 2012 7:05 pm
by bank9597
:D
แถมครับ
ที่ G5 คีย์ =TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(E5,"+","",1),"+","",1),"+","",1),"=","",1),"+","",1),"+","",1),"+","",1)) คัดลอกลงมา

คัดลอก G5:G18 แล้ววางทับที่เดิม โดยการวางค่า (Home > Paste > Paste Special > Value)

คลุมทึบ G5:G18 แล้วไปที่ แท็บ Data เลือก Text To Column แล้วติ๊กที่ Delimied กด next แล้วติ๊ก Space กด Finish

จะได้ข้อมูลที่แยกเป็นคอลัมน์ ให้คัดลอกข้อมูลที่เป็นตัวเลขไปไว้ในคอลัมน์ท้ายสุด (คอลัมน์ M)

ที่ F5 คีย์ =IF(ISNA(INDEX($B$5:$B$18,MATCH(G5,$C$5:$C$18,0))),"",INDEX($B$5:$B$18,MATCH(G5,$C$5:$C$18,0)))&IF(ISNA(INDEX($B$5:$B$18,MATCH(H5,$C$5:$C$18,0))),"",INDEX($B$5:$B$18,MATCH(H5,$C$5:$C$18,0)))&IF(ISNA(INDEX($B$5:$B$18,MATCH(I5,$C$5:$C$18,0))),"",INDEX($B$5:$B$18,MATCH(I5,$C$5:$C$18,0)))&IF(ISNA(INDEX($B$5:$B$18,MATCH(J5,$C$5:$C$18,0))),"",INDEX($B$5:$B$18,MATCH(J5,$C$5:$C$18,0)))&IF(ISNA(INDEX($B$5:$B$18,MATCH(K5,$C$5:$C$18,0))),"",INDEX($B$5:$B$18,MATCH(K5,$C$5:$C$18,0)))&IF(ISNA(INDEX($B$5:$B$18,MATCH(L5,$C$5:$C$18,0))),"",INDEX($B$5:$B$18,MATCH(L5,$C$5:$C$18,0)))&" "&M5
คัดลอกลงมา

Re: การแปลงข้อมูลเป็นรหัสที่ต้องการ

Posted: Tue Nov 06, 2012 11:36 am
by Don_K
ขอบพระคุณทั้งสองท่านเป็นอย่างสูง
เนื่องจาก office ใช้ 2003 ดังนั้นจึงมีข้อจำกัดหลายๆ ประการ
ปกติที่ใช้อยู่เป็นการ copy ข้อมูลทั้งหมดมาแทรกไว้ใน column ถัดไป
แล้วทำการคลุมข้อมูลใหม่ที่ copy มาทั้งหมด
จากนั้นก็ Ctrl+H โดยการแทนค่าในคำที่ต้องการ
ก็จะได้ตามที่ต้องการครับ
แต่เนื่องจากข้อมูลมีจำนวนมาก อีกทั้ง column ก็เหลืออยู่มีจำนวนน้อย
ทำให้แทบจะไม่เหลือในส่วนที่จะเป็นสูตรวิเคราะห์ต่อไป
จึงจำเป็นต้องให้รวมอยู่ใน column เดียว
แต่จะนำไปใช้โดยการแยกแต่ละรหัสเพื่อการวิเคราะห์ต่อไป

ขอขอบพระคุณอีกครั้งสำหรับทุกความช่วยเหลือที่เป็นประโยชน์