[VBA] Merge ไฟล์ Excel หลายไฟล์

พอดีมีเพื่อนตอนมธัยมทักมา เพื่อให้ช่วยรวมข้อมูลไฟล์ Excel หลายๆไฟล์ แต่ตอนนั้นผมเตรียมสอบ Toeic อยู่เลยปัดไป แต่จริงๆแอบเขียน VBA เพื่อรวมไฟล์ Excel หลายๆไฟล์ มารวมใน Sheet เดียว โดยมี Code คร่าวๆ ดังนี้ถ้าว่างๆ เดี๋ยวมาอธิบาย Code นะ

Neural Network with WEKA [Create Model]

หลังจากเรา เตรียมข้อมูล เรียบร้อยแล้ว ขั้นตอนต่อมา คือ การสร้าง Model โดยทำต่อไปตามขั้นตอนเลยครับ หลังจากที่ได้ลองทำตามขั้นตอนเรียบร้อยแล้ว งานถัดไปของเรา คือ การตรวจสอบโมเดล ซึ่งผมเขียนเป็น Blog ถัดไปนะครับ ^____^

ลด Par ล้างหนี้ คือ อะไร

ช่วงนี้หลายๆคนที่เล่นหุ้น น่าจะได้ยินข่าวว่าหุ้นหลายตัว อาจจะทำการ “ลด Par ล้างหนี้” เพื่อล้างขาดทุนสะสมหมดไป แต่….สำหรับแมงเม่าน้องใหม่อย่างเรานั้น มันจะมีผลอะไรเกิดขึ้นกับเรา หรือไม่ ? Par คือ อะไร ก่อนอื่นที่เราจะไปถึงเรื่องลด Par สิ่งที่เราต้องรู้ก่อนว่า “Par” คือ อะไร Par คือ ราคาที่เจ้าของกิจการกำหนด หรือจัดสรรขึ้นมา เพื่อให้ได้หุ้น 1 หน่วยครับ ตอนที่เริ่มทำธุรกิจ โดยคิดง่ายๆจาก ทุนจดทะเบียน(ทุน) / จำนวนหุ้น = ราคา Par ตัวอย่าง ถ้ามีทุนจดทะเบียน(ทุนตั้งต้น) ตั้งบริษัทจำนวน 100,000 บาท โดยแบ่งเป็น 100,000(ทุน) / 10,000(จำนวนหุ้น) = 10 บาทต่อหุ้น (ราคา Par) ลด Par ล้างหนี้ ตอนนี้เรากลับมาที่ ลด Par ล้างหนี้กันครับ โดยการลด Par เพื่อล้างหนี้ คือ เทคนิคทางการบัญชีมาปรับขาดทุนสะสม โดยการลดราคา Par ลงมา เดี๋ยวผมอธิบายในตัวอย่างเลยและกัน เพราะมันต้องมีคามเข้าใจ เรื่องบัญชีส่วนหนึ่ง สมการบัญชีที่ทุกคน่าจะรู้จัก คือ สินทรัพย์ = หนี้สิน + ทุน ยกตัวอย่างต่อจากข้อที่แล้วเลย คือ ทุน = 100,000 โดยสมการที่ได้เป็น 100,000(สินทรัพย์) = 0(หนี้สิน) + 100,000(ทุน) ณ จุดนี้หนี้สินเป็นศูนย์ แต่เมื่อบริษัทของเราดำเนินกิจการระยะหนึ่งเกิดขาดทุน 10,000 บาทมา ประเด็น คือ เราจะเอาอะไรไปโป๊ะ ถ้าไม่กู้มาเพิ่ม ก็ต้องเอาจากทุนไปจ่าย ซึ่งถ้าเลือกทุนไปจ่าย ส่วนของทุนต้องติดลบไป(เหลือ 90,000 บาท เอาไปโป๊ะขาดทุน 10,000 บาท)…

Neural Network with WEKA [Data Preparation]

ก่อนอื่นเลยบทความนี่ผมเขียนไว้ในเว็บบอร์ด COMSWU นะครับ แต่ติดปัญหาเรื่องสิทธิ์ที่ให้คนนอกเข้ามาดู ผมจึง Rewrite เขียนใหม เพื่อให้คนอื่นๆที่เคยใช้งาน หรือเรียนโปรแกรม WEKA ในการทำ Neural Network แต่ยังไม่มี idea ในการนำไปใช้งานจริงเข้าใจมากยิ่งขึ้นครับ เอกสารประกอบการทำ Workshop นะครับ ขั้นตอนการทำงาน 1. ตรวจสอบข้อมูลก่อนเลย ใน Column ที่เป็น Nominal/Ordinal มันมีข้อมูลกี่ตัวเลือกกี่แบบ 2. สร้าง Sheet ใหม่ใน Excel ขึ้นมา และทำการ copy ข้อมูลจาก Sheet เก่า เพื่อ เอา Format ต่างๆพวก Filter ออกไป 3. ไล่ตรวจสอบใน Sheet ว่าในแต่ละ Cell มีช่องว่าง หรือไม่ ถ้ามีกำจัดให้หมด 4. ลบ Column ID ออกไป เพราะมันไม่มีค่าอะไร และจะทำให้ผลลัพธ์ที่ได้คลาดเคลื่อน 5. แบ่งข้อมูลออกเป็น 2 กลุ่ม สัดส่วน 70%/30% หมายเหตุ: ทั้งสามไฟล์ต้องมีหัวตารางนะ(Attribute) และ สัดส่วนในการทดสอบอาจจะกำหนดเป็นแบบอื่นก็ได้ ไม่จำเป็นต้องทำเป็นแบบนี้นะครับ ตรงนี้ผมแบ่งให้ง่ายๆ เพื่อให้ผู้อ่านเข้าใจครับ 6. บันทึกไฟล์ทั้งสาม โดยทำเป็นไฟล์ .csv(Comma-separated values) 7. นำไฟล์ทั้งสามที่ได้ ไปสร้างไฟล์ .arff ด้วย WEKA8. ทำการเปิดโปรแกรม WEKA ไปที่ Explorer9. ใน Tab preprocess เลือกไฟล์ Customer_for_std_train.csv จำนวน Attribute เอาไว้ 10. มาที่ Tab classify เลือกอัลกอริทึมอะไรก็ได้ เช่น J48…

[DB2] SELECT TOP(1) IN DB2

IBM DB2

จริงๆวางโครงบทความนี้มานานและ แต่เพิ่มจะมีโอกาศได้เขียนจริงๆจังๆ ซะที เข้าที่ปัญหาเลย คือ ว่าเราต้องการ Query เพื่อดึงข้อมูลในแถวแรกขึ้นมาก หากเป็น MySQL, MS SQL Server เราสามารถใช้คำสั่ง TOP(จำนวนแถวที่ต้องการได้เลย) แต่ถ้าเป็น DB2 จะมีคำสั่ง (ใช้ได้กับ DB2 8.1 ขึ้นไป) โดยเพิ่มเข้าไป ดังนี้ครับ FETCH FIRST 1 ROW ONLY ตัวอย่างการใช้งานจริง โดยเทียบ SYNTAX เมื่อใช้กับ MS SQL Server ครับ

[Android] ซ่อนคีย์บอร์ดให้ EditText

เวลาเขียน Android หลายครั้ง เราก็ไม่อยากให้ EditText มันแสดง keyboard เมื่อเราไปเลือกมัน เช่น เราอาจจะใช้ให้ EditText ระบข้อมูลวันที่จาก Date Picker แทน วันนี้ผมมี Code เล็กๆน้อย เพื่อที่จะซ่อน Key board ให้กับ EditText ตามนี้เลยครับ

[Android] Error: The SDK Build Tools revision (19.0.3) is too low for project

วันนี้พอ Update Android Studio เป็นเวอร์ชัน 0.6.0 มาใหม่ พอเปิดโปรแกรมขึ้นมาใหม่พบ Error Message ดังรูปเลยครับ สาเหตุ build.gradle มันชี้ไปผิดเวอร์ชั่น ที่ไม่เหมาะสมกับ SDK วิธีการแก้ แบบที่ 1: แก้จากไฟล์ bulid.gradle แบบที่สอง คือ แก้ผ่าน Interface ของ Android Studio ได้ โดยทำตามขั้นตอน ดีงนี้เลย

[SQL SERVER] SELECT ชื่อ Column จากตาราง

Microsoft SQL Server

สามารถเอา Code ชุดนี้ไปใช้งานได้เลย หรือจะทำเป็น Code Snippets เอาไปใช้งานได้เลย โดยเป็นการดึงข้อมูลมาจาก view INFORMATION_SCHEMA รูปแบบคำสั่ง ตัวอย่างการใช้งาน สำหรับ Tips อื่นตามอ่านได้จาก Tag SQL Server ได้เลยครับ Reference

[SQL SERVER] Invalid character value for cast specification

Microsoft SQL Server

วันนี้ผมแก้ App เก่าๆของที่บริษัทแล้วเกิดเจอปัญหา Invalid character value for cast specification ตอนนั้นไล่ข้อมูลแทบตาย เจอมวลมหา Function Call และไปพบว่ามันผิดที่วันที่ (Date) ที่มีการจัด Format ผิด โดยไอ้เจ้าปัญหา Invalid character value for cast specification มันมีความหมายว่าข้อมูลทางเราเป็น input ส่งให้ Database แล้วตัว DBMS เองไม่สามารถแปลงข้อมูล และเก็บลงฐานข้อมูลได้นั้น ซึ่งสาเหตุอาจจะเกิดจากหลายๆสาเหตุ เช่น ข้อมูลประเภท Date ที่ Format ผิด หรือข้อมูลประเภท String เป็นต้น โดยในที่นี้ผมขอยกปัญหาที่ผมเจอก็คือ กรณีที่ข้อมูลนั้นเป็นพวก Date นะครับ ตัวอย่างที่ผมเจอข้อมูลเกี่ยวกับพวกวันที่ Date พา Death เลยแหละ ปัญหา คือ ข้อมูลวันที่ที่เราส่งไป SQL Server ไม่รองรับ Format ข้อมูลแบบนี้ แต่รองรับข้อมูลรูปแบบ ดังนี้ ทางแก้ไข คือ พยายามจัดข้อมูลรูปแบบของข้อมูลในอยู่ในรูปแบบที่ SQL Server นั้นรองรับ ซึ่งก็คือ สองแบบข้างต้นนี้เอง ดังนั้นข้อมูลที่เราส่งไปเก็บมีรูปแบบจาก 07/31/2014 ไปเป็น 2014-07-31 หมายเหตุ วิธีการแบบนี้สามารถส่งข้อมูลปีที่เป็น ค.ศ. และ พ.ศ. ได้เลย โดยระบบจะปรับแก้วันที่ตาม Regional Setting ได้เองอัตโนมัติ แต่ต้องส่งข้อมูลชนิด Date เข้าไปเท่านั้น ห้ามส่งเป็น String เข้าไปเด็ดขาด(บางครั้งมีคนหัวหมอไปจัด String แล้วค่อยเอาไปเก็บ) เพราะระบบไม่มีการแก้ข้อมูลตาม Regional Setting ซึ่งส่งผลให้ App ของเราทำงานผิดภายในหลังได้

ออมหุ้น VS ออมกองทุน เหมือนกัน หรือต่างกันอย่างไร

เพิ่งลองมาเขียน Blog ในด้านการเงินการลงทุนครั้งแรกๆนะ ก่อนอื่นต้องทวนความหมายของสองคำนี้ก่อน ต่อมาเราจะมองจุดเด่นของแต่ละแบบ โดยผมจะแยกเป็นมุมมองต่างๆ ดังนี้ คนจัดการเงินของเรา ความคล่องตัวและความเสี่ยง ผลประโยชน์ที่ได้รับ ภาษี หมายเหตุ ข้อมูลนี้เป็นการสรุปข้อมูลคร่าวๆ ผู้อ่านควรศึกษาเงื่อนไข หรือหนังสือเชิญชวนให้ดี ก่อนการลงทุนนะครับ รู้เขารู้เรารบร้อยครั้ง ชนะร้อยครั้ง 😀