co-create
บทความนี้คือส่วนหนึ่งของโครงการ ร่วมสร้าง “หนังสือคู่มือ Excel ที่เจ๋งที่สุด” ใครที่มี comment เพื่อแนะนำ ปรับปรุงหนังสือได้ คุณจะได้เครดิตในฐานะผู้ร่วมเขียน ลงในหนังสือที่จะพิมพ์จริงๆ ด้วย! อ่านรายละเอียด และดูสารบัญหนังสือ คลิ๊กที่นี่


 

บ่อยครั้งที่ข้อมูลที่เราจะต้องนำมาวิเคราะห์ประมวลผลใน Excel นั้น ไม่ได้อยู่ในรูปแบบที่นำมาวิเคราะห์ได้ทันที ซึ่งอาจมีหลายสาเหตุด้วยกัน เช่น

  • ข้อมูลอยู่ในไฟล์อื่นนอก Excel
  • ข้อมูลอยู่ในสภาพไม่เรียบร้อย มีข้อมูลขยะที่พิมพ์ผิดปนอยู่มาก
  • ข้อมูลมีรูปแบบไม่เป็นไปตามต้องการ เช่น
    • มีข้อมูลชื่อและนามสกุลอยู่ในช่องเดียวกันแต่เราต้องการแยกช่อง หรือ
    • มีข้อมูลวันที่อยู่ในรูปแบบ text เช่น 20150630 แต่เราต้องการนำไปแยกวิเคราะห์ในมุมมอง ปี หรือ เดือน เป็นต้น

Backward Thinking

แน่นอนว่าก่อนที่เราจะเริ่มจัดการข้อมูล เราควรจะต้องรู้ก่อนว่า “สุดท้ายแล้วเราอยากได้อะไร?” เมื่อรู้แล้วค่อยคิดย้อนกลับมายังจุดเริ่มต้นว่า “เราต้องเตรียมอะไร?” ซึ่งเทคนิคการคิดแบบนี้เรียกว่า การคิดย้อนหลังหรือ Backward Thinking ซึ่งเป็นเทคนิคการคิดที่เจ๋งสุดๆ เลย สามารถนำไปประยุกต์ใช้มากมาย แม้แต่การค้นหาเป้าหมายชีวิตของตนเองก็ยังได้

แต่เอาล่ะ กลับมาที่ Excel ก่อนจะเตลิดไปไกลดีกว่าครับ ผมขอยกตัวอย่างดังนี้

backward-thinking

ดังนั้นเรามาดูเทคนิคในการจัดการข้อมูลกันเบื้องต้นดีกว่า ว่าเราจะทำอะไรได้บ้าง

การแตกข้อมูลออกเป็นหลายๆ คอลัมน์ ด้วย Text to Column

บางทีคุณอาจเจอสถานการณ์ที่ข้อมูลที่คุณมีนั้น อยู่ในรูปแบบที่ปนกันอยู่ในคอลัมน์เดียวกัน เช่น
นาย ศิระ เอกบุตร ซึ่งจะเห็นว่ามีคำนำหน้าชื่อ ชื่อ นามสกุล 3 อย่างปนอยู่ในช่องเดียวกัน แต่เราต้องการแยกมันออกมาเป็น 3 ช่อง เราสามารถใช้เครื่องมือ Text to Column มาช่วยได้เป็นต้น

text-col-1

วิธีการเรียกใช้งาน Text to Column ให้เลือกข้อมูลต้นฉบับที่ต้องการจะแยกข้อมูลก่อน (A1:A2) จากนั้นไปที่

[Data] –> Data Tools –> Text to Column

สิ่งที่จำเป็นจะต้องรู้ต่อไปก็คือ การทำงานของ Text to Column นั้น จะมี 2 Mode ให้เลือก ในการที่จะใช้เป็นเกณฑ์ในการแบ่งข้อมูลจากคอลัมน์เดียวเป็นหลายๆ คอลัมน์ นั่นก็คือ

  • Delimited : ใช้กับกรณีที่ข้อมูลมีอักขระพิเศษบางตัวทำหน้าที่เป็นตัวแบ่งคอลัมน์ โดย Excel จะถามว่าไฟล์ที่เราเลือกนั้นมีตัวแบ่งคอลัมน์ คือ อักขระอะไร ซึ่งมีตัวแบ่งที่ใช้กันบ่อยๆ เช่น Tab, Semicolon, Comma (มักใช้กับไฟล์ นามสกุล CSV (Comma Separated Value), Space (ช่องว่าง), Pipeline (เครื่องหมาย | ที่อยู่บนๆ ปุ่ม Enter) เป็นต้น
  • Fixed Width : ใช้กับกรณีที่ข้อมูลสามารถถูกแบ่งคอลัมน์ด้วยความกว้างของจำนวนตัวอักษรที่แน่นอน โดยแต่ละคอลัมน์ไม่จำเป็นต้องเท่ากัน เช่น คอลัมน์แรกกว้าง 3 คอลัมน์ต่อไปอาจกว้าง 5 ก็ได้
    text-col-2

ในตัวอย่างของผม จะเห็นว่ามีตัวแบ่งที่ชัดเจนเลย นั่นก็คือ ช่องว่าง ดังนั้นจะต้องเลือกโหมดเป็น Delimited แล้วเลือก Delimiter เป็น Space นั่นเอง (Excel2013 อาจแสดงภาษาไทยเพี้ยนๆ ตอน Preview ก็โปรดให้อภัยมันด้วยนะครับ)

text-col-3

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

text-col-4

จะเห็นว่า การจะใช้ Text to Column ได้เราจะต้องลองสังเกตข้อมูลของเราดูก่อน ว่าควรจะใช้ตัวแบ่งแบบไหนมาช่วยนั่นเอง ซึ่งความรู้ตรงนี้จะมีประโยชน์ในหัวข้อถัดไปอย่างมาก นั่นก็คือ การ Import ข้อมูลนั่นเอง

 

 

Import เอาข้อมูลจากไฟล์อื่นเข้ามาที่ Excel

บางทีข้อมูลที่เราต้องใช้ ไม่ได้อยู่ใน Excel ดังนั้น จึงหลีกเลี่ยงไม่ได้ที่เราอาจต้องใช้ Excel ร่วมกับข้อมูลที่อยู่ข้างนอก เช่น เป็น Text File, ไฟล์ Database บน Access, หรือแม้กระทั่งข้อมูลในตารางที่อยู่บน Website

อาจมีหลายสาเหตุที่เรายังต้องพึ่งพาข้อมูลจากภายนอก เช่น ข้อมูลมีขนาดใหญ่ เช่น มากกว่า 1 ล้านบรรทัด ทำให้ใส่ใน Excel ไม่ได้ จึงต้องไปใส่ไว้ในที่อื่น เช่น  Access แทน หรือบางทีข้อมูลจากมีการอัปเดทอยู่เสมอๆ เช่น ราคาหรือข้อมูลข้องหุ้นต่างๆ ที่อยู่ในเว็บไซต์ เป็นต้น

การนำเข้าข้อมูลจากฐานข้อมูลภายนอก ทำได้โดยไปที่ [Data] –> Get External data ซึ่งมีอยู่หลาย Source ให้เลือก ผมจะขอพูดเฉพาะตัวที่น่าจะใช้บ่อยๆ ดังนี้

From Text

วิธีนี้ใช้กับข้อมูลที่อยู่ในรูปแบบ Text ซึ่งรวมถึงไฟล์ที่เป็นนามสกุลพวก .txt หรือ .csv (comma separated value) ซึ่งเมื่อลองกด Import ข้อมูลดูแล้ว จะพบว่ามีเมนูให้เลือก 2 แบบ คือ Delimited กับ Fixed Width ซึ่งเป็นแบบเดียวกับการใช้ Text to Column เป๊ะๆ เลย (สบายเราล่ะ) แต่สิ่งที่อาจต้องเลือกเพิ่มคือ พวกรหัสภาษาของไฟล์ต้นฉบับ ซึ่งถ้ามีภาษาไทยอยู่ ผมแนะนำให้เลือก Thai เช่น 874:Thai (Windows) ครับ ไม่งั้นภาษาจะออกมาเน่าๆ และบางทีก็อาจต้องติ๊ก My Data has Headers ด้วย เพื่อบอก Excel ว่า ในไฟล์ที่กำลังจะ import นั้นมีหัวคอลัมน์มาด้วยนะ

text-import

From Web

อันนี้เหมาะกับการดึงข้อมูลใน Website โดยสามารถเลือกได้ด้วยว่าจะดึงข้อมูลจากตารางไหนที่อยู่ใน Website หน้านั้นๆ โดยมันจะแสดงหน้าตา Website จริงๆ มาให้เราเลือกเลย

สมมติผมอยากได้ข้อมูลเกี่ยวกับรายได้หนัง ผมอาจใส่เว็บไซต์ Address จาก boxofficemojo: เป็น http://www.boxofficemojo.com/yearly/chart/?yr=2015&p=.htm แบบนี้ก็ได้

จากนั้นผมก็เลือกตรงลูกศรที่มีข้อมูลที่เราต้องการ จากสีเหลืองจะเป็นสีเขียว และผมอาจต้องกำหนด Options บางอย่าง เพื่อให้ข้อมูลไม่เพี้ยน เช่น บางที Excel ก็แปลงข้อมูลเป็นวันที่ให้เอง ซึ่งผมไม่ต้องการ จึงต้องเลือก Disable date recognition ไว้ด้วย

web-query

ผลลัพธ์ที่ได้จะออกมาเป็นตารางให้โดยอัตโนมัติเลย

web-query2

นอกจากนี้ เรายังสามารถ Save ลักษณะการ Import นั้นๆ (Save Web Query) ไว้ใช้ภายหลังได้อีกด้วย โดยการกดที่ icon แผ่น disk ข้างๆ คำว่า Options… ซึ่งพอ Save แล้วเราสามารถเปิดใช้ภายหลังโดยการ Open Query File ที่ Save ไว้ในเมนู Open File ปกติเลย 

การ import ข้อมูลที่อยู่ใน Access

การ import ข้อมูลที่อยู่ใน Access จริงๆ แล้วสามารถทำได้ 2 ที่ คือ From Access ตรงๆ และ From Other Sources –> From Microsoft Query แต่ผมว่าวิธีแรกง่ายกว่าครับ

From Access

อันนี้เราสามารถเลือกไฟล์ Access ได้เลยโดยตรงเลย พอเลือกไฟล์ Access แล้วมันก็จะให้เลือก Table/Query ที่เราต้องการจะ Import ต่อไป (ถ้าเป็น Query ตรงช่อง Type จะขึ้นว่า VIEW)

from-access

เมื่อ Import แล้ว จะมีให้เลือกว่าจะให้ Import เป็น Table หรือกลายเป็น PivotTable เลย

from-access2

ซึ่งหาก Import เป็น PivotTable Report จะสามารถ import ข้อมูลมามากกว่าจำนวนแถวที่ Excel รับไหวได้ด้วย คือ มากกว่า 1,048,576 Records ก็ยังได้

มหัศจรรย์การจัดการข้อมูลด้วย Flash Fill ( Excel 2013 เท่านั้น)

ใน Excel 2013 มีเครื่องมือสุดเจ๋งที่ชื่อว่า Flash Fill มาให้เราใช้ ซึ่งความสามารถที่สุดแสนจะชาญฉลาดของมัน คือ การคาดคะเนการกรอกข้อมูลตามตัวอย่างที่เราใส่ลงไป โดยมันจะพยายามเรียนรู้หา Pattern ในตัวอย่างที่เราใส่ลงไป ซึ่งเราสามารถนำมาประยุกต์ใช้ประโยชน์ได้มากมาย เช่น

  • นำมาแบ่งคำ จาก 1 คอลัมน์ ออกมาเป็นหลายๆ คอลัมน์
  • รวมข้อมูลจากหลายคอลัมน์ มาไว้ที่คอลัมน์เดียว ในรูปแบบที่ต้องการ
  • แยกเอาบางส่วนของคำออกมา
  • เปลี่ยน Format ของข้อความให้อยู่ในรูปแบบที่ต้องการ

วิธีการใช้คือ ให้เรากรอกตัวอย่างลงไปให้มันดูก่อน อย่างน้อย 1 ช่อง (ยิ่งทำตัวอย่างให้ดูเยอะยิ่งแม่น)จากนั้น ให้กด Ctrl+E หรือไปที่ [Data]–> Data Tools–> Flash Fill เพื่อทำการ Fill ข้อมูลได้เลย

flash1 flash2 flash3

Excel เข้าใจผิด ก็พิมพ์แก้ให้มันหน่อย จากนั้นมันก็จะเก่งขึ้น

flash4 flash5

พูดง่ายๆ ว่า หากคุณต้องการผลลัพธ์อันรวดเร็ว โดยลักษณะงานเป็นแบบ Adhoc คือไม่ได้ต้องทำเป็นประจำ วิธีใช้ Flash Fill นี้เหมาะกับคุณมากครับ เพราะเราแค่ใส่ตัวอย่างแล้วกด Ctrl+E ให้ก็เสร็จแล้ว เร็วกว่าการมานั่งเขียนสูตรมาก (กว่าจะคิดออกว่าจะเขียนสูตรยังไงก็แย่แล้ว)

แต่ถ้าหากเราต้องทำงานแบบนี้เป็นแบบ Routine คือทำประจำ เช่น รายงานที่ต้องทำทุกอาทิตย์หรือทุกเดือน วิธีที่ดีกว่าคือการลงทุนสร้างสูตรคำนวณ ซึ่งเราจะได้เรียนรู้กันในบทถัดๆ ไปนั่นเอง  วิธีการจัดการข้อมูลด้วยการใส่สูตรมีข้อดีคือ เมื่อข้อมูลต้นทางหรือ Data Source เปลี่ยนไป ผลลัพธ์จะเปลี่ยนตามทันที โดยที่เราไม่ต้องมานั่งใส่ตัวอย่างใหม่ หรือมานั่งกดสั่ง Flash Fill ให้ทำงานเลย วิธีการเขียนสูตรเรียกได้ว่าเป็นการ “ลงทุนระยะยาว” คือ คุณอาจต้องยอมเหนื่อยตอนแรกในการสร้างสูตร ซึ่งอาจจะยากกว่าใช้เครื่องมืออย่าง Flash Fill แต่จะทำให้เราสบายในระยะยาว เพราะเราแทบไม่ต้องทำอะไรอีกเลย นอกจากเอา Data ใหม่เข้ามาใส่ใน Template เดิมที่เราเขียนสูตรไว้แล้ว