บทความ

กำลังแสดงโพสต์จาก กุมภาพันธ์, 2014

การตัดช่องว่าง ด้วยสูตร Excel

รูปภาพ
วันนี้เกิดอาการงงนิด ๆ ใช้สูตรรวมเซลล์ ใน Excel แล้วเกิดช่องว่าง ดังภาพ


จากภาพ จะเห็นว่า เซลล์ D2 มีการใช้สูตรรวมชื่อ โดยรวม คำนำหน้าชื่อ ชื่อ ช่องว่างและ นามสกุลเข้าด้วยกัน แต่ผลปรากฏว่า มีช่องว่างระหว่างคำนำหน้าชื่อ และชื่อ แต่บางเซลล์ ก็ไม่มีปัญหา เช่น เซลล์ D3 D6 และ D7 เป็นต้น

สาเหตุ

ในการพิมพ์ คำนำหน้าชื่อ เมื่อพิมพ์เสร็จ มีการเคาะ space bar ทำให้เกิดช่องว่างต่อท้ายคำนำหน้าชื่อ ถ้านำเคอร์ไปวางที่ข้างหลัง จะเห็นว่า เคอร์เซอร์ไม่ติดกับท้ายคำ แต่มีช่องว่าอยู่


การแก้ไข

ใช้สูตร trim() ของ Excel ตัดช่องว่างออก และเพื่อให้แน่ใจว่า ไม่มีปัญหา ควรตัดช่องว่างออกให้หมด ทั้งคำนำหน้าชื่อ ชื่อ และนามสกุล ดังคือ
 =trim(A2)&trim(B2)&"  "&trim(C2)

เท่านี้ ปัญหาเรื่องช่องว่างก็จะหมดไป




การแปลง ตัวอักษร เป็นตัวเลข ใน Crosstab Query

รูปภาพ
ปัญหาอย่างหนึ่งในการการส่งออกข้อมูล จากฐานข้อมูลเป็น ไฟล์ XML ก็คือเรื่อง data type เพราะ XML ไฟล์ ส่งออกข้อมูลออกมาในลักษณะ Text เท่านั้น แม้ข้อมูลในฐานข้อมูลเดิมจะเป็นประเภท Integer หรือ ตัวเลขประเภท อื่น ๆ ก็ตาม  ปัญหาที่ตามมาก็คือ ถ้าจะมีการนำมาคำนวณ หรือจัดการด้านตัวเลข ค่าอาจจะผิดพลาดได้ เช่น การหาค่าสูงสุด หรือต่ำสุด เพราะการเรียนแบบ Text กับการเรียงแบบตัวเลข จะไม่เหมือนกัน

ถ้าเรียงแบบ Text ตัวเลข 2 จะมากกว่า 100
ถ้าเรียงแบบ ตัวเลข ค่าตัวเลข 2 จะน้อยกว่า 100

ข้อมูลข้างล่างนี้ สมมุติว่าเอาเข้ามาจาก XML โดยมี Data Type เป็น Text

การแก้ปัญหาง่าย ๆ คือ เปลี่ยน Data Type ของฟิลด์ จำนวนรวม ให้เป็น Number เสียก่อน แล้วจึงจัดการด้านการคำนวณต่อไป
ถ้านำข้อมูลเดิม มาจัดทำ Crosstab Query เพื่อดูว่า ใคร ซื้อสินค้าอะไร ไปจำนวนสูงสุดเท่าไร
จากข้อมูล จะเห็นว่า

สมหมาย ซื้อปากกาจำนวนมากที่สุด คือ  จำนวน 100 แท่งประกอบ ซื้อดินสอมากที่สุด คือ 100 แท่ง ถ้าไม่มีการเปลี่ยน Data type ผลการวิเคราะห์ จาก Crosstab Query จะเป็นดังนี้


จากภาพ จะเห็นว่า เป็นข้อมูลที่ไม่ถูกต้อง เมื่อดูในหน้าต่าง QBE ในมุมมองออ…

การ Disable ปุ่มบน Custom Ribbon ของ MS Access

รูปภาพ
การสร้างปุ่มเพื่อใช้เอง ใน MS Access 2010 ต้องสร้างบนริบบิ้น โดยสร้าง XML ในตาราง USysRibbons รายละเอียด คลิกอ่านที่นี่ 

ในบางกรณี เราต้องการทำให้ปุ่มบางปุ่ม อยู่ในสภาวะไม่ทำงาน โดยทำให้เป็นสีจาง ๆ เราสามารถทำได้ โดยการแก้ไข โค้ด XML ในตาราง USysRibbons

เมนูปกติ

เมนูที่มีบางปุ่ม อยู่ในสภาวะ ไม่ทำงาน

ในตัวอย่างข้างบน จะเห็นมีปุ่ม คะแนน ก่อน-หลังเรียน และ ปุ่ม ตรวจชิ้นงาน  อยู่ในสภาวะไม่ทำงาน

วิธีการ

ก่อนอื่นต้องเปิดเมนูของระบบ โดยคลิกขวาที่แถบ วัตถุ Access ทั้งหมด > ตัวเลือกการนำทาง จะเปิดหน้าต่าง ตัวเลือกการนำทาง ให้คลิก แสดงวัตถุของระบบ จะเห็นมีตาราง USysRibbons ให้เปิดตารางนี้ไปดูที่ปุ่มที่ต้องการ และสั่ง ให้ enabled = "false" ปิด และเปิดไฟล์ Access เพื่อให้ โปรแกรมอ่านค่าในตาราง USysRibbonsเพียงเท่านี้ ก็จะทำให้ปุ่มนี้ ไม่ทำงานเป็นสีเทา ๆ

ภาษาต่างดาว php UTF-8 TIS-620

รูปภาพ
สำหรับผู้ที่ทำเว็บ เคยหรือไม่ที่หน้าเว็บออกมาเป็นแบบข้างล่างนี้

ปัญหาก็คือ เรื่องของ Encoding หรือ charset นั่นเอง
มีอยู่ 2 จุด คือ ในส่วนหัวของ HTML กำหนด charset ไม่ตรงกับเครื่องมือที่ใช้เขียน HTML

เช่น ใน EditPlus ตรวจสอบ Encoding ได้ที่ Document > File Encoding > Change File Encoding

จะมีตัวเลือกให้เปลี่ยน เป็น UTF-8 หรือ ถ้ากำหนด charset ในส่วนหัวของ HTML เป็น tis-620 ต้องกำหนดให้เป็น ANSI
ถ้ากำหนดเป็น UTF-8 แต่ส่วนหัวของ HTML กำหนด charset เป็น tis-620 ก็จะเห็นเป็นตัว ภาษาต่างดาว เหมือนในตัวอย่างข้างบน ซึ่งกำหนด charset ในส่วนหัว HTML เป็น UTF-8  แต่ที่ EditPlus กำหนด Encoding เป็น ANSI

เมื่อแก้ไขให้ตรงกัน โดยกำหนด Encoding เป็น tis-620 ปัญหาต่าง ๆ ก็จะหายไป เว็บก็จะอ่านได้ การค้นหาข้อมูลในฐานข้อมูลก็จะทำได้ตามปกติ


ปัญหาไม่ได้อยู่แค่นั้น

สมมติว่า เว็บอ่านออก แต่ถ้ามีการต้องไปค้นหาข้อมูลในฐานข้อมูล และถ้า Encoding ไม่ตรงกัน ระหว่างหน้าเว็บ HTML หรือ PHP กับ Encoding ของ ฐานข้อมูลบน Server เช่น MySQL การค้นหาก็จะล้มเหลว หาไม่พบ

การแก้ไขง่าย ๆ ก็คือ แปลงข้อความที่จะใช้ค้นข้อม…

การคัดลอกข้อมูลตาราง จาก PDF มายัง Excel 2010

รูปภาพ
บางครั้งเราต้องการคัดลอกข้อมูลตาราง จากไฟล์ PDF มายัง Excel เพื่อมาจัดการ คำนวณ หรือทำอะไรสักอย่าง ถ้าจะพิมพ์เข้ามาโอกาสผิดพลาดมีมากเหมือนกัน โดยเฉพาะยิ่งมีข้อมูลเยอะ ๆ โอกาสผิดพลาดมีได้ง่าย

ข้อจำกัด
ไฟล์ PDF สามารถกำหนดเงื่อนไขให้ผู้ใช้คัดลอก หรือจะห้ามก็ได้ ถ้าผู้สร้างไม่อนุญาตให้คัดลอก ก็จะไม่สามารถทำได้ ในกรณีที่เจ้าของไฟล์ PDF อนุญาตให้คัดลอกได้ จึงจะสามารถคัดลอกมายัง Excel ได้

หลักการ
คัดลอกข้อมูลตารางจากไฟล์ PDF แล้วมาวางใน Excel โดยใช้ ตัวช่วยสร้างการนำเข้าข้อความ หรือ Text Import Wizard มิฉะนั้นข้อมูลจะไปรวมกันใน Cell เดียวกัน

วิธีการ
เลือกข้อมูลที่ต้องการคัดลอกจาก PDF คลิกขวา แล้วเลือก Copy เพื่อคัดลอกสิ่งที่เลือก ไปที่โปรแกรม Excel คลิกเซลล์แรกที่ต้องการวางข้อมูล ไปที่ลูกศรสามเหลี่ยมใต้ข้อความ วาง จะเปิดเมนูตัวเลือกเพิ่มเติม ให้คลิกที่ ใช้ตัวช่วยสร้างการนำเข้าข้อความ จะเปิดหน้าจอตัวช่วย เนื่องจาก ข้อมูลจาก PDF จะคั่นด้วยช่องว่าง จึงไม่ต้องปรับอะไร คลิกปุ่ม เสร็จสิ้นได้ทันที ถ้าโปรแกรมจะถามว่าจะแทนที่ข้อมูลเดิมหรือไม่ น่าจะตอบว่าให้แทนนะครับ ถ้าไม่แทนที่ก็ไม่รู้ว่าจะมาคัดลอกทำไม แ…