วันศุกร์ที่ 29 มิถุนายน พ.ศ. 2555

วิธีการแปลงเลขอารบิกเป็นเลขไทย ในโปรแกรม Microsoft Excel

10 ก.พ.53 เรื่องนี้ควรเขียนเมื่อหลายเดือนก่อนหน้านี้ เพราะ ผศ.ดร.จินดา งามสุทธิ ท่าน อธิการบดี รณรงค์ให้ใช้เลขไทยในบันทึกข้อความ แต่ความไม่ชินและความมักง่าย ทำให้ผมเลือกใช้วิธีแปลงเลขอารบิกด้วยการ replace ถึง 10 ครั้ง เพื่อเปลี่ยนตัวเลขทีละตัว แต่ถ้าให้อัตโนมัติก็จะเข้าไปกำหนดใน autocorrect สำหรับแต่ละตัวเลข แต่ใช้ได้กับเลขหลักเดียว ก็ช่วยได้เพียงระดับหนึ่ง (วันนี้ผมเคลียร์งานเขียนแผน km ของมหาวิทยาลัยล้อกับโครงการอบรมประกันฯของ อ.ศศิวิมล แรงสิงห์ เสร็จเร็วกว่าที่คาด) จึงคิดว่าถึงเวลาที่ไม่ควรผลัดวันประกันพรุ่งอีกต่อไป เมื่อศึกษาวิธีการแทนที่ตัวเลขด้วย macro ที่เขียนแบบใช้ใน word กับ excel เผยแพร่ใน thaiall.com/vb เพราะ macro ใช้ visual basic script ใน module สำหรับการประมวลผล
แหล่งเก็บ macro มี 2 แบบคือ ใน normal หรือ ใน document ถ้าเป็นแบบใน document เมื่อสร้างเอกสารก็จะติดเอกสารไป เปิดเอกสารใหม่จะไม่พบ macro เดิม แต่ถ้าเป็นแบบใน normal จะมี macro ติดอยู่ใน template ของ word ทำให้เปิด word แล้วเรียกใช้ macro ได้ทุกครั้ง สำหรับวิธีสร้างและใช้ macro นั้นเริ่มต้นด้วยการคัดลอกโค้ดไปใส่ใน module ของ macro แล้วสั่ง run ใน macro เมื่อต้องการเปลี่ยนตัวเลขทั้งหมดเป็นเลขไทย ซึ่งโค้ดได้สั่งแทนที่ทั้ง 10 ตัวอักษรเป็นเลขไทยอัตโนมัติ การนำไปใช้สำหรับ word กับ excel ต่างกันเล็กน้อย ถ้านำไปใส่ไม่ได้ โปรดติดต่อช่างเทคนิคใกล้บ้าน เพราะส่งเข้า word ครั้งเดียว แต่ใช้งานได้ตลอดไป .. ต่อไปผมก็จะเริ่มใช้แล้ว เพราะ replace 10 ครั้ง ไม่ดีแน่
source code : macro of word
Sub arabictothai()
For i = 0 To 9
With Selection.Find
.Text = Chr(48 + i)
.Replacement.Text = Chr(240 + i)
.Wrap = wdFindContinue
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next
End Sub
source code : macro of excel
Sub arabictothai()
For i = 0 To 9
Cells.Replace What:=Chr(48 + i), Replacement:=Chr(240 + i)
Next
End Sub

การแปลงเลขใน excel  (ใช้คำสั่ง จัดรูปแบบเซลล์)
1. ถ้าเป็น excel ไม่ต้องใช้ function ให้กด Ctrl-A แล้วกำหนด format ของ cell ใน Number,  Custom เป็น [$-D07041E]0 ก็จะทำให้ข้อมูลที่เป็นตัวเลขทั้งหมดเป็นเลขไทย
2. ถ้าต้องการมี , กั้นหลักพันก็ใช้ [$-D07041E]#,###,##0 อะไรทำนองนี้ ok ไหมครับ  ตามรูปเลยครับผม

บังคับให้ข้อมูลที่พิมพ์เพิ่มลงไปไม่ซ้ำกับข้อมูลที่มีอยู่

บังคับให้ข้อมูลที่พิมพ์เพิ่มลงไปไม่ซ้ำกับข้อมูลที่มีอยู่


ความต้องการ: บังคับให้ข้อมูลที่พิมพ์เพิ่มลงไปไม่ซ้ำกับข้อมูลที่มีอยู่
ฟังก์ชั่นที่เกี่ยวข้อง: Data Validation และ COUNTIF
การเรียกใช้งาน:
Data > Data Validation > Data Validation > Settings > Validation criteria > Allow: > Custom
Data Validation - Custom
สำหรับฟังก์ชั่น COUNTIF ดูได้ที่ Formulas > More Functions > Statistical > COUNTIF
คำอธิบาย: สมมุติว่าเรามีตารางข้อมูลชุดหนึ่งอยู่บน Excel และเราไม่อยากให้ผู้ใช้งานเพิ่มข้อมูลที่ซ้ำลงไป (เนื่องจากมีข้อมูลนั้นอยู่แล้ว) เราสามารถประยุกต์ใช้ฟังก์ชั่น Data Validation และ COUNTIF มาช่วยได้ครับ ยกตัวอย่างให้เห็นภาพชัดเจนมากขึ้นนะครับ เรามี List รายชื่อของลูกค้าอยู่ เช่น Company A, Company B, Company C อย่างนี้ไปเรื่อย ๆ อยู่ในคอลัมน์ A และเมื่อไหร่ก็ตาม ถ้ามีการเพิ่มข้อมูลเช่น Company A ซึ่งเป็นข้อมูลที่มีอยู่แล้ว ให้ Excel มันแจ้งเตือนและบังคับว่าไม่ให้เพิ่มข้อมูล เนื่องจากข้อมูลดังกล่าวมีอยู่แล้ว เราสามารถทำได้ดังนี้ครับ
  1. เลือกคอลัมน์ A ที่มี List รายชื่อของบริษัทลูกค้าเราอยู่ (Highlight เลือกทั้งคอลัมน์)
  2. ไปที่ Data Validation
  3. ที่หน้าต่าง Tab “Settings” ใน List ของ Allow เลือกไปที่ Custom
  4. ที่ช่อง Formula ให้ใส่สูตร =COUNTIF($A:$A,A1)<2(*** Excel จะ Apply สูตรนี้ให้กับทุก ๆ เซลโดยอัตโนมัติ ถ้าเราไปดูที่เซล A2 คลิกเลือก Data Validation ดูก็จะเห็นเป็น =COUNTIF($A:$A,A2)<2 ที่ A3 ก็จะเป็น =COUNTIF($A:$A,A3)<2 อย่างนี้ไปเรื่อย ๆ )สูตร COUNTIF ดังกล่าวนี้ มันจะตรวจสอบข้อมูลตลอดในคอลัมน์ A แล้วก็จะนับว่ามีข้อมูลที่ตรงกันกับข้อมูลในเซล A1 อยู่เท่าไหร่บ้าง เช่นถ้าเรามี Company A อยู่ 2 ที่ มันก็จะนับได้เป็น 2 ซึ่งจะทำให้เงื่อนไขนี้ส่งค่ากลับมาเป็น FALSE (ไม่ผ่านตามเงื่อนไขที่เราตั้งไว้ใน Data Validation) Excel ก็จะไม่ยอมให้เราทำงานต่อ ถ้ามี Company A แค่ 1 ที่มันก็จะนับออกมาได้แค่ 1 ก็จะผ่านเงื่อนไขดังกล่าว
    COUNTIF ใน Data Validation
  5. จากนั้นถ้าเราพยายามที่จะใส่ข้อมูลที่มันมีอยู่แล้ว Excel ก็จะแจ้งเตือน Error ขึ้นมาให้ เราสามารถปรับเปลี่ยน ข้อความของ Error ได้ที่ Tab “Error Alert” หรือจะเปลี่ยนเงื่อนไขการบังคับก็ได้ที่ตรง Style: โดยค่า Default มันจะเป็น Stop ก็คือถ้าเราป้อนค่าซ้ำ Excel จะไม่ให้เราทำงานต่อ ถ้าเลือกเป็น Warning เราจะได้รับเป็นข้อความเตือนขึ้นมา ซึ่งสามารถเลือกได้ว่าต้องการทำงานต่อหรือไม่ และถ้าเป็น Information ก็จะมีข้อความแจ้งขึ้นมา แต่เราสามารถทำงานต่อได้เลย
  6. เปลี่ยนข้อความ Error ใน Data Validation
เพียงเท่านี้ เราก็ป้องกันไม่ให้มีการเพิ่มค่าที่ซ้ำลงไปใน Spreadsheet ของเราได้แล้วครับ
รายละเอียดเพิ่มเติม:
ฟังก์ชัน COUNTIF: http://office.microsoft.com/th-th/excel-help/HP010069840.aspx
ตัวอย่าง VDO แสดงการใช้งาน:
การใช้งานฟังก์ชั่น COUNTIF

วันจันทร์ที่ 25 มิถุนายน พ.ศ. 2555

วิธีแปลงไฟล์ mkv.to avi. โดยที่ยังมีซับอยู่

วิธีแปลงไฟล์ mkv.to avi. โดยที่ยังมีซับอยู่

เหตุผลเบื้องต้น

- ผมชอบดู anime รวมทั้งนำภาพมาแต่งเล่น และพบว่าปัจจุบันมี anime ที่เป็น 1280x720 h264 จำนวนมาก แน่นอนว่า resolution ที่สูง ภาพย่อมละเอียดมากกว่า มันล่อตาล่อใจ ให้ต้องการมากกว่า 704x408 แต่เพราะคอมที่ใช้เป็นคอมรุ่นเก่า RAM น้อย แม้ปัจจุบันใช้ K-lite 4.7.5 แต่การเล่นไฟล์ HD .mkv ย่อมเกิดอาการกระตุกกระจาย



การแปลง MKV (h264) เป็น AVI (XviD) จึงเป็นสิ่งที่ควรทำ เพราะ

- ช่วยให้เล่นไฟล์ video ลื่น ไม่กระตุก

- ลดขนาดไฟล์ (เพราะลด bitrate ลดบางส่วน แต่ยังดูได้ลื่น ไม่ขาดตอน และไม่เสียอรรถรส)

- แปลง resolution ตามใจฉัน เช่น 1440x1080 --->1024x768

- อย่าลืมว่า DVD player บางเครื่องเปิด avi ได้ แต่เปิด mkv ไม่ได้



ผลจากการทดลองแปลง

-จาก MKV(h264) 960x720 960x720 bit rate 1800 Kbps Frame rate 23.976 fps x264 audio AAC  sub ass แปลงเป็น AVI(XviD) 960x720 bit rate 1201 Kbps Frame rate 23.976 fps audio mp3 ฝังซับ ขนาดไฟล์ลดจาก 349 Mb เหลือ 221 Mb เล่นด้วยโปรแกรมเดียวกัน Media Player Classic - Home Cinema 1.2.1008 จากเคยกระตุกตลอด ตอนเป็น .mkv ก็ลื่นตลอด เมื่อเป็น .avi



ประโยชน์เพิ่มเติม

-ได้ไฟล์ .aac .mp3 สามารถนำไปตกแต่งต่อ เช่น ตัดเป็น OP EP หรือบทพูดประทับใจ (tool ที่ผมใช้ตัดต่อเพลง คือ Nero WaveEditor 3.10.1 ส่วน tool ที่ใช้ Rip/convert โดยเฉพาะ ผมชอบ  Xilisoft Audio convertor)

-ได้ไฟล์ sub มาแปลไทย หรือแปลง font ต่อ



Tool ที่ผมใช้

- VirtualDubMod 1.5.10.2

- vsfilter.dll จาก K-lite Codec (ปกตินักดู anime ต้องมีไฟล์นี้ซ่อนอยู่ๆ แล้ว)

- MKVtoolnix (จริงๆ แล้วตัวที่ต้องมีก็คือ MKVExtractGUI 1.6.0 แค่นั้นเอง)

- avc2avi (แปลง .h264 เป็น .avi)

- Xilisoft Audio Convertor (แปลง .AAC เป็น .mp3)



Tool เสริมที่อาจใช้

- Vobsub (ใช้  subresync เปลี่ยนแปลงสกุลไฟล์ sub - แต่จริงๆ แล้วไม่จำเป็น)



ผมคงไม่ลงวิธีการ เพราะมี 2 เว็ป ที่ดูสองหน้านี้แล้ว แปลงไฟล์สำเร็จแน่นอน 99% นั่นคือ

http://www.serv2thai.com/forum/link/out.php?url=http://anime.nickistre.net/blog_entry/anime/2007/03/03/mkv_h_264_codec_to_avi_xvid_codec_conversion

http://www.serv2thai.com/forum/link/out.php?url=http://www.thaidvd.net/forum/upload/index.php?act=ST&f=36&t=127180

(ส่วนใหญ่ผมทำตาม เว็ปบน ยกเว้นใส่ sub ผมใช้วิธีเว็ปล่าง)



-ไฟล์ที่เกี่ยวข้องทั้งหมด เว้น Xilisoft Audio Convertor สามารถโหลดจาก link ในเว็ปทั้งสอง

-อย่าเห็นว่าเป็น tool เก่าๆ (2006) แล้วจะห่วย เพราะมันใช้งานได้เป็นอย่างดี น่าพึงพอใจ

-วิธีนี้เป็นเพียงวิธีหนึงที่เขาใช้กันตั้งแต่ปี 2006 ปัจจุบันมีวิธีอื่นอีกหลายวิธี อย่างไรก็ตามวิธีนี้ tool ทั้งหมดทุกตัวโหลดฟรี ไฟล์เล็ก ทำงานเร็ว (เพียงแต่หลายขั้นตอนหน่อย) (ใช้เวลาไม่เกิน 2 ชม.)