Quantcast
Channel: 1-ทักษะเบื้องต้น –เทพเอ็กเซล ThepExcel.com
Viewing all 31 articles
Browse latest View live

การอ้างอิงด้วยการตั้งชื่อ (Define Name)

$
0
0

การมีชื่อนั้นเป็นสิ่งพิเศษมากนะครับ เพราะชื่อ ทำให้เราสามารถอ้างอิงไปยังสิ่งต่างๆ ได้ง่ายมากยิ่งขึ้น (ลองคิดดูว่าถ้าแต่ละคนในสังคมไม่มีชื่อ จะวุ่นวายแค่ไหน!!)

ผมยกตัวอย่างง่ายๆ เช่น ถ้าหากคุณไม่รู้จักชื่อคนในห้องสัมมนา คุณอาจต้องอ้างอิงถึงคนคนนั้นด้วยพิกัด เช่น “เฮ้ย คนที่นั่งเก้าอี้ทางซ้ายสุดของแถวหลังสุดน่ะ” ตรงนี้คล้ายๆ กับการใช้การอ้างอิงด้วยตำแหน่ง อย่าง  A1, B3 ที่ผมได้อธิบายไปแล้วนั่นเอง

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

กลับมาที่ Excel… แทนที่เราจะใช้การเรียกชื่อ Cell ตามมาตรฐานที่มีอยู่เดิม เช่น A1 B3 หรือเรียก Range ว่า A2:D5 เราสามารถตั้งชื่อ Cell หรือ Range นั้นๆ ด้วยคำที่ต้องการได้เลย จะเป็นภาษาอังกฤษหรือภาษาไทยก็ได้ เช่น sales, ยอดขาย, ภาษี เป็นต้น

ซึ่งเมื่อคนอื่นมาอ่านไฟล์ของเรา ก็อาจจะเห็นสูตรที่เราเขียนโดยใช้ชื่อในการอ้างอิง ทำให้สามารถเข้าใจงาน Excel เราได้ง่ายขึ้นไปด้วย

การตั้งชื่อ โดยใช้ Name Box

ให้เลือก Cell หรือ Range ที่ต้องการ  แล้วพิมพ์ชื่อที่ต้องการตั้งลงใน Name Box ได้เลย (อยู่ด้านซ้ายของช่อง Formula Bar ที่เอาไว้ใส่สูตร) เช่น

  • หากเราอยากจะตั้งชื่อช่อง C1 ว่า animal ก็ให้เราเลือกที่ช่อง C1 จากนั้นพิมพ์คำว่า animal ลงไปใน Name box แล้วกด Enter
    name1
  • หากเราอยากจะตั้งชื่อ Range B3:B5 ว่า salary ก็ให้เราเลือกที่ Range B3:B5 ก่อน จากนั้นพิมพ์คำว่า salary ลงไปใน Name box แล้วกด Enter
    name2
  • เมื่อเราตั้งชื่อไปแล้ว เราสามารถ Select Cell/Range ที่ตั้งชื่อไว้แล้วง่ายๆ โดยการเลือก Dropdown ที่ Name box นั่นเอง
    name3

การอ้างอิงถึงชื่อที่ตั้งไว้แล้ว

เราสามารถอ้างอิงถึงชื่อที่ตั้งไว้ได้เปรียบเสมือนว่าชื่อนั้นเป็น Cell Reference ปกติเลย ไม่ว่าชื่อนั้นจะเป็น Cell หรือ Range  เช่น หากเราพิมพ์ลงไปว่า =animal จะได้ค่าเหมือนกับ =C1 ซึ่งจะได้ค่าเป็น “ช้าง” ถ้าเราพิมพ์ว่า =SUM(salary) จะได้ค่าเหมือนกับ =SUM(B3:B5) ซึ่งจะได้ผลลัพธ์เป็น 600

การตั้งชื่อครั้งละหลายๆ ชื่อ โดยใช้ เครื่องมือ Create from Selection

เป็นการตั้งชื่อที่ทำได้อย่างรวดเร็ว เพราะมันสามารถให้เราครอบข้อมูลจำนวนมากๆ แล้วตั้งชื่อตามหัวคอลัมน์แต่ละอัน หรือ หัวแถวแต่ละแถวได้โดยอัตโนมัติ วิธีคือให้เลือกพื้นที่ที่ต้องการ  แล้วไปที่ [Formula] –> Defined Names –> Create from Selection (มี Shortcut คือกด Ctrl+Shift+F3)

name4

ชื่อ sales จะแทน B3:B6, product แทน C3:C6, payment แทน D3:D6 (ไม่รวมหัวคอลัมน์)

Scope ของชื่อ อยากให้ชื่อเป็นที่รู้จักแค่ไหน?

แท้จริงแล้ว ชื่อที่ถูกตั้งขึ้นมา สามารถกำหนดให้ถูกเรียกใช้งานได้จากขอบเขตตามที่เราต้องการเรียกว่า Scope นั่นคือ

  • ตั้ง Scope ให้เป็นระดับ Workbook : ให้เรียกใช้ชื่อได้จาก Sheet ใดก็ได้
  • ตั้ง Scope ให้เป็นระดับ Worksheet : ให้เรียกใช้ชื่อได้จาก Sheet ใด Sheet หนึ่งเท่านั้น
  • ถ้าชื่อซ้ำกัน หากเราทำการเรียกใช้ชื่อจาก Sheet ไหน Excel จะมองชื่อที่อยู่ใน Scope ของ Worksheet นั้นก่อนการมองชื่อระดับ Workbook เสมอ ตรงนี้ Make sense มากนะครับ เช่น ถ้าเราพูดถึงคนที่ชื่อว่า “โนบิตะ” คนส่วนใหญ่ในโลกนี้จะนึกถึงโนบิตะในเรื่องโดราเอมอน (เหมือนชื่อระดับ Workbook ที่เรียกได้ว่ามีความเป็นสากลมาก) แต่ถ้าเราเป็นคนที่อยู่ในบ้านที่มีคนชื่อโนบิตะอยู่พอดีเลย คนในบ้านนั้นก็ต้องคิดถึงคนที่ชื่อโนบิตะในบ้านนั้นก่อน (เหมือนกับการอ้างอิงชื่อระดับ Worksheet ที่มีความเป็น local มากกว่า)

ซึ่งการตั้งชื่อด้วย Namebox และ Create from Selection ที่แนะนำไปนั้น จะเป็นการสร้าง Defined Name ที่เป็นระดับ Workbook โดยอัตโนมัติ ซึ่งหากเราใช้วิธี Namebox ในการตั้งชื่อเดียวกันซ้ำในอีก Sheet หนึ่ง คุณจะพบปัญหา เพราะแทนที่มันจะตั้งชื่อขึ้นมาใหม่ มันดั้นเด้งกลับไปยังช่องแรกที่ถูกตั้งชื่อไว้แทน นี่แหละครับ ถึงคราวต้องใช้ความรู้เรื่องของ Scope ในการตั้งชื่อแล้วล่ะ! ทำยังไงมาดูกันครับ

การตั้งชื่ออย่างละเอียดด้วย Define name

ให้คลิ๊กที่ Cell/Range ที่ต้องการตั้งชื่อแล้วไปที่ [Formula] –> Defined Names –> Define Name ได้เลย ซึ่งคราวนี้คุณจะสามารถกำหนดเงื่อนไขต่างๆได้มากกว่าเดิม เช่น Defined Name จะใช้ชื่อว่าอะไร มี Scope เป็นระดับไหน และอ้างอิงไปที่ Cell/Range ไหน (ซึ่งอ้างไปยัง Sheet อื่นได้นะ)

เช่น ใน Sheet1 ช่อง A1 ผมมีค่า 10 แล้วตั้งชื่อว่า age ซึ่งผมใช้ Namebox ในการตั้งขื่อไปก่อน ซึ่งปกติชื่อแรกที่ถูกตั้งขึ้นมาจะเป็นระดับ Workbook โดยอัตโนมัติ

หากว่าใน Sheet2 ช่อง B1 ผมมีค่า 20 อยากจะตั้งชื่อว่า age เหมือนกัน (ซ้ำกับ sheet1) ผมจะสามารถทำได้ก็ต่อเมื่อผมต้องตั้งชื่อ age ใน Sheet2 ให้เป็นระดับ Sheetแทน โดยเปลี่ยน scope ในเครื่องมือ Define Name ให้เป็น sheet2 แทน (ระดับ worksheet) นั่นเอง

name5

สิ่งที่เกิดขึ้นคือ หากคุณทำการอ้างอิงชื่อที่ตั้งขึ้นมา เช่น ใส่สูตรว่า =age เมื่อคุณอยู่ที่ sheet ต่างกัน ก็จะได้ผลลัพธ์ต่างกันไปด้วย  เช่น

  • หากอ้างอิงจาก sheet2 คุณจะได้ค่า 20 (ได้ชื่อระดับ sheet กลับไป)
  • แต่หากคุณอ้างอิงจาก sheet 1 หรือ sheet อื่นที่ไม่ใช่ sheet2 คุณจะได้เลข 10 กลับไป (เป็น name ระดับ workbook)

อย่างที่บอกไปว่าชื่อระดับ worksheet จะได้รับ priority สูงกว่าเสมอ เพราะมีความเจาะจงมากกว่านั่นเอง  

การจัดการชื่อด้วย Name Manager

เมื่อคุณทำการตั้งชื่อไปแล้วด้วยวิธีการต่างๆ ที่พูดถึงก่อนหน้านี้ คุณสามารถเข้ามาจัดการซึ่งรวมถึง การเพิ่ม แก้ไข หรือ ลบ ชื่อเหล่านั้นได้ง่ายๆ โดยใช้เครื่องมือที่ชื่อว่า Name Manager ซึ่งอยู่ที่ [Formula] –> Defined Names –> Name Manager
name-manager

เครื่องมือนี้เหมาะกับการจัดการชื่อจำนวนมากๆ ได้ เพราะว่าจะเห็นภาพรวมของชื่อทั้งหมดที่ถูกตั้งไว้ใน Workbook นั้นๆ

อย่างไรก็ตาม หากมีชื่อเยอะเกินไปจนดูไม่ไหว คุณก็ยังสามารถ Filter ชื่อตามหมวดหมู่ที่ต้องการได้ เช่น อยากเห็นเฉพาะชื่อที่มี Error อยู่ หรือ ชื่อที่มี Scope เป็น Sheet เป็นต้น

name-manager2


การจัดเรียง และ กรองข้อมูล (Sort & Filter)

$
0
0

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


 

การเรียงข้อมูล (Sort)   และ การกรองข้อมูล (Filter) เป็นทักษะพื้นฐานของการวิเคราะห์ข้อมูล ดังนั้นเราควรจะทำทั้งสองเรื่องนี้ได้อย่างคล่องแคล่วครับ ซึ่งปกติแล้ว เราควรจะทำการ Sort ข้อมูลก่อนที่จะใช้ Filter ครับ แต่เราสามารถทำการ Sort ในเครื่องมือ Filter ได้ด้วย ผมเลยชอบใช้ Filter มากกว่า สะดวกมาก

การ Sort

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

เครื่องมือในการ Sort ข้อมูลนั้น  แรกสุดควรเตรียมข้อมูลให้อยู่ในลักษณะ Database คือให้บรรทัดบนสุดของข้อมูลบริเวณที่จะ Sort/Filter เป็นชื่อหัวตาราง ไม่ใช่ตัวข้อมูลจริงๆ และรอบๆ ฐานข้อมูลไม่ควรมีข้อมูลที่ไม่เกี่ยวข้องอยู่ใน Cell ที่ติดกับตาราง เช่น

 

แบบที่ถูกต้อง แบบที่ไม่ควรทำ
 database-style

แบบนี้ ok เลย

database-style-wrong

เพราะไม่มีหัวตาราง

database-style-wrong2

เพราะรอบๆ ตารางมีข้อมูลที่ไม่เกี่ยวข้องติดอยู่

โดยที่เราสามารถกดใช้เครื่องมือ Sort ซึ่งเลือกได้ 2 ที่ คือ

  1. ที่ [Home] –> Editing –> Sort & Filter –> เลือกการ Sort ที่ต้องการ
  2. ที่ [Data] –> Sort & Filter –> เลือกการ Sort ที่ต้องการ

โดยการ Sort ข้อมูลมีอยู่ 2 ประเภทใหญ่ๆ คือ

ต้องการ Sort คอลัมน์เดียว

แบบนี้เป็นแบบ Basic สุด คือ ไม่สนใจว่าคอลัมน์อื่นจะเรียงยังไง ซึ่งเทคนิคนี้สามารถใช้ปุ่มสี่เหลี่ยม Filter ช่วยในการ Sort ได้ (อย่างที่บอกไปแล้วตอนต้นว่าเครื่องมือ Filter มัน Sort ได้ด้วย) ซึ่งการ Filter นั้นเลือกได้ 2 ที่ คือ

  1. ที่ [Home] –> Editing –> Sort & Filter –> Filter
  2. ที่ [Data] –> Sort & Filter –> Filter
    • ถ้าข้อมูลเป็น Text จะมีให้เลือก Sort A->Z และในทิศกลับกัน
    • ถ้าข้อมูลเป็น Number จะมีให้เลือก Smallest to Largest และในทิศกลับกัน

การ Sort ตรวจหาสิ่งผิดปกติ

หากคุณ Import Data มาใหม่ๆ ผมแนะนำให้ลองกด Sort ในช่องสำคัญๆ ที่คิดว่าจะต้องมีค่าบางอย่างตามที่เราต้องการ เช่น วันที่ ต้องอยู่ในช่วงวันที่เรากำหนด ไม่ขาดไม่เกิน หรือ ยอดขายไม่ควรมีเลขแปลกๆ ที่มากเกินไป น้อยเกินไป หรือมีข้อมูลขยะปนอยู่

ถ้า Sort แล้วเจอข้อมูลแปลกๆ ก็ควรที่จะกลับไปตรวจสอบแล้วจัดการข้อมูลตั้งแต่ต้นตอว่าเกิดจากอะไร เพราะหากไม่ตรวจให้ดีก่อน คุณอาจจะทำงานแบบสูญเปล่าไปอีกหลายชั่วโมงเลยก็ได้ (Garbage in, Garbage Out)

Data ก่อน Sort Data หลัง Sort
ดูเหมือนว่าข้อมูลจะปกติดี พบเห็นข้อมูลที่ผิดปกติ เช่น มีตัวอักษรในช่องยอดขาย หรือมีค่ายอดขายที่มาก/น้อยผิดปกติ
 strange-data Sort มากไปน้อยstrange-data2Sort น้อยไปมาก

เมื่อพบสิ่งปกติแล้ว คุณก็ต้องกลับไปดูแหล่งที่มาของข้อมูลอีกครั้งว่ามีอะไรผิดพลาดในขั้นตอนไหน

strange-data3

 

ต้องการ Sort แบบเป็นลำดับขั้นหลายๆ ชั้นซ้อนกัน

เช่น ถ้ามีคอลัมน์ A B C มีข้อมูลดังนี้

multiple-sort-1

แล้วผมอยากได้ผลลัพธ์สุดท้ายว่า

  • ให้เรียงรหัสพนักงานขาย (A) จากน้อยไปมาก
  • ถ้าเป็นพนักงานคนเดียวกันให้เรียงวันที่ขาย (B) จากก่อนไปหลัง
  • ถ้าสุดท้ายยังเป็นวันเดียวกันอีก ให้เรียงยอดขายแต่ละรายการ (C) จากยอดขายมากไปน้อย

ผมสามารถทำได้ 2 วิธี คือ 1.ใช้ปุ่มสี่เหลี่ยม Filter ช่วย Sort และ 2.ใช้เครื่องมือ Sort บน Ribbon

ใช้ปุ่มสี่เหลี่ยม Filter ช่วย Sort

วิธีนี้ต้องกด Sort หลายรอบ ขึ้นอยู่กับว่าจะเรียงกี่คอลัมน์ โดยให้กด Sort ที่ตัวลำดับความสำคัญอันรองๆ ก่อน แล้วค่อยกด Sort ตัวที่เป็นลำดับความสำคัญหลักใน Step หลังสุด นั่นคือ

  • กด Sort เรียงยอดขายแต่ละรายการ (C) จากมากไปน้อยก่อน
  • กด Sort เรียงวันที่ขาย (B) จากก่อนไปหลัง
  • กด Sort เรียงรหัสพนักงานขาย (A) จากน้อยไปมาก
    multiple-sort-2

ใช้เครื่องมือ Sort บน Ribbon

วิธีนี้เป็นการใช้ Tool สำเร็จรูปมาช่วย ให้ไปที่ [Data] –> Sort & Filter –> Sort โดยที่แต่ละ Level ที่จะ Sort เราจะต้องเลือกว่าจะเป็น Sort by คอลัมน์อะไร เรียงโดยอะไร (มักจะเป็น Value) และเรียงจากน้อยไปมากหรือมากไปน้อย โดยที่สามารถกด Add Level เพื่อเพิ่มลำดับการ Sort ได้

แต่วิธีการใช้เครื่องมือนี้ Level ที่อยู่ระดับข้างบน จะถือว่าเป็นคอลัมน์หลัก นั่นคือ เราต้อง Add Level จากบนลงล่าง ตามรูป

multiple-sort-3

ซึ่งจะเห็นว่าลำดับการเรียงจะต้องทำตรงกันข้ามกับวิธีใช้ปุ่ม Filter นะครับ

เมื่อเรียงไปมาแล้ว จะยกเลิกการเรียง ให้กลับเรียงแบบตอนแรกยังไง?

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

เทคนิคที่จะช่วยให้ Sort กลับมาเป็นแบบเดิมได้คือ ต้องสร้างคอลัมน์เพิ่ม 1 คอลัมน์ แล้วใส่เลข Running แบบการเรียงตั้งต้นเอาไว้ก่อน เพื่อที่จะได้เรียงกลับมาเหมือนเดิมได้หากต้องการภายหลัง ซึ่งคุณสามารถใช้ Fill Handle มาช่วยทำเลข Running ได้อย่างรวดเร็วครับ

 

ถ้าหัวตารางมีหลายบรรทัดทำยังไง?

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

filter-wrong

วิธีแก้คือ ให้เลือกเฉพาะ Cell ที่เป็นหัวตารางจริงๆ ของเราบรรทัดสุดท้ายก่อนจะกด Filter (ในที่นี้ ตัวอย่างของผมคือบรรทัดที่ 3 ช่อง A3:C3) หรือจะให้ง่ายก็สามารถกดเลือกทั้งบรรทัดเลยก็ได้ แล้วค่อยกด Filter จะได้ผลว่าปุ่ม Filter โผล่ออกมาที่บรรทัดที่ต้องการได้อย่างถูกต้อง

filter-ok

การ Filter

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

เมื่อเตรียมข้อมูลเป็น Database แล้ว ให้ Click ที่ช่องใดช่องหนึ่งของตารางข้อมูล (เช่น A1) แล้วกดใช้เครื่องมือ Filter ซึ่งเลือกได้ 2 ที่ คือ

  1. ที่ [Home] –> Editing –> Sort & Filter –> Filter
  2. ที่ [Data] –> Sort & Filter –> Filter

เวลากด Filter แล้วจะมีปุ่มสี่เหลี่ยมขึ้นมาที่ด้านขวาของหัวตาราง เราสามารถกดปุ่มนั้นเพื่อเข้าสู่เมนูการกรองข้อมูล ซึ่งเมื่อกดปุ่มกรองที่คอลัมน์ไหน มันก็จะกรองข้อมูลโดยใช้หลักเกณฑ์คอลัมน์นั้น

Filter

เราจะลองทำการกรองดู โดยให้ลองเลือกให้ติ๊กถูกเหลือแค่ Food โดยให้ติ๊ก Select  All ออกก่อน แล้วค่อยกดเลือก Food และ/หรืออย่างอื่นที่ต้องการ แล้วกด Ok

วิธีสังเกตว่ามีการกรองข้อมูลเกิดขึ้น

Filter-After

จะเห็นว่าเมื่อกรองข้อมูลแล้ว จะมีเครื่องหมายกรวยกรอง โผล่ขึ้นมาที่คอลัมน์ที่มีการกรองเกิดขึ้น รวมถึงจะเห็นว่า Row Number จะหลายเป็นสีฟ้า แถมเลขก็มีการข้ามลำดับด้วย

การกรองด้วย Filter มีอยู่ 2 ลักษณะ ดังนี้

  1. การกรองค่าแบบเจาะจง :เวลากดแล้วมีCheck Boxอันไหนที่ไม่อยากเห็น ก็ติ๊กออกได้
    • หากมี Choice ให้เลือกเยอะจนเลือกไม่ไหว อาจใช้เครื่องมือ Search ใน Filter มาช่วย เช่น ผมพิมพ์คำว่า f ลงไปในช่อง search จะขึ้นทุก Choice ที่มีคำว่า f อยู่
      filter-search
    • จากนั้นพอกด ok ก็จะ Filter เหลือแต่สิ่งที่เลือกไว้
    • หากคุณกด Filter ใหม่ คราวนี้ลองเปลี่ยนคำบ้าง พอกด ok มันก็จะทับผลการ Filter เดิมที่ได้เคยทำไว้เลย
      Tips : แต่ถ้าหากคุณอยากจะให้มัน add item เพิ่มจากรายการเดิมที่เลือกไว้แล้ว ให้ติ๊กช่อง Add current selection to filter ด้วย เช่น
      filter-add-current-selection

 

 

  1. การกรองค่าแบบกำหนดเงื่อนไข จะขึ้นกับประเภทของข้อมูลในคอลัมน์นั้น

Text Filters 

Filter-Text

จะเลือกได้กรณีข้อมูลเป็น Text ซึ่งมีเงื่อนไขให้เลือกดังนี้

 

เงื่อนไข ความหมาย
Equals… / Does Not Equal…. ช่องนั้นเป็นคำ xxx /ไม่ใช่คำ xxx แบบเป๊ะๆ
Begins With…/ Ends With… ขึ้นต้น / ลงท้าย ด้วยคำว่า xxx
Contains… / Does Not Contain… มีคำว่า / ไม่มีคำว่า xxx อยู่ในช่องนั้น
Custom Filter เป็นการ Combination 2 เงื่อนไขด้วย And หรือ Or อีกที
นอกจากนี้ยังใช้เครื่องหมาย Wildcard คือ * หรือ ? ได้ด้วย (จะอธิบายใน Level Advanced)

Number Filters 
ถ้าข้อมูลเป็น Number จะมีให้เลือก Number Filter ซึ่งเลือกเงื่อนไขได้ดังนี้

เงื่อนไข ความหมาย
Equals… / Does Not Equal…. ช่องนั้นเป็นเลข xxx /ไม่ใช่เลข xxx แบบเป๊ะๆ
Greater Than…/Greater Than Or Equal To…/Less Than…/Less Than Or Equal To…/ Between… ช่องนั้นเป็นเลขที่มากกว่า/น้อยกว่า/ระหว่าง เลข xxx ที่กำหนด
Top 10… มีค่าอยู่ใน Top xxxx นับเป็นรายการ/ หรือนับเป็น Percent
Above Average / Below Average มีค่ามากกว่า/น้อยกว่าค่าเฉลี่ย
Custom Filter เป็นการ Combination 2 เงื่อนไขด้วย And หรือ Or อีกที
นอกจากนี้ยังใช้เครื่องหมาย Wildcard คือ * หรือ ? ได้ด้วย (จะอธิบายใน Level Advanced)

Filter ด้วยสี (Filter by Color)

นอกจากนี้เรายังสามารถใช้การ Filter ด้วยสี (Filter by Color) ได้ด้วย อันนี้มีประโยชน์เวลานั่งตรวจงานแล้วทำ Highlight สีบางช่องที่สนใจเอาไว้ ทำให้สามารถเช็คหรือหาตอนหลังได้ง่ายขึ้น

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

Filter-Color

 

Filter VS Hide

Filter กับ Hide ก็เป็นการทำให้ข้อมูลมองไม่เห็นเหมือนกัน แต่มีจุดที่ต่างกันพอสมควร แต่ประเด็นที่สำคัญเวลาเราทำงานกับมันมีอยู่ 2 เรื่องที่เจอบ่อยๆ คือ 1. การ Copy ข้อมูลออกมา Paste ที่อื่น กับ 2. การ Input ข้อมูลหรือสูตรลงไปในบริเวณข้อมูลที่ Filter/Hide

การ Copy ข้อมูลออกมา Paste ที่อื่น

หากเรา Filter ข้อมูลแล้ว Copy ไป Paste ที่อื่น ข้อมูลที่ถูกกรองทิ้งจะไม่ถูก copy ไปด้วย แต่ข้อมูลที่ถูก Hide ไว้ยังถูก Copy ไปอยู่ดี (เหมือนกับตอนปกติที่ไม่มีการ Hide)

Filter Hide
ข้อมูลมีการ  “Filter เอานาย ก ออกไป”
แล้ว Copy/Paste ไปไว้ที่อื่น
ข้อมูลมีการ  “Hide เอานาย ก ออกไป”
(ไม่มีการ Filter) แล้ว Copy/Paste ไปไว้ที่อื่น
 filter-vs-hide-2  filter-vs-hide-3
จะเห็นว่ามีเส้นประขึ้นมาเป็นกรอบหลายๆ ชุด (เส้นประมีการแบ่งแยกบริเวณกัน) ซึ่งบ่งบอกว่า มีการแบ่งข้อมูลออกเป็นหลายก้อนเมื่อ Paste ลงที่อื่นแล้ว จะเหลือแค่ข้อมูลที่มองเห็นหลัง Filter จริงๆ จะเห็นว่ามีเส้นประขึ้นมาเป็นกรอบเพียงชุดเดียว (เส้นประไม่แบ่งแยกบริเวณ) ซึ่งบ่งบอกว่า ข้อมูลมีเพียงก้อนเดียวเมื่อ Paste แล้วข้อมูลที่เคยถูก Hide อยู่ก็กลับถูกแสดงออกมา ไม่เหมือนการใช้วิธี Filter ครับ

 

การ Input ข้อมูลลงไป

หากเรา Filter ข้อมูลแล้ว Input ข้อมูลลงไปในบริเวณข้างเคียง แล้วลาก Fill Handle หรือ Copy สูตรลงมา มันจะข้ามบรรทัดที่ข้อมูลถูกกรองทิ้งไป คือมีการกรอกข้อมูลแต่บรรทัดที่มองเห็นอยู่เท่านั้น แต่ข้อมูลที่ถูก Hide ไว้จะถูกกรอกข้อมูลหรือสูตรอยู่เช่นเดิม (เหมือนกับตอนปกติที่ไม่มีการ Hide)

Filter Hide
ข้อมูลมีการ  “Filter เอานาย ก ออกไป”
จากนั้นมีการกรอกข้อมูลข้างๆ แล้วลาก Copy ลงมา
ข้อมูลมีการ  “Hide เอานาย ก ออกไป” (ไม่มีการ Filter)
จากนั้นมีการกรอกข้อมูลข้างๆ แล้วลาก Copy ลงมา
กรอกข้อมูลตอน Filter เอาไว้filter-hide-input1หลัง Clear Filter

filter-hide-input2

 

กรอกข้อมูลตอน Hide เอาไว้filter-hide-input3หลัง Unhide

filter-hide-input4

จะเห็นข้อมูลขึ้นมาเฉพาะบรรทัดที่มองเห็นข้อมูล (ไม่ได้ถูกกรอกทิ้ง) เท่านั้น จะเห็นข้อมูลขึ้นมาทุกบรรทัดตามปกติ (ที่บรรทัดที่ 2 ไม่ขึ้น เพราะตอนกรอกข้อมูล ผมเริ่มที่บรรทัดที่ 3 แล้วลากลง)

 

 

Conditional Formatting เพื่อปรับรูปแบบตามเงื่อนไข

$
0
0

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


 

จะดีแค่ไหนหากเราสามารถกำหนดเงื่อนไขการใส่ Format ของ Cell ได้ตามที่ต้องการ เช่น

  • กำหนดให้สีในช่องเปลี่ยนไปโดยขึ้นอยู่กับตัวเลขที่อยู่ข้างในว่ามากหรือน้อย
  • กำหนดให้ตัวอักษรเปลี่ยนสีเป็นสีแดง เมื่อเลขในช่องน้อยกว่าค่าที่กำหนด
  • กำหนดให้เลข Top 20% ของข้อมูลทั้งหมด โดดเด่นออกมา
  • ทำให้ช่องที่มีคำว่า “แมว” เป็นสีส้ม
  • อื่นๆ อีกมากมาย

นี่เป็นตัวอย่างความสามารถของสิ่งที่เรียกว่า Conditional Formatting (การกำหนดรูปแบบตามเงื่อนไข) ที่ Excel มีให้เราใช้ครับ ซึ่งอยู่ใน [Home] –> Styles –> Conditional Formatting โดยสิ่งที่มีให้เลือกเป็นมาตรฐานมีดังนี้

  • Highlight Cells Rules : ช่องที่มีค่า มากกว่า/น้อยกว่า/มีคำที่กำหนด/หาค่าที่ซ้ำกัน
  • Top/Bottom Rules : ช่องที่เป็น Top 10 (เลขเปลี่ยนได้) ในเรื่องต่างๆ
  • Data Bars : ใส่กราฟแท่งเข้าไปเป็น Background ของช่องนั้นๆ ว่ามีค่ามากหรือน้อย
  • Color Scales ใส่สี Background ของช่องนั้นๆ ตามค่ามากน้อย
  • Icon Sets : ใส่เครื่องหมายต่างๆ เช่น ลูกศร ขึ้น/ลง ตามแต่ค่าที่อยู่ข้างในว่ามากหรือน้อย
  • New Rule…. : อันนี้ไว้กำหนดเงื่อนไขแบบ Advance ซึ่งจะพูดถึงในบทหลังๆ ครับ

connditional-formatting

วิธีการใช้งาน Conditional Formatting

  1. เลือก Cell/Range ที่ต้องการให้รูปแบบเปลี่ยนไปตามเงื่อนไข (Conditional Formatting)
  2. เลือกเงื่อนไขที่ต้องการ เช่น ผมเลือก Highlight Cells Rules –> Greater Than…–>
  • ใส่เลข 5000 ซึ่งหมายถึงจะใส่ Format ให้กับช่องที่มีค่ามากกว่า 5000
    connditional-formatting-2
  • ตรงนี้จะใส่เป็นสูตรก็ได้นะครับ เช่น =sum($D$2:$D$3) แปลว่าให้ จะใส่ Format ให้กับช่องที่มีค่ามากกว่า D2+D3 ซึ่งคือ 1000+2000 หรือ 3000 นั่นเอง
    Tips : สังเกตว่า มีการใส่ $ เพื่อ Lock สูตรไว้ด้วย ไม่งั้นสูตรจะเลื่อน เดี๋ยวจะอธิบายต่อไปอีกทีว่าเมื่อไหร่ที่ต้องใส่ หรือไม่ต้องใส่เครื่องหมาย $
    connditional-formatting-3
  1. เลือก Format ที่ต้องการว่าจะให้เปลี่ยน Format ไปเป็นรูปแบบใด ซึ่งจะมี Format เบื้องต้นให้เลือก ประมาณ 6 แบบ เช่น Light Red Fill with Dark Red Text ดังรูปข้างล่าง แต่ถ้าหากไม่พอใจ สามารถกด Custom Format… เพื่อกำหนดรูปแบบที่ต้องการได้
  2. หากต้องการใช้เงื่อนไขในขั้นตอนที่ 2 ที่ไม่มีให้เลือกในรูปแบบมาตรฐาน อ่านต่อในหัวข้อ การทำ Conditional Formatting ขั้นสูงได้เลย ครับ

การทำ Conditional Formatting ขั้นสูง

การเขียน Conditional Formatting ขั้นสูงนั้น จะเป็นการกำหนดเงื่อนไข ซึ่งใช้กรณีที่ไม่มีให้เลือกในเมนู Conditional Format แบบมาตรฐาน เช่น มีการอ้างอิงเงื่อนไขโดยไปดูที่ Cell อื่นแทนที่จะดูค่าจาก Cell ที่ต้องการจะทำการเปลี่ยน Format ตามแบบมาตรฐานที่เคยอธิบายใน Level ก่อนหน้านี้

โดยที่วิธีการกำหนดเงื่อนไขจะใช้การใส่สูตรด้วยตัวเอง มีขั้นตอนดังนี้

  • เลือก Range ที่ต้องการเปลี่ยน Format
  • กด Conditional Formatting => New Rule => Use a formula to determine which cells to format
  • ในช่องให้ใส่สูตรที่ หากว่าเป็นจริง จึงจะใช้ Format ที่กำหนดไว้
  • กด Format… เพื่อกำหนดรูปแบบที่ต้องการใช้

ซึ่งมีหลักการใส่สูตรที่สำคัญมากๆ คือ

ตรงนี้เป็นสิ่งที่คนส่วนใหญ่จะสับสนมากเวลาใช้ Conditional Formatting ในแบบ Formula ขอให้ตั้งใจให้ดีครับ หลักการคิดคือ ให้มองเหมือนการเขียนสูตรเป็นลักษณะ Relative Reference นั่นคือ

  • ช่อง Active Cell (ซึ่งปกติจะเป็นช่อง Cell ซ้ายบนสุดของ Range ที่กำลังเลือก) คือ ช่องที่จะใช้สูตรที่เราระบุ ใน ระบุใน Conditional Formatting เป๊ะๆ เลย
  • แต่ถ้าเป็นช่องอื่นใน Range ที่เลือกไว้ จะเหมือนกับการ Copy สูตรจาก Active Cell ไป Paste เลย (ซึ่งปกติแล้วเวลาคลิ๊กไปที่ Cell ต่างๆ สูตรใน Conditional Formatting จะถูกใส่เครื่องหมาย $ ไว้โดยอัตโนมัติ เพื่อไม่ให้สูตรเลื่อนไปไหน )
  • ดังนั้น ถ้าคุณต้องการให้สูตรเลื่อน คุณอาจต้องปลด เครื่องหมาย $ ออกในทิศทางการเลื่อนที่จำเป็น คุณจึงต้องวางแผนให้ดีว่าจะเขียนสูตรอ้างอิงแบบใด จึงจะได้ผลลัพธ์ตามต้องการ เพราะบางที Cell Reference บางตัวก็ต้อง Lock ไว้ บางตัวก็ต้องเลื่อน (คล้ายกับการเขียนสูตรปกติแหละครับ)

เพื่อให้เห็นภาพชัดๆ มาดูตัวอย่างกันดีกว่าครับ 

ตัวอย่าง

สมมติผมมีข้อมูลอยู่ตารางหนึ่ง คือช่อง A1:D7 ตามรูปข้างล่าง แล้วผมต้องการ Highlight ใส่พื้นหลังสีแดง  ตัวอักษรขาว และตัวหนา ให้กับทุกบรรทัดที่ เพศเป็น F ผมจะต้องทำดังนี้

  • เลือกบริเวณข้อมูลที่ต้องการใส่ Format ซึ่งในที่นี้คือ A1:D7 สังเกตว่า Active Cell คือ A1
    adv-cond-format1
  • กด Conditional Formatting => New Rule => Use a formula to determine …
  • ตอนใส่สูตร ต้องมองในมุมมองจากช่องที่เป็น Active Cell ก่อน (ในที่นี้คือ A1)
    จึงต้องใส่สูตรว่า=$B1=”F” (อย่าลืมว่าสูตรต้องให้ผลเป็นTRUE จึงจะทำตามเงื่อนไข)
    • ที่ต้องใส่สูตรเป็นคอลัทน์ B แถวที่ 1 เพราะให้มองเงื่อนไขในช่อง B ในแถวตัวเอง ซึ่ง Active Cell ตอนแรกอยู่แถวที่ 1 การมองไปยังแถวตัวเองจึงต้องเลือกแถวที่ 1
    • ที่ต้องใส่ $ หน้า B เพราะ ทุกช่อง ใน A1:D7 จะต้องมองเงื่อนไขไปที่คอลัมน์ B เหมือนกัน สรุปคือ สูตรต้องไม่เลื่อนคอลัมน์แต่ต้องเลื่อนบรรทัด จึงอ้างอิงโดย $B1
  • เลือก Format ที่ต้องการ สรุปแล้วจะได้ว่า
    adv-cond-format3

เมื่อ OK จะได้ผลลัพธ์ตามต้องการ นั่นคือ
adv-cond-format4

วิธีการทำให้มองไม่เห็นค่าที่ Error

บางครั้ง ผลลัพธ์ที่เป็น Error ก็เป็นสิ่งที่หลีกเลี่ยงไม่ได้ เช่น เมื่อใช้ฟังก์ชั่นพวก Lookup หรือพวกค้นหาข้อมูล แล้วหาข้อมูลไม่เจอแล้วจะขึ้น #N/A ในบทนี้คุณได้เรียนรู้เรื่องการใช้ Conditional Formatting ไปแล้ว ซึ่งคุณน่าจะพอเดาได้แล้วล่ะว่า Conditional Formatting สามารถช่วยเรื่องนี้ได้อย่างมาก แต่นอกเหนือจาก Conditional Formatting แล้วยังมีวิธีอื่นอีกมากมาย

ซึ่งผมจะขอสรุปวิธีทำให้มองไม่เห็น Error แบบเน้นๆ เลย ดังนี้

  1. ใช้สูตรตระกูล IF : เช่น สามารถใช้ฟังก์ชั่น IF ผสมกับ ISERROR หรือจะใช้ IFERROR เลยก็ได้ ถ้าเช็คแล้วว่า Error ก็ให้แสดงค่าเป็นอย่างอื่น เช่น 0 หรือ Blank (“”)
  2. ใช้ Conditional Formatting : เช่น อาจกำหนดให้ว่าถ้าค่าในช่องนั้นๆ เป็น Error ให้เปลี่ยนตัวอักษรเป็นสีขาว หรือสีเดียวกับพื้นหลัง เพื่อให้มองไม่เห็นตัวอักษร เป็นต้น
  3. กรณีค่า Error เกิดใน PivotTable : สามารถไปตั้งค่าใน PivotTable Options ให้แสดงค่า Error เป็น Blank ได้ ดังนี้
    pivot-option
  4. กรณีที่ต้องการให้ Print แล้วไม่เห็นค่า Error : สามารถตั้งค่าให้แสดงค่า Error เป็นค่าอย่างอื่น เช่น Blank ได้เช่นกัน

การสร้างกราฟ

$
0
0

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


 

กราฟหรือแผนภูมิที่ดีนั้นเป็นสิ่งที่ช่วยให้เราสามารถแสดงผลลัพธ์ของข้อมูลในรูปแบบที่เข้าใจง่ายขึ้น แบบว่า คนดูมองแล้วเห็นภาพ และรู้ได้ทันทีว่าข้อมูลที่เรากำลังแสดงอยู่หมายถึงอะไร ดังคำกล่าวที่ว่า “รูปภาพเพียงรูปเดียวสามารถแทนคำนับพัน” นั่นเอง

ดังนั้นกราฟหรือแผนภูมิจึงเป็นสิ่งที่จำเป็นต่อการนำเสนองานเป็นอย่างยิ่ง เพราะช่วยประหยัดเวลาในการอธิบาย และทำให้การนำเสนอน่าสนใจ และเป็นที่จดจำมากขึ้น นอกจากนี้จากการวิจัย และประสบการณ์ส่วนตัวบอกว่า คนเราจำภาพได้ดีกว่าตัวอักษรแน่นอน จริงมั๊ยครับ?

Step ของการทำกราฟ มีดังนี้

  1. Think :คิดวัตถุประสงค์ของการนำเสนอกราฟ และผลลัพธ์สุดท้ายที่อยากได้
  2. Prepare :เตรียมข้อมูล (เช่น สรุปข้อมูลจาก Data ดิบ)
  3. Create :สร้างกราฟ
  4. Customize: ปรับแต่งกราฟ

เรามาเริ่มที่ Step แรกกันเลยครับ

1. Think : คิดวัตถุประสงค์ของกราฟ และผลลัพธ์สุดท้ายที่อยากได้

วัตถุประสงค์ของการทำกราฟนั้นมีอยู่ค่อนข้างหลากหลาย ส่วนตัวของผมเองมองว่าที่สำคัญคือคุณต้องรู้ว่าอยากจะสื่อสารอะไร และคุณควรวาดภาพในใจ (หรือในกระดาษ) ก่อนว่าสุดท้ายแล้วกราฟควรจะออกมาหน้าตาแบบไหน

ดังนั้นก่อนอื่น ผมจะขอแนะนำให้รู้จักประเภทกราฟมาตรฐานใน Excel กันก่อนครับว่ามีอะไรบ้าง และแต่ละอัน เหมาะกับการทำงานแบบไหน

Column

column

การเปรียบเทียบข้อมูล

ไม่ว่าจะเป็น เทียบระหว่างแต่ละกลุ่ม, เทียบกับมาตรฐาน หรือ เป้าหมายบางอย่าง

มองเห็นง่ายกว่า Pie Chart  เยอะ เพราะสายตาคนเรามองเปรียบเทียบ แนวนอน หรือ แนวตั้ง ได้ดีกว่า เทียบองศามุมว่าแคบหรือกว้าง แต่แย่กว่า Bar Chart นิดหน่อย

บอกการแจกแจงความถี่

เพื่อให้เห็นการกระจายตัวของข้อมูล อันนี้เหมาะกับพวก Column Chart โดยอาจแบ่งช่วงให้ถี่ๆ และจัดวางให้แต่ละแท่งชิดกัน เพื่อให้กราฟออกมาคล้ายกับกราฟ Histogram มากที่สุด

บอกสัดส่วนขององค์ประกอบ

เพื่อบอกองค์ประกอบว่าแต่ละส่วนมีมากน้อยแค่ไหน (ใช้กับพวก Stacked Column Chart)

Bar

bar

การเปรียบเทียบข้อมูล

อันนี้อาจมองง่ายกว่า Column Chart เล็กน้อย

เอาไว้หลอกตา ทำ Box plot / Gantt Chart ได้

เช่นทำให้ช่องบางช่องมองไม่เห็น (ปรับ Fill Color)

Line

line

บอกแนวโน้ม

คล้ายกับ Scatter Plot มาก แต่ต่างกันตรงที่

Line Chart ทุก Series จะมองแกน X ร่วมกัน และมองเป็นแค่ Text Label (เช่น เลข 1,3,10 จะมีระยะห่างในแกน X เท่ากันหมด เพราะไม่ได้ลงตามตำแหน่ง Scale จริง)

Scatter Plot จะใช้ค่า X มา Plot ลงตามตำแหน่งแกน X ตาม Scale จริงๆ (เช่น เลข 1,3,10 จะมีระยะห่างต่างกันเพราะลงตาม Scale จริง) นอกจากนี้ยังสร้างกราฟแนวโน้ม (Trend Line) รวมถึงสมการแสดงความสัมพันธ์ได้ด้วยโดยการคลิ๊กขวา à Add Trend line

Scatter

scatter

คล้ายกับ Line Chart

การแสดงความสัมพันธ์ระหว่างตัวแปร

เช่น การแสดงความสัมพันธ์ระหว่างตัวแปร 2 ตัว อันนี้ต้อง Scatter Plot เท่านั้น โดยเราสามารถใส่ Trend Line และสมการแสดงความสัมพันธ์ได้ด้วย

บอกแนวโน้ม คาดการณ์อนาคต

อันนี้เหมาะกับการใช้ Scatter Plot แล้วใส่ Trend มาก

Pie

pie

บอกสัดส่วนขององค์ประกอบ

เพื่อบอกองค์ประกอบว่าแต่ละส่วนมีมากน้อยแค่ไหน

Area

area

มักเอาไว้ใช้เป็นเทคนิคในการหลอกตาเช่นกัน (จะพูดถึงในบทถัดไป)

Others

others

ไม่ค่อยได้ใช้ในชีวิตจริงในสถานการณ์ทั่วไปเท่าไหร่ เอาไว้ใช้ในเรื่องเจาะจงมากๆ เช่น การวิเคราะห์หุ้น ด้วย Stock Chart หรือการ Plot ความสัมพันธ์ 3 ตัวแปรด้วย Bubble Chart

2. Prepare : เตรียมข้อมูล

การเตรียมข้อมูลเพื่อการทำกราฟ หลายๆครั้ง คุณอาจต้องพึ่งพาความรู้พื้นฐานเหล่านี้ก่อน

  • Function พวกที่ใช้เพื่อการสรุปข้อมูลเช่น SUM, COUNT, AVERAGE, MAX, MIN, SUMIF, COUNTIF
  • การใช้ Sort & Filter หรือ Advanced Filter
  • การใช้ PivotTable (เป็นวิธีที่สะดวกมาก แนะนำเลย)

ปกติแล้ว คุณควรจะเตรียมข้อมูลให้เหมือนกับเตรียมฐานข้อมูลตามปกติ คือ
ใส่ข้อมูลแต่ละรายการหรือแต่ละกลุ่ม  แยกไว้คนละแถว (คล้ายกับ Record ใน Database)

  • ใส่การวัดข้อมูลในแต่ละมิติ ไว้แยกคอลัมน์กัน (คล้ายๆกับ Field ข้อมูลใน Database)
  • ปกติแล้ว Excel จะเปรียบเทียบว่า จำนวน Row กับColumn อันไหนมีจำนวนมากกว่ากัน Excel จะเอาอันนั้นไปเป็นแกน X (แนวนอน) ของกราฟให้โดยอัตโนมัติ (ถ้าจำนวนเท่ากันพอดี จะเอาข้อมูลแต่ละแถวไปเป็น Category แนวนอน )

graph-00

graph-01

3. Create : การสร้างกราฟ

มาถึงขั้นตอนนี้ก็เข้าหน้าที่หลักของ Excel แล้วล่ะครับ เมื่อมีข้อมูลเตรียมไว้ในตารางแล้ว ให้คุณลาก Selection ครอบคลุมพื้นที่ของข้อมูลทั้งหมด (หรือจะกดที่ช่อง ใดช่อง หนึ่งของข้อมูลก็ได้) จากนั้นไปที่ [Insert] –> Charts –> เลือกรูปแบบกราฟที่ต้องการ ตามที่ได้แนะนำไปข้างบน ซึ่งในที่นี้ผมเลือก Column –> 2D Column –> Clustered Column ครับ

ถ้าหลังจากสร้างกราฟแล้วยังไม่ตรงกับที่คิด…

  • เมื่อเลือกรูปแบบกราฟไปแล้ว ถ้ากราฟมันสร้างออกมาสลับแกน x แกน y คือกลับทิศกับสิ่งที่เราคิดไว้แต่แรก คุณสามารถกด (Chart)[[Design]] –> Data –> Switch Row/Column  ได้เลยครับ
  • บางครั้งเมื่อสร้างกราฟไปแล้ว แต่ภายหลังอยากจะใส่ข้อมูลเพิ่มลงไปอีก มีวิธีที่สามารถเพิ่มข้อมูลใหม่ได้ง่ายๆ นั่นก็คือ คุณสามารถกด Copy ข้อมูล (Ctrl+C) เฉพาะส่วนที่จะเพิ่มจากตาราง แล้วเลือกที่กราฟ จากนั้นกด Paste (Ctrl+V) ได้เลย
    copy-data-chart

4. Customize : ปรับแต่งกราฟ

ต่อไปเป็นขั้นตอนสุดท้าย นั่นคือการปรับแต่งกราฟ ซึ่งการที่เราจะปรับแต่งกราฟได้นั้น คุณควรจะต้องรู้จักส่วนประกอบของกราฟซะก่อนครับ

ส่วนประกอบของกราฟ

chart-component

วิธีที่ง่ายที่สุดที่จะเข้าใจส่วนประกอบของกราฟ ก็คือ ให้ไปที่ Ribbon Layout ที่อยู่ภายใต้ Chart Tools เลยครับ (ต้องเลือกที่กราฟก่อน) ในนั้นจะแบ่งออกเป็นหลายๆ หมวด ดังนี้

  • Current Selection: เอาไว้เลือกส่วนประกอบของกราฟ สะดวกมากเวลากราฟเริ่มซับซ้อน แต่ละส่วนบังกันจนใช้ Mouse เลือกไม่ถนัด  ลองคลิ๊กดูจะรู้ว่าแต่ละส่วนของกราฟเรียกว่าอะไร พอเลือกแล้วสามารถกด Format Selection เพื่อปรับแต่งส่วนนั้นได้อีก
  • Insert : เอาไว้ใส่รูปภาพ ลูกศร หรือข้อความประกอบเพิ่มเติม ซึ่งผมไม่ขอพูดถึงแล้วกัน
  • Labels : เป็นป้ายกำกับประจำกราฟ เช่น ชื่อกราฟ ชื่อแกน x (แนวนอน) ชื่อแกน y (แนวตั้ง)
  • Axes : เป็นการกำหนดองค์ประกอบพวกแกน x แกน y หรือแม้แต่แกน y หรือแกน x อันที่สอง รวมถึงเส้น Gridline ย่อยๆ ของแต่ละแกน เพื่อให้มองเปรียบเทียบข้อมูลกันได้ชัดเจน
  • Background : เป็นการกำหนดพวกพื้นหลัง เช่น สี หรือลูกเล่นเพื่อความสวยงามอื่นๆ

การปรับ Format ของ Data Series

สามารถเลือกสิ่งที่ต้องการจะปรับ แล้วไปที่ Ribbon Format แล้วใส่สี Fill หรือ สีขอบได้ตามต้องการ

โดยที่การเลือก Data Series นั้น มีเทคนิคเล็กน้อย คือ

  • ถ้าคลิ๊กซ้ายที่ Data Series ทีเดียว มันจะเลือก Data Series นั้นในทุกๆ Category เลย
  • ถ้าคลิ๊กซ้ายซ้ำอีกรอบเฉพาะบาง Category มันจะเลือกเจาะจงเฉพาะ Category นั้นๆ ได้
  • หรืออาจเลือกจาก (Chart) [[Layout]] –> Current Selection –> เลือก Dropdown ก็ได้

เทคนิคการปรับ Format Selection

คุณสามารถคลิ๊ก Format Selection ส่วนประกอบหนึ่ง แล้วเปิดหน้าต่างค้างไว้ (คุณสามารถสังเกตว่ากำลัง Format ส่วนไหนอยู่ได้จากชื่อ Windows เช่น Format Data Series)

เมื่อต้องการแก้ไขส่วนประกอบอื่น คุณสามารถไปคลิ๊กที่ส่วนประกอบอื่นๆ ของกราฟได้เลย ตัว Format Selection จะเปลี่ยนไปเองโดยอัตโนมัติ ขึ้นอยู่กับว่าเรากำลังเลือกส่วนประกอบไหนอยู่

format-selection

การปรับ Scale ของแกน X หรือ Y

ให้เลือกที่แกนที่ต้องการจะแก้ จากนั้นคลิ๊กขวา –> Format Axis

format-axis

ใน Axis Option สามารถตั้งค่าสูงสุด ต่ำสุด หรือแม้กระทั่ง ค่า Major Unit (Grid ใหญ่) และ Minor Unit (Grid เล็ก)ได้ แต่ถ้าจะปรับค่า ต้องเปลี่ยนจาก Auto เป็น Fixed ซะก่อน

ยังมี Option อื่นๆ อีกเยอะแยะ ลองเล่นดูนะครับ เช่น

  • Value in reverse order : กลับทิศของแกน
  • Logarithmic scale : เอาไว้ปรับฐานแกนเวลาข้อมูลมีตั้งแต่ค่าน้อยมาก ไปจนถึงค่าที่เยอะสุดๆ โดยการใช้ค่า Log Base ต่างๆ เช่น ฐาน 10 มาปรับนั่นเอง (คนทำงานวิทยาศาสตร์หรือวิศวกรรมศาสตร์น่าจะเป็นคนใช้ตัวนี้ครับ)
  • Display units : แถมตั้งหน่วยของตัวเลขได้ด้วยว่าต้องการเป็นหลักหน่วย หลักพัน หลักล้าน
  • Major Tick Mark : เส้นขีดแบ่ง Scale หลัก
  • Minor Tick Mark : เส้นขีดแบ่ง Scale ย่อย
  • Horizontal axis crosses : การตั้งจุดตัดแกน ว่าจะให้อีกแกนหนึ่งมาตัดแกนที่กำลัง Format อยู่ ณ ค่าที่เท่าไหร่

การเปลี่ยนประเภทกราฟ / การทำกราฟแบบ Hybrid หรือแบบลูกผสม

การเปลี่ยนประเภทกราฟ  (เปลี่ยน ทุกๆ Series )

ในกรณีนี้สามารถทำได้ง่ายๆ คือ คลิ๊กที่กราฟ แล้วไปที่ (Chart) [[Design]] –>Type –> Change Chart Type จากนั้นเลือกกราฟประเภทใหม่ที่ต้องการได้เลย อันนี้ไม่มีอะไรซับซ้อน

การทำกราฟลูกผสม

อันนี้หลักการคือ ให้เปลี่ยนประเภทกราฟให้กับข้อมูลแค่บางส่วน (บาง Series ) นั่นเอง

ในกรณีนี้มีขั้นตอน คือ ให้เลือกเฉพาะ Series ที่ต้องการเปลี่ยนประเภทกราฟ แล้วคลิ๊กขวา –> Change Series Chart Type จากนั้นเลือกกราฟประเภทใหม่ที่ต้องการได้เลย

change-type

เลือกประเภทกราฟที่ต้องการ เช่น Line Chart จะเห็นว่าเฉพาะ Series ที่เราเลือก (Max Score) เท่านั้นที่เปลี่ยนไป

change-type2

การปรับแก้แหล่งที่มาของข้อมูล (Data Source)

เราสามารถปรับแก้การเลือกใช้ Data Source โดยคลิ๊ก (Chart) [[Design]] –>Data –> Select Data จากนั้นมันจะขึ้นหน้าต่างออกมา ฝั่งซ้ายจะเป็น Data Series ที่เป็นแกน Y, ฝั่งขวาเป็นแกน X

data-source

การเพิ่ม/ลบ Data Series : ให้กด Add / Remove

จะสลับ Sequence ลำดับก่อนหลัง : อันนี้ไว้ปรับเวลากราฟบังกันได้ คือจะปรับให้อันไหนอยู่ด้านหน้า-หลัง นั่นเอง วิธีการคือให้กดลูกศรขึ้นลงข้างๆคำว่า Remove

การแก้ไขชื่อ และข้อมูลแกน X หรือ แกน Y : เลือก Data Series ที่ต้องการ แล้วกด Edit

compare-chart

การเพิ่มแกนอันที่ 2

มีประโยชน์ในกรณีที่ Data Series ในกราฟ มีค่าต่างกันมากๆ จนไม่ควรนำมา Plot บนแกนเดียวกัน เช่น มีค่าที่แสดงยอดการผลิตสินค้า (อาจมีค่าเป็นพัน) กับ %ความผิดพลาด (มีค่าแค่ไม่เกิน 100% หรือไม่เกิน 1) จึงควรจะ Plot แยกแกน Y ใช้คนละแกนกันเป็นต้นการเพิ่มแกนอันที่ 2 (Secondary Axis)

ซึ่งการเพิ่ม Secondary Axis มี 2 แบบด้วยกัน คือ เพิ่มแกน Y อันที่2 กับ เพิ่มแกน X อันที่ 2

การเพิ่มแกน Y อันที่สอง

สมมติข้อมูลของผม Data Series %Fail ซึ่งมีค่าน้อยมากๆ (เพราะเป็น %) ทำให้เวลา Plot รวมกับ Data Series ยอดการผลิตสินค้า บนแกน Y เดียวกันจะแทบมองไม่เห็น

Second-axis1

ทางแก้ไขก็คือ ผมต้องเอาค่า %ความผิดพลาด นี้ไป Plot ลงใน Secondary Y-Axis นั่นเอง

ไปให้ทำดังนี้ เลือก Series %Fail แล้ว Format Data Seriesโดยอาจเลือกจาก Dropdown ใน Current Selection แล้วกด Format Selection เพราะจิ้มเอาน่าจะยาก เพราะมองกราฟไม่เห็นด้วยซ้ำ!

selection-hard

จากนั้นใน Series Option –> เลือก Plot on Secondary Axis

Second-axis2

จะเห็นว่ากราฟแสดงออกมาแล้ว แลละมีแกน Y อันที่สองโผล่ออกมาด้วย ต่อไปก็อาจจะเปลี่ยนประเภทกราฟให้เป็นกราฟเส้นเพื่อความสวยงามอีกทีก็ได้

Second-axis3

การเพิ่มแกน X อันที่สอง

หากต้องการจะเพิ่มแกน X อันที่สอง ต้องทำหลังจากเพิ่มแกน Y อันที่ 2 ไปก่อนครับ ถึงจะมี Option โผล่มาให้เลือก โดยให้ไปที่ (Chart)[[Layout]]–> Axes –>Axes –> Secondary Horizontal Axis –> แล้วเลือกแบบที่ต้องการได้เลย

อยาก Plot กราฟจาก Cell ที่ซ่อนอยู่ ทำยังไงดี?

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

hide-1 hide-2

สามารถแก้ไขได้ง่ายๆ ดังนี้ครับ

  1. เลือกที่กราฟที่เราต้องการแก้ไข แล้ว คลิ๊กขวา–> Select Data…
  2. เลือกปุ่ม Hidden and Empty Cells
  3. ติ๊ก Show data in hidden rows and columns แล้วกด OK

hide-3

hide-4

คำแนะนำในการสร้าง Chart ที่ดี

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

  • เลือกกราฟ Basic ที่สุดถ้าเป็นไปได้: ผมไม่แนะนำให้ใช้กราฟในรูปแบบที่ประหลาดๆ โดยเฉพาะพวกกราฟ 3 มิตินะครับ เพราะนอกจากจะดูรกแล้ว ยังหลอกตาสุดๆ อีกด้วย
  • ลบสิ่งที่ไม่จำเป็นออก ในกราฟที่มีทั้ง Legend และ คำบรรยายใต้ Series ซึ่งซ้ำซ้อนกัน ให้ลบอันใดอันหนึ่งทิ้งไป (ผมมักจะเลือกลบ Legend ทิ้ง เพราะต้องกวาดสายตาไปดู ทำให้ไม่สะดวก
  • พยายามอย่าใส่ข้อมูลหลาย Series พร้อมๆ กันมากเกินไป เช่น อย่าใส่เกิน 2 อัน เพราะจะเริ่มดูไม่รู้เรื่องแล้ว แต่ก่อนผมก็เคยเป็นพวกบ้ายัดข้อมูลมาก่อนครับ แต่เชื่อผมเถอะว่ามันไม่ Work!
  • หากข้อมูลมีหลายกลุ่ม แล้วต้องการเปรียบเทียบกัน ให้พยายาม Group รวมกลุ่มที่ไม่สำคัญเข้าด้วยกันก่อน
  • อย่าใส่สีเยอะเกินไป การใส่สีเยอะๆ ทำให้คนอ่านไม่รู้จะเลือกดูตัวไหนดี กราฟที่ดีควรจะดูจากระยะไกลแล้วก็พอเห็นภาพได้เลย ถ้าเป็นไปได้ควรเน้นใส่สีเด่นๆ ที่ข้อมูลที่สำคัญเท่านั้น ข้อมูลอื่นๆ อาจใช้โทนสีเทาไปเลยก็ยังได้
  • ใส่คำบรรยายให้กราฟด้วย หากคุณไม่บอกผู้อ่านให้ชัดว่ามันคือกราฟอะไร แต่ละแกนคืออะไร ผู้อ่านกราฟอ่านดูกราฟไม่รู้เรื่องเลยก็ได้
การทำกราฟที่ไม่ดี การทำกราฟที่ดีกว่า
 bad-chart  good-chart

 

การนำกราฟไปใช้ใน Powerpoint

ในสถานการณ์ส่วนใหญ่ของชีวิตคนทำงาน คุณมักจะต้องทำกราฟต่อเมื่อคุณต้องนำเสนองานบางอย่างต่อเจ้านาย และการนำเสนอนั้นก็มักจะต้องใช้โปรแกรมยอดฮิตอย่าง Powerpoint ด้วย!

แต่ผมพูดตามตรงว่าการทำกราฟใน Powerpoint มันไม่สะดวกเท่า Excel หรอกครับ แม้ว่ามันจะเปิดตาราง Excel มาให้กรอกก็เถอะ เพราะเวลา Add กราฟใน Powerpoint 1 อัน มันก็จะเปิด Excel ขึ้นมาใหม่ 1 ไฟล์เพื่อ Support ข้อมูลสำหรับกราฟนั้นๆ ซึ่งทำให้มีไฟล์กราฟเยอะแยะกระจัดกระจายมาก ดังนั้นผมแนะนำว่าคุณควรจะสร้างกราฟใน Excel ให้เสร็จแล้วค่อยเอาไปใช้ใน Powerpoint จะดีกว่าครับ

หากเป็น Powerpoint รุ่นเก่าๆ ผมอยากจะแนะนำวิธี Copy กราฟจาก Excel แล้วไปเลือกใน Powerpoint แล้วค่อย Paste Special –> Paste Link จะได้รูปกราฟที่เหมือน Excel ที่สุด (แต่แก้ไขใน Powerpoint ตรงๆไม่ได้) และยัง Update ค่าตาม เวลาคุณเปลี่ยนข้อมูลใน Excel ด้วย

pastelink

แต่หากเป็น Powerpoint รุ่นใหม่ๆ แล้ว เมื่อคุณกด Paste กราฟลงไปตรงๆ ข้อมูลก็ยังสามารถ Link กับ Excel ต้นฉบับได้อยู่ แถมยังสามารถเปลี่ยนรูปแบบและสีสันต่างๆ ใน Powerpoint ให้เข้ากับ Theme ของ Presentation ได้อีกด้วย (Link ข้อมูลจาก Excel แต่รูปแบบกราฟไปทำใน Powerpoint)

Intro to Excel Slide

$
0
0

เป็น Slide ที่ใช้สอนเพื่อปูพื้นฐาน Excel ให้กับนักศึกษาจบใหม่ และผู้ที่สนใจ ใน Event CareerVisa Boot Camp – Excel Training ที่จัดโดย CareerVisa Thailand ครับ เอามา Post เผื่อแฟนเพจคนอื่นๆด้วย

วิธีการสร้าง Filter มากกว่า 1 ตารางใน 1 Sheet

$
0
0

table-filter-0

ปกติแล้วถ้าเรา Filter ข้อมูล…
ไม่ว่าจะกดจาก [Home]–>Editting –> Sort & Filter –> Filter
หรือว่าจะกดจาก [Data]–> Sort & Filter –> Filter ก็ตาม
เราจะสามารถทำได้ทีละตารางต่อ 1 sheet เท่านั้นครับ (พอเลือกอีกอัน อันแรกก็จะหายไป)

คำถาม คือ เราสามารถทำ Filter มากกว่า 1 ตารางต่อ 1 Sheet ได้หรือไม่?

คำตอบ คือ แม้เราใช้ Filter ตรงๆ ไม่ได้ แต่เราใช้เครื่องมืออื่นมาช่วยได้ นั่นก็คือ การใช้เครื่องมือ Table นั่นเองครับ

table-filter

วิธีทำก็ง่านแสนง่ายครับ นั้นก็คือ ให้คลิ๊กเลือกช่องที่อยู่ในตารางที่เราต้องการจะ Filter แล้วกด Ctrl+T เพื่อสร้าง Table แต่อย่าลืมเช็คความครอบคลุมให้ดีก่อนกด Ok ล่ะ โดยคุณสามารถทำวิธีนี้กี่ตารางก็ได้ตามใจชอบครับ

ที่นี้คุณก็จะสามารถสร้างตารางที่มีหัว Filter ได้มากกว่า 1 อันต่อ 1 sheet แล้วล่ะครับ!!

สารพัดวิธีนับข้อมูลแบบไม่ซ้ำกันในคอลัมน์

$
0
0

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

สถานการณ์ของเราคือ…

สมมติว่าเรามีข้อมูลอยู่ตารางหนึ่ง เป็นตารางการขายของในช่วงเดือนที่ผ่านมา…
ลักษณะข้อมูลคือ 1 บรรทัดเป็น 1 order ซึ่งแต่ละ order ก็จะมี Sales นักขายกำกับอยู่ว่าชื่ออะไร

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

สมมติข้อมูลเป็นแบบนี้ (มีแค่ 10 บรรทัดพอ) => distinct-count

distinct-data

ถ้าเราเจอปัญหาแบบนี้ จะแก้ไขได้ยังไงมาดูกันครับ!

วิธีที่ 1 : ใช้ PivotTable

วิธีนี้ง่ายสุดๆ นั่นคือให้สร้าง PivotTable ลากสิ่งที่เราต้องการจะนับแบบไม่ซ้ำไปที่ Row Label แค่นี้มันก็จะ List item แบบไม่ซ้ำกันมาให้แล้วครับ ซึ่งถ้าจะนับ จะลากเม้าส์แล้วดูที่ Status Bar หรืออาจใช้ COUNTA มาช่วยอีกทีก็ได้ครับ ซึ่งจะได้ 4 คนครับ

แต่วิธีนี้ก็มีข้อเสียคือ ต้องคอย Refresh Pivot หากข้อมูล Source Data เปลี่ยนนั่นเองครับ

distinct-pivot

จะลาก item มานับจำนวนว่าแต่ละ sales มี order กี่ครั้งด้วยก็ได้

distinct-pivot2

วิธีที่ 2 : ใช้ Remove duplicates

วิธีนี้ค่อนข้างลูกทุ่งครับ ให้ Copy คอลัมน์ที่ต้องการออกมา แล้วไปที่เครื่องมือ [Data] –> Data Tools –> Remove Duplicates จากนั้น ok เป็นอันจบ

remove-dup

remove-dup2

วิธีที่ 3 : ใช้ Advanced Filter ก็ได้

วิธีนี้ง่ายเหมือนกัน คือ ไปที่ [Data] –> Sort & Filter –> Advanced แล้ว ต้องติ๊ก Unique records only แล้วเลือก copy to โดยใส่ชื่อ Field ที่ต้องการจะ list แบบไม่ซ้ำ
distinct-advfilter

distinct-advfilter2

แต่มีข้อเสียคือ ถ้าข้อมูลเปลี่ยน ต้องกดใหม่ทุกครั้ง ซึ่งในระยะยาวถือว่าไม่ค่อยเหมาะครับ

วิธีที่ 4 : ถ้ายอมให้ Sort ได้ใช้ IF ก็ได้นะ

วิธีนี้ค่อนข้างง่ายครับ แต่มีข้อจำกัดคือ คุณต้องเรียงคอลัมน์ที่คุณจะนับซะก่อนครับ

พอเรียงแล้ว เราก็แค่เช็คว่า “ถ้าช่องที่อยู่ติดกันข้างบนมันซ้ำกันกับบรรทัดตัวเอง ก็ไม่ต้องนับ”
พอนึกถึงคำว่า ถ้า เราก็ใช้ IF มาเช็ค เช่นดังนี้ครับ

distinct-if2

วิธีที่ 5 : ถ้าไม่ให้ Sort ก็ใช้ COUNTIF ซิ

ถ้าข้อมูลของเราไม่สามารถ Sort ได้ เช่น ถ้า Sort ปุ๊ป VLOOKUP พัง หรือ Sort แล้วทำให้กรอกข้อมูลลำบาก เราก็ต้องใช้วิธีอื่น เช่น COUNTIF ครับ

ซึ่ง COUNTIF จะเป็นการนับว่าใน range มีคำที่เราสนใจ (ตั้งว่าเป็น criteria) อยู่กี่ตัว?

หากเราลองเขียนดูจะได้ดังนี้

distinct-countif

มันก็นับออกมาจริงๆ นั่นแหละว่าแต่ละบรรทัดมีตัวซ้ำกันกี่ตัว…
เช่น
สมเทพ แต่ละบรรทัดจะนับได้ 4 ตัว ซึ่งเลข 4 นี้ก็จะโผล่ขึ้นมา 4 รอบ ทั้งๆ ที่จริงๆ ต้องนับแค่ 1 เอง
สมหญิง แต่ละบรรทัดจะนับได้ 2 ตัว ซึ่งเลข 2 นี้ก็จะโผล่ขึ้นมา 2 รอบ ทั้งๆ ที่จริงๆ ต้องนับแค่ 1 เอง

แล้วเราจะกำจัดตัวที่เกินยังไงดี?

ถ้า 4 + 4 + 4 + 4 เราต้องทำให้เป็น แค่ 1… แปลว่าแต่ละอันเราต้องหารด้วย 4 ถึง 4 ครั้งนั่นเอง ( 4×4 หรือ 4^2)

= E2/(E2^2) = 1/E2 หรือ = 1/COUNTIF($C$2:$C$11,C2) นั่นเองครับ

ซึ่งพอ SUM รวมกันก็จะได้ 4 อยู่ดี!

distinct-countif2

แต่จะเห็นว่าวิธีนี้เอาไว้หาจำนวนนับว่ามีกี่ตัวที่ไม่ซ้ำ แต่ไม่สามารถคัดเลือกมาโชว์มาอย่างละบรรทัดได้ (ไม่ได้ flag 1, 0 แบบการใช้ IF ข้างบน)

วิธีที่ 6 : ใช้ COUNTIF แบบ Array Formula

วิธีนี้คล้ายๆ กับวิธีข้างบนแหละครับ ถ้าสังเกตุคือ วิธีข้างบน = 1/COUNTIF(xxx) แล้วเอาผลลัพธ์มาบวกกัน

แต่แทนที่เราจะให้ผลลัพธ์มันแสดงแยกช่องกัน แล้วค่อยเอามาบวกทีหลัง คราวนี้เราจะใช้การเขียนสูตรแบบ Array เพื่อให้ทุกอย่างอยู่ในช่องเดียว เช่น =1/COUNTIF(data_range,data_range)

=1/COUNTIF(C2:C11,C2:C11)
ไอ้ตรงสีแดงเนี่ย ปกติต้องการแค่ค่าเดียว แต่นี่เราใส่เป็น Range เลยเพื่อให้ได้ค่าแบบ Array

ถ้าลองลากแล้วกด F9 จะเห็นแบบนี้ครับ
=1/{4;4;2;2;4;2;4;2;2;2}
={0.25;0.25;0.5;0.5;0.25;0.5;0.25;0.5;0.5;0.5}

นั่นแสดงว่าถ้าเรารวบตอนจบด้วย SUM ก็จะได้ 4 เช่นกัน นั่นคือ =SUM(1/COUNTIF(C2:C11,C2:C11)) แต่เราต้องกด Ctrl+Shift+Enter ด้วยเพราะเป็นการเขียนสูตรแบบ Array Formula

แต่ถ้าเราเปลี่ยน SUM เป็น SUMPRODUCT เราจะกด Enter ได้ตามปกติ เพราะ SUMPRODUCT รองรับการเขียนแบบ Array ในตัวอยู่แล้ว

ถ้างั้นผมก็สามารถเขียนสูตรแบบ Array ได้ว่า  =SUMPRODUCT(1/COUNTIF(data_range,data_range)) หรือ =SUMPRODUCT(1/COUNTIF(C2:C11,C2:C11)) ก็จะได้ 4 เช่นกันครับ

distinct-sumproduct

แต่จะเห็นว่าวิธีนี้เอาไว้หาจำนวนนับว่ามีกี่ตัวที่ไม่ซ้ำ แต่ไม่สามารถคัดเลือกมาโชว์มาอย่างละบรรทัดได้ (ไม่ได้ flag 1, 0 แบบการใช้ IF ข้างบน)

วิธีที่ 7 : ใช้ COUNTIF แต่ Flag 1, 0 ทำไง?

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

distinct-countif-notdup

ทีนี้ก็ใส่เงื่อนไขเพิ่ม ว่าถ้านับแล้วมากกว่า 1 ก็ให้เป็น 0 ไปซะ เพราะแสดงว่าซ้้ำแล้ว

distinct-countif-notdup2

วิธีที่ 8 : ใช้ฟังก์ชั่น FREQUENCY

ฟังก์ชั่นนี้เป็นฟังก์ชั่นที่ไม่ค่อยมีคนใช้เป็นเท่าไหร่ แถมเป็นฟังก์ชั่นประเภท Array ด้วย ผมจึงต้องขอโอกาสนี้แนะนำการใช้งานของมันคร่าวๆ ให้ดูก่อนแล้วกันครับ

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

=FREQUENCY(data_array,bins_array)
=FREQUENCY(ช่วงข้อมูล,ช่วงค่าขอบบน)

  • ช่วงข้อมูลผมคือ A2:A9 อันนี้ไม่มีอะไรแปลก
  • ส่วนค่าขอบบนของกลุ่มเป็น C2:C5 ซึ่งมีค่า 1, 3, 5, 10 มีความหมายดังนี้
    • กลุ่มแรก <=1
    • 1<กลุ่มสอง<=3
    • 3<กลุ่มสาม<=5
    • 5<กลุ่มสี่<=10
    • กลุ่มสุดท้าย >10 (ถ้าต้องการกลุ่มนี้ต้องลากเผื่อไปอีก 1 ช่อง)

เนื่องจาก FREQUENCY เป็นฟังก์ชั่นประเภท Array ดังนั้นวิธีเขียนต้องลากช่วง Range ที่จะแสดงผลลัพธ์ก่อน แล้วค่อยเขียนสูตร จากนั้นค่อยกด Ctrl+Shift+Enter

frequency

ซึ่งถ้าเราใส่ช่วงค่าขอบบนซ้ำกัน มันจะแสดงแค่อันแรกอันเดียว อันอื่นจะเป็น 0 หมด

frequency2

ทีนี้ถ้าเราลองให้ bin_array เป็นค่า data_array ไปเลยล่ะ จะเกิดอะไรขึ้นมาดูกัน?

frequency3

ทีนี้แปลว่าเราเอาความสามารถนี้มาประยุกต์ใช้ได้ หากใช้ IF เช็คว่า FREQUENCY มันนับ >0 แปลว่าเป็นตัวที่ไม่ซ้ำนั่นเอง เราจะนับเป็น 1 แต่ถ้านับได้ 0 เราก็แสดงเป็น 0 ไป

ซึ่งเราจะเขียน IF หรือ จะใส่ให้เป็น TRUE/FALSE แล้วแปลงเป็น 1,0 ด้วยการใส่ — ครอบไปก็ได้

frequency4fix

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

frequency5

แต่ถ้าข้อมูลที่ต้องการนับเป็น Text มันจะต้องพลิกแพลงมากหน่อยครับ ( ค่อนข้าง Advanced มาก)

Concept ก็คือ เราต้องแปลง Text ให้กลายเป็นเลขซะก่อน โดยใช้ MATCH แบบ Exact Match มาช่วย
ซึ่งการหาตำแหน่งแบบ Exact match จะได้ตำแหน่งผลลัพธ์แรกสุดมาเท่านั้น เช่น

frequency6

จากนั้นเราก็ใช้ FREQUENCY ได้แล้ว เพราะทุกอย่างกลายเป็นเลข ตัวไหนที่ซ้ำกันก็จะแสดงเป็นตำแหน่งแรกเหมือนกันหมด

frequency7

วิธีที่ 9 : ใช้ Measure ในเครื่องมือ PowerPivot

วิธีนี้เป็นการใช้เครื่องมือ PowerPivot ที่สามารถใช้ได้ตั้งแต่ Excel 2010 ขึ้นไป แต่หลายคนอาจยังไม่เคยลองใช้ แต่จริงๆ แล้วมันทรงพลังมากๆ ครับ เพราะเราสามารถใส่สูตรคำนวณซับซ้อนลงไป (เรียกว่า Measure) แล้วหมุนด้วยเครื่องมือคล้ายๆ PivotTable ได้เลย พูดง่ายๆ คือ แทนที่จะสรุปข้อมูลด้วยฟังก์ชั่นพื้นฐานอย่าง SUM COUNT AVERAGE ที่ทำใน PivotTable ถ้าคุณเปลี่ยนไปใช้ PowerPivot คุณจะสร้างสูตรซับซ้อนแค่ไหนมารองรับก็ได้!! (แต่อาจต้องเรียนรู้ฟังก์ชั่นของ PowerPivot เพิ่มนิดหน่อย)

แต่ในเคสนี้ ไม่ต้องใช้สูตรอะไรยากมากมาย

ขั้นแรก ให้สร้าง Measure โดยใส่สูตรที่ต้องการก่อน

powerpivot

ถ้าเป็น PowerPivot version ใหม่ๆ หน่อย ก็จะมีฟังก์ชั่น DISTINCTCOUNT ให้เลย สามารถเขียนว่า 
=DISTINCTCOUNT(Table1[Sales]) เท่านี้ถือว่าจบเลยครับ!!

แล้วมันก็จะกลายเป็น Field List ตัวใหม่ ให้ลากไปอยู่ใน Value ของ PowerPivot ได้เลย ซึ่งมันนับไม่ซ้ำจริงๆ เอาไปประกอบกับ FieldList อื่นๆ อย่างวันที่ได้อีก เจ๋งสุดๆ

powerpivot2

วิธีที่ 10 : คุณล่ะว่าไง?

จริงๆ แล้วผมว่า Excel ยังมีวิธีนับอีกเยอะแยะครับ แล้วแต่จินตนาการของคุณแล้วล่ะ! ใครมีเทคนิคการนับอะไรดีๆ ก็แชร์ให้คนอื่นได้เรียนรู้ได้นะครับ

10 ข้อคิดจากเกมออนไลน์ ใช้พัฒนาความก้าวหน้าทักษะ Excel

$
0
0

ใครว่าเกมไร้สาระ ผมขอเถียงเลยด้วยบทความนี้ มันให้ข้อคิดดีๆ มากมาย มีอะไรบ้างมาดูกันครับ!

Life is a Game

ผมเห็นด้วยเต็มๆ กับคำพูดนี้ โดยเฉพาะอย่างยิ่งช่วงที่ผมเริ่มฝึกฝนการใช้ Excel ใหม่ๆ ผมรู้สึกว่าผมกำลังเล่นเกม Online RPG อยู่ชัดๆ

มันทำให้ผมนึกย้อนกลับสมัยที่ผมเรียนมหาวิทยาลัย (ซัก 10 กว่าปีที่แล้ว…) ช่วงนั้นเกมออนไลน์ที่ชื่อว่า Ragnarok Online กำลังดังมากๆ  และผมก็เป็นหนึ่งคนที่ติดเกมนี้เข้าอย่างจัง ซึ่งพอมาถึงในยุคปัจจุบันแล้วมองย้อนกลับไป ยิ่งเห็นชัดว่าการพัฒนาของตัวละครของเราในเกมมันเหมือนกับการพัฒนาตัวเองในชีวิตจริงมากแค่ไหน

ซึ่งผมขอสรุปข้อคิดดีๆ ที่ได้จากการเล่นเกมมาให้ ว่าเราจะเอามาปรับใช้กับการพัฒนาทักษะของเราในชีวิตจริง รวมถึงเรื่องของการพัฒนาฝีมือ Excel ของเราได้ยังไง มีอะไรบ้าง มาดูกันเลย!

1. ค้นหาเป้าหมายของชีวิต

 

question

Credit รูป : http://rostory.irowiki.org/letters/friends/page2/

ในเกม Online RPG นั้นมีลักษณะเด่นอย่างหนึ่งที่ต่างจากเกมทั่วไป นั่นก็คือ มันไม่มีเป้าหมายที่ชัดเจนที่จะบอกว่าเราต้องทำอะไรถึงจะเรียกว่า “ชนะเกม” ได้ แต่ละคนต้องหาเป้าหมายของตัวเอง กำหนดชีวิตตัวเองว่าวันๆ จะทำอะไรบ้าง?

 

บางคนก็คิดเป้าหมายว่าต้องจัดการ Boss ให้ได้ บางคนก็อาจตั้งเป้าว่าต้องพัฒนาตัวเองให้เก่งจนไปถึง Level 99 ให้ได้ บางคนอาจแค่อยากเจอเพื่อนดีๆ มิตรภาพดีๆ ก็พอแล้ว

marriage_3-fix

Credit รูป : http://www.playragnarok.com/news/updatedetail.aspx?id=144

ในชีวิตจริงก็เช่นกัน มันไม่มีใครกำหนดให้เราชัดเจนหรอกว่า ชีวิตเราต้องทำอะไร ถึงจะเรียกว่า “สำเร็จ” มันเป็นสิ่งที่เราต้องนิยามให้ตัวเอง กำหนดชีวิตตัวเองทั้งนั้น การฝึกฝน Excel ก็เหมือนกัน สุดท้ายแล้วคุณอยากจะใช้ Excel ได้เก่งแค่ไหน ใช้ทำอะไร มีเป้าหมายอะไร มันเป็นเรื่องของแต่ละคนล้วนๆ

แต่ที่สำคัญที่สุดคือ คุณควรจะต้องมีเป้าหมาย และเป้าหมายที่ดีควรทำให้คุณตื่นเต้นหรือมีความสุข และอยากจะก้าวไปให้ถึงเป้าหมายนั้นในทุกๆ วัน ดังนั้น ถ้ายังไม่มี อย่าลืมคิด Mission ของคุณด้วย!

2. สายอาชีพ

ต้องเล่าแบบนี้ครับ ในเกม RPG ส่วนใหญ่ตัวละครที่เราเลือก ท้ายที่สุดแล้วจะสามารถพัฒนาจนมีความสามารถที่แตกต่างกัน โดยจะแบ่งเป็น “สายอาชีพ” ต่างๆ ซึ่งอาจมีอาชีพขั้นพื้นฐานก่อนแล้วค่อยเติบโตไปเป็นอาชีพขั้นสูง

Job_tree_girl

Credit รูป : http://www.class2-juti.com/feed/3.html

ซึ่งการใช้ Excel ก็มีลักษณะคล้ายๆ สายอาชีพเช่นกัน แต่ผมขอเรียกว่า “สายทักษะ” แทน และมันก็มีสายทักษะขั้นสูงด้วย ซึ่งผมขอแบ่งออกเป็น 4 ทักษะขั้นสูงดังนี้

excel-class

  • Master of VBA : เน้นการแก้ปัญหาด้วยการเขียนโปรแกรมเป็นหลัก ซึ่งคนสายนี้จะทำสิ่งมหัศจรรย์ที่คนทั่วไปมักร้องว้าว! เพราะ VBA ทำได้ทุกอย่างที่คนนั่งถึกๆ ทำได้เหมือนกับเสกเวทย์มนตร์ และยังสามารถทำในสิ่งที่การเขียนสูตรทำไม่ได้อีกด้วย แต่ติดข้อจำกัดตรงที่เป็นกลุ่มทักษะที่ต้องการ Skill ต่างไปจากทักษะ Excel ดั้งเดิมมากที่สุด ทำให้เรียนรู้ยาก และในบางสถานการณ์จะถูกห้ามใช้พลัง VBA โดยสิ้นเชิงเลย (บางทีคนก็ไม่ยอมให้สร้างไฟล์ที่มี VBA)
  • Master of Array Formula : สายที่เน้นการใช้สูตรคำนวณ เก่งการใช้สูตรในการแก้ปัญหามาก สามารถใช้ Array Formula ได้อย่างคล่องแคล่ว คนกลุ่มนี้สามารถรับภารกิจลุยไปได้เกือบทุกพื้นที่ เพราะไม่มีความน่ากลัวแอบแฝงเหมือนกลุ่มนักเขียนโปรแกรม (ไม่ติดข้อจำกัดเรื่องที่ว่าห้ามใช้ VBA)
  • Master of PowerPivot : สายนี้เน้นการวิเคราะห์ข้อมูลเป็นหลัก ชอบลุยกับข้อมูลจำนวนมาก  มีความเชี่ยวชาญด้านการใช้พวก PowerPivot, DAX Formula/DAX Pattern, Power BI ซึ่งเป็นสุดยอดเครื่องมือในการวิเคราะห์ข้อมูลที่ Excel มีมาให้ด้วย ซึ่งแนวโน้มความต้องการในยุคนี้น่าจะมาแรงมากจากความต้องการเรื่องของ Big Data
  • Master of Visualization : สายนี้เน้นการสร้างแผนภูมิ กราฟ หรืออะไรก็ได้ที่ทำให้ข้อมูลที่เดิมดูเข้าใจยาก กลับดูง่ายขึ้น ซึ่งนอกจากทักษะด้าน Excel โดยรวมที่ดีแล้ว คนกลุ่มนี้จะต้องมีทักษะด้านการนำเสนอที่ดีด้วย ซึ่งยิ่งข้อมูลเยอะ ยิ่งต้องอาศัยการย่อยเพื่อนำเสนอที่ดี ดังนั้น
  • Super Novice : เน้นใช้ความรู้พื้นฐานของ Excel ทำงานเพียงอย่างเดียว แต่ใช้อย่างลึกซึ้ง พยายามขุดความสามารถที่มีของ Excel ดั้งเดิมออกมาอย่างเต็มที่ คนที่มาสายนี้มักมีความเฉลียวค่อนข้างสูง และรู้จักการพลิกแพลงเพื่อหาคำตอบเป็นอย่างดี เช่น ไม่จำเป็นต้องหาคำตอบด้วยวิธีตรงๆ ซึ่งอาจต้องใช้ VBA หรือ Array Formula แต่คนสายนี้อาจแค่สร้างคอลัมน์ช่วย (Helper Column) สุดท้ายก็ทำงานได้เหมือนกัน
  • สายอื่นๆ :  คุณคิดว่ามีอะไรบ้างช่วย Comment บอกทีครับ ^^

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

อย่างไรก็ตาม เรื่องของ Demand/Supply ก็เป็นอีกหนึ่งปัจจัยที่ต้องคำนึงถึง เพราะหากสุดท้ายในโลกที่คุณอยู่มีสายอาชีพ/สายทักษะที่คุณเลือกเต็มไปหมดเลย Supply ก็จะเยอะเกินความต้องการ บางทีคุณไปเลือกเป็นสายอาชีพที่ไม่ค่อยมีคนเลือก อาจจะเป็นที่ต้องการมากกว่าก็ได้

แต่คุณไม่จำเป็นต้องเก่ง Excel ไปพร้อมกันหมดทุกสายทักษะ ผมเชียร์ให้คุณเก่งทีละด้านไปเลยดีกว่า เอาให้สุด!! เพื่อให้เป็น Expert ไปเลย ถ้าคิดว่าเรียนรู้สุดแล้ว ค่อยลองหันมาเรียนรู้สายอื่นเพิ่มเติมทีหลังก็ได้

3. Skill Tree

การจะมุ่งไปสู่สายอาชีพต่างๆ ได้จะมีสิ่งที่เรียกว่า Skill Tree ซึ่งเป็นเหมือนแผนที่ คอยบอกว่าหากคุณต้องการจะพัฒนาทักษะเจ๋งๆ ในปลายทางแล้ว คุณจะต้องผ่านทักษะอะไรก่อนบ้าง 

acolyte

Credit รูป : http://scottandmona.com/photographyyku/.c/9/1/Ro%20Skill%20Tree.html 

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

 

skill-tree-comparison3

แต่ในความเป็นจริงแล้วการจัดทักษะมันมองลึกลงไปกว่านี้ได้อีกเยอะ เช่น การใช้ IF อาจต้องแบ่งเป็นหลาย Level ตั้งแต่ การเข้าใจ Logic TRUE/FALSE, การเขียน IF ขั้นเดียว, การผสม TRUE/FALSE หลายๆตัวเข้าด้วยกัน, การเขียน IF ซ้อน IF เป็นต้น

ซึ่งทุกฟังก์ชั่น ทุก Skill สามารถลงลึกไปได้หลาย Level เช่นเดียวกัน โดยเฉพาะเวลาขึ้นสายทักษะขั้นสุดยอดอย่างพวก VBA, Array Formula, PowerPivot ยังมีเรื่องที่ต้องเรียนรู้อีกเป็นพวง (เหมือนกับการขึ้น Job ใหม่ในเกมนั่นแหละครับ)

4. เก็บประสบการณ์

การจะไปถึงเป้าหมายในเกมนั้น คุณจะต้องมีความสามารถและเก่งพอที่จะผจญภัยไปยังดินแดนแสนอันตรายได้ แน่นอนว่าตอนเข้าเล่นเกมใหม่ๆ คุณเป็นเพียงมือใหม่ (Novice) ที่ค่อนข้างไร้ความสามารถ ทำอะไรก็ไม่เป็น (แต่ก็มักมีคนเก่งๆ มาช่วยนะ)

คุณจะเก่งขึ้นได้โดยการสู้กับศัตรูเพื่อเก็บค่าประสบการณ์ (แท่งสีฟ้าๆ 2 อันล่างในรูป) ซึ่งถ้าเก็บได้มากพอก็จะเกิดปรากฏการณ์ที่เรียกว่า Level up! ขึ้น แล้วคุณก็จะเก่งกว่าเดิมพอสมควรเลยล่ะ!

levelup

Credit รูป : http://rostory.irowiki.org/lockeypoo/friends/

ในการฝึก Excel ก็เช่นกัน มันไม่มีใครเก่งมาตั้งแต่แรกหรอกครับ คนเราต้องค่อยๆ ฝึกฝน เจอปัญหาง่ายๆ ก่อน พอเก็บประสบการณ์มากพอก็สามารถที่จะลองลุยปัญหาที่ยากขึ้นเรื่อยๆได้

เมื่อคุณ Level Up! ไปสูงขึ้นแล้ว ยิ่งต้องใช้แต้มประสบการณ์มากขึ้นเรื่อยๆ ในการที่จะ Level Up! ไปขั้นถัดไปได้ ใน Excel ก็เช่นกัน หากคุณเก่งขึ้นในระดับหนึ่งแล้ว คุณต้องหาอะไรที่ท้าทายมากๆ ทำ ไม่งั้นคุณจะ Level Up! ช้ากว่าที่ควรจะเป็นมาก

จุดต่างที่สำคัญในประเด็นนี้คือ ในเกมไม่ว่าจะฝึกอะไรก็ตาม เราก็สามารถเลือกไป Level Up ทักษะอีกอย่างที่ต้องการได้

แต่ในชีวิตจริง อยาก Level Up! เรื่องไหนก็ต้องฝึกฝนเรื่องนั้น เช่น ใน Excel คุณอยากเก่งเรื่อง VLOOKUP คงไม่สามารถไปฝึกจากการเขียน IF บ่อยๆ ได้หรอกนะครับ!

5. ทุกการฝึกฝนมีค่าเสมอ

Up-Stat

Credit รูป : http://reg.ragnarok.in.th/ro_guide/chap2/chap2_5.html

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

แต่ผมอยากให้คิดไว้เสมอว่า “ทุกการฝึกฝนมีค่าเสมอ” แม้ปัญหาที่คุณกำลังแก้อยู่ จะไม่ได้ทำให้คุณ Level Up! ทันที แต่ผมมั่นใจว่าคุณต้องได้รับค่าประสบการณ์ไปสะสมเรียบร้อยแล้วแน่นอน ซึ่งถ้าสะสมมากพอ การ Level Up! จะต้องเกิดขึ้นอย่างแน่นอน

ดังนั้นให้คุณจินตนาการเลยว่า ทุกครั้งที่คุณฝึกฝนตัวเอง แต้มตัวเลขประสบการณ์บนหัวของคุณมันจะค่อยๆ เด้งเพิ่มขึ้นอย่างแน่นอน !! รอวันที่จะ Level Up! ได้เลย

6. เพื่อนและมิตรภาพ

ไม่มีอะไรแย่ไปกว่าการเดินทางคนเดียวเพียงลำพัง เพราะมันทั้งเหนื่อยและน่าเบื่อ… แม้บางคนจะชอบลุยเดี่ยว ทำงานคนเดียวได้ แต่ผมเชื่อว่ามันทำได้ก็แค่ในฉากที่มันไม่โหดร้ายเกินไปเท่านั้นแหละ หากคุณต้องบุกลงไปใน Dungeon แสนโหดร้ายเพียงคนเดียว โอกาสรอดกลับมาก็ยาก

และบางทีคุณอาจต้องตัดสินใจเลือกพัฒนาทักษะแบบเป็ดๆ เพื่อเอาชีวิตรอดด้วยตัวคนเดียวได้ ทำให้ไม่มีโอกาสพัฒนาไปสุดซักด้าน ซึ่งเป็นเรื่องที่น่าเสียดายมาก

CPlvwJgUcAA5Hv5

credit รูป : https://twitter.com/hashtag/ชุบทีมีใบ

 

ในทางกลับกัน หากคุณมีเพื่อนร่วมเดินทาง ทั้งทั้งสบาย และทั้งสนุก (ในเกมเรียกกลุ่มเพื่อนว่า Party ซึ่งผมมองว่ามันทั้งหมายถึงกลุ่มพรรคพวก และปาร์ตี้มันก็ควรจะสนุกจริงๆ นั่นแหละ) แถมคุณยังใช้หลักการ “แบ่งงานกันทำ” ได้ คุณตกลงกันได้ว่า ใครจะเป็นสายลุย ใครจะเป็นสาย Support จะลุยแบบไหน Support แนวไหน เอาให้มันเจ๋งสุดๆ ไปเลยซักด้านหนึ่ง ให้จุดแข็งของคนหนึ่งไปปิดจุดอ่อนอีกคนหนึ่งได้ เท่านี้กลุ่มของคุณก็จะเก่งขึ้นมาก

party-wolf

Credit รูป : http://www.robrowser.com/blog/party-system-just-landed

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

เช่น ใช้พวก AND คู่กับ IF หรือ สูตร INDEX คู่กับ MATCH ก็เข้าขากันได้ดีทีเดียว

mix-function

7. การเตรียมตัวในแต่ละศึก

ในเกมก่อนที่เราจะออกไปลุยเก็บประสบการณ์ในฉากต่างๆ หรือใน Dungeon ก็ตาม เราจะต้องรู้ก่อนว่าศัตรูหรือปัญหาที่เราจะเจอนั้นมีลักษณะเป็นยังไง แพ้ทางอะไร เรามีอะไรที่จะไปสู้ด้วยได้ และควรจะสู้ด้วยวิธีไหนถึงจะมีประสิทธิภาพ เข้ากับคำคมที่ว่า “รู้เขา รู้เรา” นั่นแหละครับ ซึ่งนอกจากจะรู้แล้ว ก็ต้องเตรียมอาวุธและอุปกรณ์ต่างๆ ให้พร้อมด้วย เช่น เตรียม Shortcut คำสั่ง/item ที่ใช้บ่อยๆ ไว้เลย เวลาใช้ก็กดปุ่มง่ายๆ

prepare2

Credit รูป : http://www.roguides.co.in/2010/08/pvp-champion-build-guide-using.html

qat

ซึ่งใน Excel เราก็สามารถเตรียมเรื่องแบบนี้ได้เหมือนกันครับ คุณสามารถศึกษาก่อนได้ว่า เจ้านายหรือลูกค้าคุณชอบงานแบบไหน คุณจะได้ทำงานได้ถูกใจ เพราะแต่ละคนก็ชอบไม่เหมือนกัน

รวมถึงคุณจะต้องทำงานแบบไหนบ่อยๆ คุณก็ควรจะเตรียม Quick Access Toolbar ซึ่งจะกดเรียกใช้ง่ายมาก ทั้งใช้ Mouse หรือ Keyboard Alt+1,2,3,4… ก็ได้ หรือจะเรียนรู้ Shortcut อื่นๆ ให้พร้อมกับการทำงานนั้นๆ ให้มากที่สุด เพื่อที่ว่าเมื่อเจอศัตรูหรือปัญหา จะได้กดท่าไม้ตายต่างๆ กระหน่ำโจมตีได้อย่างรวดเร็ว

8. รางวัลที่ได้จากการจัดการศัตรู

mvp

Credit รูป : https://forums.warpportal.com/index.php?/topic/157495-ragnarok-player-history-archive/

ในเกมเวลาที่เราจัดการกับศัตรูได้ สุดท้ายก็จะได้ประสบการณ์มาเพื่อให้ตัวเอง Level Up! และอาจได้ Item เจ๋งๆ ติดไม้ติดมือมาด้วย

ถ้าเราลงมือคนเดียว เราก็ได้ผลลัพธ์นั้นคนเดียวแน่นอน แต่ถ้าเราไปลุยกับเพื่อนเป็น Party คนที่ลงมือจัดการกับปัญหามากที่สุด จะได้ค่าประสบการณ์มากที่สุดและได้รับ Item ชิ้นพิเศษไป

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

9. จะใช้ของดี ตัวเราเองก็ต้องเจ๋งด้วย

อุปกรณ์ต่างๆ ในเกมนั้นมีความสำคัญที่จะช่วยทำให้ตัวละครที่เราเล่นเก่งขึ้นมาก เช่น ถ้าปกติตัวละครมีพลังโจมตี 87 แต่พอใส่ Item ต่างๆ ลงไป อาจช่วยให้พลังโจมตีเยอะขึ้นได้ เป็นต้น

Build-Champion-MVP-Ragnarok

credit รูป : http://ragnarokgameplay.blogspot.com/2014/07/build-champion-full-mvp-ragnarok.html

แต่ทว่าส่วนใหญ่แล้วมันก็จะมีระดับความเก่งของตัวละครกำหนดอยู่ว่า ถ้าจะใช้อุปกรณ์ช่วยเหลือเจ๋งๆ ได้ จะต้องมีความเก่งระดับไหน เช่น คุณจะต้องอยู่ใน Level 40 ขึ้นไป เป็นต้น

ในชีวิตจริงก็เหมือนกันครับ หนังสือบางเล่ม สัมมนาบางคอร์ส อาจทำให้คุณบรรลุ Excel ขั้นสูงสุดได้ แต่ถ้าคุณมีความรู้พื้นฐานไม่พอ คุณก็ไม่สามารถใช้ประโยชน์จาก Item ชิ้นนั้นได้อย่างเต็มที่ ดังนั้นเราต้องอย่าลืมพัฒนาทักษะของตัวเราให้พร้อมและเลือก item ให้เหมาะกับระดับของตัวเองด้วย

10. วิธีการเดินทางสำคัญไม่แพ้เป้าหมาย

เมื่อคุณผจญภัยในโลกแห่งเกม Online RPG ไปซักพัก หลายคนจะเริ่มรู้สึกว่าตัวเองพัฒนาช้าเกินไป เลยเริ่มจะทำอะไรที่ผิดกฎเกณฑ์ของเกมที่ตั้งไว้ ถ้าโชคดียังไม่มีใครจับได้ก็ดีไป แต่ถ้าโชคร้ายคุณอาจจะถูกแบน อดเล่นเกมนั้นไปอีกตลอดกาล

ในชีวิตจริงของคนเรา มีสิ่งยั่วยุมากมายให้ทำในวิธีที่ไม่เหมาะสม ผมอยากจะให้ทุกคนใจแข็งไว้ อย่าไปหลงในความโลภที่มาหลอกล่อคุณ ให้คุณตั้งมั่นในความตั้งใจและในเป้าหมายของตัวเองไว้ แล้วลงมือทำมันด้วยวิธีที่ถูกต้องตามกฎเกณฑ์ของสังคม และถูกต้องตามหลักศีลธรรมเท่านั้น

1016401_809976285685816_475014996_n

Credit รูป : http://ratemyserver.net/index.php?page=detailedlistserver&serid=16985&url_sname=Kazue%20RO

การทำแบบนี้ไม่เพียงจะทำให้คุณใช้ชีวิตได้อย่างสบายใจ มันยังทำให้คุณภูมิใจ สามารถที่จะเล่าให้คนอื่นฟังได้อย่างเต็มปาก ว่าสุดท้ายแล้วคุณเปลี่ยนจาก Novice จนกลายมาเป็นคนที่ประสบความสำเร็จได้ยังไง

ซึ่งหากคุณโกงมา ความภูมิใจเหล่านี้ก็จะหายไปตลอดกาล ซึ่งเป็นสิ่งที่น่าเสียดายจริงๆ ครับ

หากคุณมีข้อคิดดีๆ ที่ประทับใจจากการเล่นเกม อย่าลืมเอามาแชร์กันบ้างนะครับ อยากฟังจริงๆ ^^


เจาะลึกทุกแง่มุมการทำ Dropdown 2 ชั้น (Ver. ปรับปรุงใหม่)

$
0
0

ก่อนหน้านี้ผมได้เคยเขียนอธิบายวิธีทำ Dropdown List 2 ชั้น และ 3 ชั้นขึ้นไปแล้ว… หลายๆ คนก็นำไปใช้ประโยชน์ได้เป็นอย่างดี แต่ปัญหาอยู่ที่ บางคนทำตามแล้วมัน Error!!

เอ๊ะ แล้วทำไมบางคนทำตามแล้วไม่ Error แต่บางคนทำแล้ว Error ล่ะ? เรามาไขคำตอบกันในบทความนี้ครับ ยาวหน่อย แต่ได้ความรู้มากมาย รับรองเลย!!

ใครไม่เคยอ่านบทความ 2 อันก่อนหน้ามาก่อน สามารถอ่านแค่บทความนี้อันเดียวก็เข้าใจได้ครับ ไม่ต้องย้อนกลับไปอ่านให้เสียเวลา ^^

หลักการทำ Dropdown

Dropdown List เกิดจากการใช้ [Data] –>Data Tools –> Data Validation แล้วเลือก List จากนั้น ให้เลือก Range ที่ต้องการให้เป็น item ย่อยๆ เวลาที่กดปุ่มสามเหลี่ยมเพื่อเลือกใช้ Dropdown แค่นี้ก็จะได้ Dropdown แล้วล่ะ เช่น ผมมีรายชื่อภาพยนต์อยู่ 4 เรื่อง ผมก็แค่ลาก A2:A5 ดังนี้ได้เลย

dropdown0

ทีนี้ก็จะได้ Dropdown มาใช้แบบง่ายๆ แล้ว ไม่มีอะไรยากเลยใช่มั้ยครับ ^^

dropdown3

ทำ Dropdown โดยใช้ Define Name ดีกว่า

วิธีที่ดีกว่าการเลือก Range ก็คือการใช้ Define Name มาแทน ผมสามารถตั้งชื่อ List 4 เรื่องนั้นใน Define Name ชื่อ Movies ได้ ซึ่งมี 2 วิธี คือ

  1. ตั้งชื่อใน Name Box : ลากคลุม 4 เรื่อง (4 ช่อง)แล้วใส่ชื่อใน Name Box
  2. ใช้ Create Names from Selection : ลากคลุมถึง Heading (5 ช่อง) แล้วกด Ctrl+Shift+F3 เพื่อตั้งชื่อจากช่องบนสุด (หากติ๊ก Top Row อย่างเดียวอยู่แล้วก็กด Ok ได้เลย)ซึ่งในทีนี้ผมขอทำวิธีที่ 2 เพราะความชอบส่วนตัวล้วนๆ
    dropdown1

จากนั้นให้ไปที่ Cell ที่ต้องการจะทำ Dropdown แล้วเลือก [Data] –> Data Validation แล้วเลือก List แล้วใส่ชื่อที่ตั้งไว้ลงไป (กด F3 เพื่อช่วยในการเลือกชื่อที่ตั้งไว้แล้วได้)

dropdown2

ทีนี้ก็จะได้ Dropdown มาใช้เช่นเดียวกับวิธีแรกเลย แต่แบบนี้เจ๋งกว่าตรงที่แก้ไขตอนหลังง่าย และเขียนสูตรง่ายกว่าเยอะ ซึ่งเดี๋ยวเราจะทำกันในบทความนี้

dropdown3

ความยุ่งอยู่ที่ Dropdown ขั้นที่สอง

Concept การทำ Dropdown ของเรายังเหมือนเดิม ไม่ว่ามันจะมีกี่ชั้นก็ตาม นั่นคือ ใช้ Define Name มาเป็น item ของ Dropdown นั้น แปลว่า ถ้าเป็น Dropdown ชั้นที่ 2 ก็ต้องใช้ Define Name ที่แทน item ที่จะเป็นตัวเลือกของชั้นที่สอง

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

แปลว่าเราจะต้องสร้าง Define Name ของ List ชั้นที่ 2 ให้ครบทั้ง 4 List ซะก่อน

สร้าง Define Name ของ List ชั้นที่ 2

หากผมลองสร้าง List ที่จะเป็น item ของ Dropdown ชั้นที่สอง โดยใช้ชื่อของ List แทนชื่อหนัง โดยลองคลุมทั้งหมดแล้วกด Ctrl+Shift+F3 แล้วเลือกแค่ Top Row อันเดียว (เพราะใช้ Top Row ในการตั้งเป็นชื่อ)

dropdown4

จะได้ผลลัพธ์ออกมาดังนี้

  • คอลัมน์ D ได้ชื่อ บ้านผีปอป คือ D2:E12 ซึ่งอันนี้ออกมาปกติ เราใช้ทำงานได้
  • คอลัมน์ E ได้ชื่อ Star_Wars  คือ E2:E12 อันนี้ ชื่อดันมีเครื่องหมาย _ โผล่มาแทนช่องว่างซะงั้น
  • คอลัมน์ F ได้ชื่อ _13_เกมสยอง คือ F2:F12 อันนี้ ชื่อดันมีเครื่องหมาย _ โผล่มาหน้าสุด และมี _ แทนช่องว่างด้วย
  • คอลัมน์ F อันนี้หนักสุดเลย! ไม่มีชื่อ 300 ถูกตั้งขึ้นมาด้วยซ้ำ

ลองทำ Dropdown ชั้นที่สองดู

สมมติว่าผมยังไม่สนใจชื่อแปลกๆ ที่โผล่มา… หากผมต้องการทำให้ Dropdown ชั้นที่สองเป็น List ของบ้านผีปอบ ผมก็สามารถใช้ Data Validation แล้วใส่ชื่อโดยกด F3 เลือกได้ดังนี้

dropdown5

ทีนี้เนื่องจากชื่อมันต้องเปลี่ยนไปหากผมเปลี่ยนการเลือกของ Dropdown ครั้งแรก แปลว่าผมไม่สามารถใส่ชื่อลงไปตรงๆ ได้ แต่ผมต้องใส่ให้มัน Link กับ Dropdown ชั้นแรก โดยการใส่ว่า =A9 แทน

แต่ถ้าเราไปเขียนเป็น =A9 ตรงๆ มันจะได้ผลลัพธ์เป็นคำว่า “บ้านผีปอบ” (ที่เป็น Text ไม่ใช่ Define Name )กลับไปแทน

ดังนั้นเราต้องใช้ฟังก์ชั่น INDIRECT มาช่วยแปลง Text ให้เป็น Cell Reference จริงๆ อีกที นั่นคือ =INDIRECT(A9) จึงจะออกมาเป็น Define Name ที่ชื่อว่า บ้านผีปอบ จึงจะทำงานได้ (สังเกตว่าผมต้องเลือก Dropdown ชั้นแรกให้มีค่าก่อน ไม่งั้นมันจะขึ้นเตือนว่า Dropdown ชั้นที่2 จะมีปัญหา)

dropdown6

ลองเลือกบ้านผีปอบ แล้วเลือก Dropdown ขั้น 2 ซึ่งออกมาใช้งานได้!

dropdown7

ปัญหาเริ่มเกิด

แต่ปัญหาที่เกิดขึ้นคือ หากเราเปลี่ยน Dropdown ชั้นแรกเป็น Star Wars แทน คราวนี้ Excel กลับไม่สามารถใช้งาน Dropdown ชั้นที่สองได้แล้ว!! (นี่คือปัญหาที่หลายๆ คนอาจจะเจอตอนทำตามที่ผมสอนในบทความเดิมก่อนหน้านี้)

dropdown8

สาเหตุเป็นเพราว่า Excel ไม่สามารถหาชื่อที่เขียนว่า Star Wars ได้นั่นเอง (เพราะในไฟล์เรามีแต่ชื่อ Star_Wars) นี่แหละคือสาเหตุที่ทำให้หลายคนทำตามผมในตัวอย่างที่แล้ว แต่ทำตามไม่ได้ เกิดปัญหา เพราะว่าชื่อที่ตั้งขึ้นมามันไม่เหมือน Item ที่เลือกในชั้นแรกนั่นเอง

สาเหตุที่ชื่อที่ถูกตั้งขึ้นจริง (จากการกด Ctrl+Shift+F3) ไม่เหมือนกับสิ่งที่เราตั้งใจไว้เกิดจากข้อจำกัดของการตั้งชื่อครับ

ชื่อที่กำลังจะตั้งขึ้นมาใหม่นั้นมีข้อจำกัดดังนี้

  • หากมีช่องว่าง จะถูกแทนที่ด้วย _
    • เช่น Star Wars  จะกลายเป็น Stars_Wars ให้
  • หากขึ้นต้นด้วยตัวเลข (แต่มี Text ต่อ) จะถูกใส่ _ นำหน้าชื่อให้โดยอัตโนมัติ
    • เช่น 13 เกมสยอง กลายเป็น _13_เกมสยอง
  • หากมีแต่ตัวเลข ไม่สามารถตั้งชื่อได้เลย
    • เช่น 300 ไม่สามารถตั้งชื่อได้เลย

ทางแก้ไขทำไง?

ทางแก้มีอยู่ 2 วิธีใหญ่ๆ

  1. เขียนสูตรแก้ไข : ตอนที่จะทำ Data Validation ให้เขียนสูตรแปลง item ให้เหมือนกับชื่อที่จะเกิดขึ้นมา เช่น เติมพวก _ ให้โดยอัตโนมัติ
    • เช่น แทนที่เราจะ INDIRECT(A8) ตรงๆ เราก็ INDIRECT(SUBSTITUTE(A8,” “,”_”)) แทนสิ ก็จะแก้ปัญหาเรื่องการมีช่องว่างได้แล้ว…
    • แต่ถ้ามีขึ้นต้นด้วยตัวเลข ก็ต้องมาเขียนดักอีก เช่นให้เริ่มด้วย _ หากใช้ Left เช็คตัวแรกแล้วเป็นตัวเลข ซึ่งจะเห็นว่าเริ่มยุ่งยากแล้ว
    • ยังไงชื่อ 300 ก็มีปัญหาตั้งชื่อไม่ได้อยู่ดี…
    • ดังนั้นผมจึงอยากแนะนำวิธีที่ 2 ดีกว่า เพราะครอบคลุมแก้ไขได้ทุกกรณี
  2. ตั้งชื่อ Dropdown เป็นคำที่ไม่ติดปัญหา แล้วใช้ VLOOKUP เอา : แทนที่เราจะตั้งชื่อ Dropdown ชั้นที่ 2 ด้วยชื่อหนัง ซึ่งอาจเปิดปัญหา เราก็ตั้งชื่อกลางๆ ไปเลย เช่น Movie1,Movie2,Movie3… ก็ได้
    • ก่อนอื่นลบ Define Name เดิมของ Dropdown ชั้น 2 ทิ้งให้หมดก่อน ด้วย [Formula] –> Name Manager
      dropdown9
    • ตั้งชื่อด้วย Movie1, Movie2, Movie3, Movie4 แทน
      dropdown10
    • สร้างความสัมพันธ์กับ Dropdown ชั้นแรก เพื่อจะใช้ VLOOKUP ได้ภายหลัง
      dropdown11
    • จากนั้นใน Data Validation ของ Dropdown ชั้นที่ 2 เราจะใช้ VLOOKUP มาช่วย Map ข้อมูลว่า item ของ Dropdown ชั้นแรก จะ Link กับ Define Name ของ Dropdown ชั้นที่ 2 ยังไง?
      dropdown12
    • เพียงเท่านี้ Dropdown ชั้นที่ 2 ก็ทำงานได้แล้วทุกกรณีdropdown14
    • แม่แต่ 300 ก็ไม่กลัว!
      dropdown13

ช่องว่าง…ของแถมที่ไม่อยากได้

จะเห็นว่าวิธีตามบทความนี้ยังมีจุดอ่อนอยู่เล็กน้อย คือ ถ้ากรณี List ของ Dropdown ชั้นที่ 2 มีข้อมูลไม่เท่ากัน ถ้าอยากจะตั้งชื่อทีเดียวด้วย Ctrl+Shift+F3 จะต้องลากคลุมตามตัวที่มี item เยอะสุด ซึ่งจะทำให้ได้ช่องว่างแถมมาในชื่อที่มี item น้อยกว่าด้วย

เดี๋ยวเราจะมาดูวิธีแก้ไขเรื่องนี้ในบทความหน้ากันครับ ด้วยการทำ Dynamic Range ใครอยากรู้ห้ามพลาดเด็ดขาด!!

 

 

 

Excel ความเร็วแสง : ตอน VLOOKUP ความเร็วแรง

$
0
0

Excel ความเร็วแสง

หากมนุษยชาติมีภารกิจจะต้องเดินทางไปยังดวงดาวในอวกาศอันไกลโพ้น… พวกเขาจะทำอย่างไร?

เหล่านักบินอวกาศมีทางเลือกหลายทาง ตั้งแต่

  1. เดินทางไปเลย เตรียมเสบียงไปเต็มที่ กำลังใจมาเต็ม ซักวันคงเดินทางถึง!
  2. ตัดใจ ยอมแพ้กับภารกิจ อยู่บ้านเฉยๆ ดีกว่า
  3. พัฒนาวิธีเดินทางด้วยความเร็วแสงให้ได้!

ถ้าทำได้ทุกคนคงอยากจะเลือก ข้อ 3 จริงมั้ยครับ?

ในชีวิตของการใช้งาน Excel ก็เช่นกัน… หลายครั้งเราทำงานกับข้อมูลจำนวนมหาศาล
เปรียบได้กับภารกิจการเดินทางอันแสนไกลของนักบินอวกาศ…
เช่น ต้องใช้ VLOOKUP Map ข้อมูลที่มีหลายหมื่น หลายแสนบรรทัด คุณจะทำอย่างไร?

  1. นั่งรอไป ซักวันนึง เจ้า % Calculate จะกระดิกไปถึง 100% ในที่สุด พร้อมกับพลังในตัวของคุณที่หมดลง
  2. ไม่ยุ่งกับข้อมูลเยอะๆ เด็ดขาด
  3. เรียนรู้วิธีใช้เทคนิค Excel ความเร็วแสง!

Excel ความเร็วแสง คือเทคนิคหลายอย่างที่ผมจะรวบรวมไว้เป็น series เรื่องการทำงานใน Excel ให้เร็วขึ้นโดยเฉพาะ

แล้ววันนี้ผมจะนำเสนอเทคนิคเด็ด นั่นคือ วิธีการใช้ VLOOKUP ความเร็วแสงครับ ซึ่งแม้จะเคย Post เรื่อง VLOOKUP เร็ว 100 เท่า มาแล้ว แต่ขอเอามาขัดเกลาให้อ่านง่ายขึ้นอีกครั้ง อันนี้อ่าน 5-10 นาทีจบ ทำได้เลยแน่นอนครับ!

เทคนิค VLOOKUP ความเร็วแสง

เทคนิคในบทความนี้จะเน้นว่ากันด้วยวิธีปฏิบัติล้วนๆ ทฤษฎีใส่ให้บางๆ เท่านั้ย หากอยากเข้าใจที่มาที่ไปแบบละเอียด สามารถไปอ่านใน Post เก่าได้นะครับ

เอาล่ะ จะ VLOOKUP ให้เร็วขึ้นทำได้ยังไง? ก่อนอื่น ต้องเข้าใจว่า VLOOKUP มี 2 แบบ คือ

  1. แบบ Approximate Match (เลือก Range Lookup เป็น TRUE หรือ 1) ซึ่งทำงานเร็วมาก และสามารถให้ผลลัพธ์ที่ไม่ตรงกับ Lookup_Value มาได้ด้วย ข้อควรระวังคือ คอลัมน์แรกของตารางอ้างอิงต้องเรียงจากน้อยไปมากเท่านั้น
  2. แบบ Exact Match (เลือก Range Lookup เป็น FALSE หรือ 0) ซึ่งทำงานช้ามาก แต่ให้ผลลัพธ์แม่นยำ

เรื่องของเรื่องคือ เวลาคนส่วนใหญ่ Map ข้อมูลแบบต้องให้ผลลัพธ์เป๊ะๆ ก็จะใช้แบบ Exact Match นี่แหละ (เพราะมันแม่น) แต่ผมจะบอกว่าถ้าข้อมูลมีเยอะมาก คุณควรใช้แบบ Approximate Match แทนครับ!

หลักการคือ

  1. เรียงข้อมูลในตารางอ้างอิง ให้คอลัมน์แรก (ที่เอา Lookup Value ไปหา) เรียงจากน้อยไปมากก่อน (สำคัญสุดๆ!!!)
  2. เขียนสูตร VLOOKUP แบบ Approx. เพื่อดึงค่าคอลัมน์ที่ต้องการกลับมา
    • เขียนว่า =VLOOKUP(คำค้นหา,ตารางอ้างอิง,คอลัมน์ที่ต้องการ,TRUE)
      ผลลัพธ์จะคำนวณร็วมาก แต่บางบรรทัดจะผิด คือ ควรจะเป็น #N/A แต่ให้ค่าเกินมา
  3. เราแก้จุดผิด โดยการใช้ VLOOKUP แบบ Approx. ดึงค่าคอลัมน์แรกกลับมาเช็คกับ Lookup Value มาตรงกันหรือไม่?
    โดยใช้ IF มาช่วยเช็คว่าถ้าตรงกันแสดงว่าเป็นค่าที่เชื่อถือได้ ถ้าไม่ตรงกันแสดงว่าไม่ควรใช้
    • เขียนดึงคอลัมน์แรก =VLOOKUP(คำค้นหา,ตารางอ้างอิง,1,TRUE)
    • เช็คว่าตรงกับ Lookup Value หรือไม่? ว่า =VLOOKUP(คำค้นหา,ตารางอ้างอิง,1,TRUE)=คำค้นหา
  4. ถ้าตรงเชื่อได้ ถ้าไม่ตรงเชื่อไม่ได้
    1. เชื่อได้ ต้องเอาค่าคอลัมน์ที่ต้องการกลับมา =VLOOKUP(คำค้นหา,ตารางอ้างอิง,คอลัมน์ที่ต้องการ,TRUE)
    2. เชื่อไม่ได้ ให้เป็น #N/A โดย =NA()

สรุปสูตรสุดท้าย
=IF(VLOOKUP(คำค้นหา,ตารางอ้างอิง,1,TRUE)=คำค้นหา,VLOOKUP(คำค้นหา,ตารางอ้างอิง,คอลัมน์ที่ต้องการ,TRUE),NA())

ตัวอย่าง

vlookup100x

ในช่อง B11 ผมเขียนสูตรได้ว่า

=IF(VLOOKUP(คำค้นหา,ตารางอ้างอิง,1,TRUE)=คำค้นหา,VLOOKUP(คำค้นหา,ตารางอ้างอิง,คอลัมน์ที่ต้องการ,TRUE),NA())

=IF(VLOOKUP(A11,$A$1:$B$6,1,TRUE)=A11,VLOOKUP(A11,$A$1:$B$6,2,TRUE),NA())

จะได้ผลลัพธ์เป็น สมกอตต์ ถูกต้องครับ! และถ้าเป็น B10 ก็จะต้อง #N/A ถูกต้อง เช่นกัน เพราะไม่มีค่า p002x ในตารางอ้างอิง

ก่อนจากกัน

เป็นยังไงบ้างครับกับเทคนิค VLOOKUP เร็วความเร็วแสง หากมีตรงไหนไม่เข้าใจก็ถามได้ครับ
และหากถูกใจ อย่าลืมบอกเพื่อนๆ ให้มาวิ่งไปสู่จุดหมายด้วยความเร็วแสงด้วยกันนะครับ !!

Warp !!

ติวเข้มก่อนเข้าโรงเรียนเวทมนตร์ #1 : ค่าที่แท้จริง วันที่และเวลา

$
0
0

จากที่ผมได้ Post ข้อสอบเข้าโรงเรียนจอมเวทเทพเอ็กเซลให้ลองทำกันไปเมื่ออาทิตย์ก่อน  (ใครยังไม่ได้ลองทำ เชิญไปทำได้ที่นี่ จะได้รู้ว่าเนื้อหาตรงไหนที่เรายังไม่แม่นนะครับ https://goo.gl/forms/5hqxIOH7tGDk9F3D2 )

ข้อสอบที่มีคนผิดมากเป็นอันดับต้นๆ และเป็นเรื่องที่เกี่ยวเนื่องกัน นั่นคือเรื่องของ “ค่าที่แท้จริง วันที่ และเวลา” ซึ่งมีอยู่ 3 ข้อ นั่นคือ

  • ข้อ 6) จากรูป หากเขียนสูตรใน A2 ว่า =A1+1 จะได้ค่าเท่าไหร่?
  • ข้อ 8) ตามรูป หากเขียนสูตรว่า =IF(A1<31/12/2016,”ยังไม่หมดเขต”,”หมดเขตแล้ว”) ผลลัพธ์จะได้ออกมาเป็นอะไร?
    (A1 คือ วันที่ 29 สิงหาคม คศ. 2016)
  • ข้อ 9) เริ่มทำงาน ด้วยเวลาในช่อง B1 เสร็จงาน ด้วยเวลาในช่อง B2 จะคำนวณว่าใช้เวลากี่นาที ในช่อง B3 ยังไง?

ดังนั้นผมจะขอนำมาเขียนอธิบายแบบละเอียดให้เข้าใจกันอย่างแจ่มแจ้งอีกครั้งนะครับ โดยในบทความนี้เรามาดู ข้อ 6 กับข้อ 9 กันก่อนครับ บทความถัดไปจะมาดูข้อ 8 กัน

ค่าที่เห็น…อาจไม่ใช่ค่าที่เป็น (เรื่องค่าที่แท้จริง)

ข้อ 6) จากรูป หากเขียนสูตรใน A2 ว่า =A1+1 จะได้ค่าเท่าไหร่?

003

ข้อนี้ถ้าไม่สังเกตให้ดีอาจโดนหลอกได้ง่ายๆ เพราะค่าใน Cell เป็นเลข 3 แต่ค่าใน Formula Bar เป็น 2.5

ซึ่งค่าใน Cell ที่เรามองเห็นเกิดจากการเอา “ค่าที่แท้จริง” ไปปรุงแต่ง แต่งตัว แต่งหน้า” ผ่านการปรับ Formatting หรือรูปแบบการแสดงผล จนสุดท้ายออกมาเป็นผลลัพธ์ที่เรามองเห็นด้วยตาเปล่าได้

แต่เรื่องของการแสดงผลก็เป็นเพียงแค่เปลือกนอกเท่านั้น ถึงเราจะปรับเลข 2.5 ให้ไม่แสดงทศนิยมจนแสดงผลออกมาเป็นเลข 3 เวลานำมันไปคำนวณต่อ Excel จะเอาค่าที่แท้จริง คือ 2.5 ไปคำนวณต่อ ไม่ได้เอาการแสดงผลหรือเลข 3 ไปคำนวณนะครับ (ยกเว้นว่าใน Excel Option จะไปตั้งค่า Set precision as displayed ในเมนู Advanced ซึ่งปกติแล้วจะไม่ตั้งค่าแบบนั้น)

ดังนั้นสิ่งที่ต้องจดจำไว้ให้ดีคือ “ค่าที่เห็น…อาจไม่ใช่ค่าที่เป็น” การปรับ Format ทั้งหน้าตาและ Number Format จะไม่มีผลใดๆ ต่อการคำนวณทั้งสิ้น

การคำนวณเวลาที่ใช้ในการทำงาน และการแปลงหน่วย (ข้อ 9)

ข้อ 9) เริ่มทำงาน ด้วยเวลาในช่อง B1 เสร็จงาน ด้วยเวลาในช่อง B2 จะคำนวณว่าใช้เวลากี่นาที ในช่อง B3 ยังไง?

002

ก่อนที่จะคำนวณข้อนี้ได้ เราจะต้องมีความเข้าใจเรื่องที่ว่า วันที่และเวลา จริงๆ แล้วคือตัวเลขธรรมดาๆ ที่เปลี่ยน Number Format ไปเท่านั้น (อย่างที่อธิบายข้างบนว่า การปรับ Format ไม่มีผลต่อการคำนวณ)

โดยที่ Excel จะแทนวันที่ 1/1/1900 (1 มกราคม คศ. 1900) ด้วยเลข 1  (ค่าที่แท้จริงของวันที่ 1/1/1900 คือ เลข 1) แล้วมันก็แทนวันที่ 2/1/1900 ( 2 มกราคม คศ. 1900) ด้วยเลข 2… ทำอย่างนี้ไปเรื่อยๆ

เช่น หากใน Cell ใส่วันที่เป็น 16/10/2016 แล้วลองเปลี่ยน Number Format ให้เป็น Number จะเห็นว่ากลายเป็นเลข 42659 นั่นเอง (ไม่ต้องจำเลขนะ…)

เมื่อ Excel แทนวันที่ด้วยจำนวนเต็ม ดังนั้น เวลา (ซึ่งคือส่วนหนึ่งของวัน) ก็จะถูกแทนด้วยเลขทศนิยมนั่นเอง เช่น

  • วันที่ 16/10/2016 เวลา 0:00 คือเลข 42659
  • วันที่ 16/10/2016 เวลา 12:00 (เวลาผ่านไปครึ่งวัน) คือเลข 42659.5 (เพิ่มมา 0.5 วัน)
  • วันที่ 17/10/2016 เวลา 0:00 คือเลข 42660

ทีนี้ถ้าเรากรอกเป็น 16/10/2016  13:25:00 แล้วลองเปลี่ยนเป็น Number จะได้เป็นเลข 42659.5590277778 (ลองเพิ่มทศนิยมดู) ซึ่งจริงๆ แล้วมันก็คือการแปลงวัน+เวลา ชั่วโมงและนาที ให้มีหน่วยเป็น “วัน” นั่นเอง

ดังนั้นถ้าเรามีเวลาเริ่มและจบแล้ว เราจะหาเวลาที่ผ่านไปได้ง่ายมากๆ โดยเอาค่าทั้งสองมาลบกัน

เช่น เอา B2-B1 จะได้ 1.784722222 แบบนี้ ซึ่งจะมีหน่วยเป็นวัน

explain-timedif

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

  • 1 วัน = 24 ชม. หรือ 1 = 24 ชม./วัน
  • 1 ชม. = 60 นาที หรือ 1 = 60 นาที/ชม.

ดังนั้น (B2-B1) วัน คือ

  • = (B2-B1) วัน * 1 * 1 (คูณ 1 ค่าไม่เปลี่ยน ถือว่าทำแล้วค่ายังคงถูกต้อง)
  • = (B2-B1) วัน * 24 ชม./วัน * 60 นาที/ชม.
    โดยที่จะเห็นว่าหน่วยสามารถตัดกันได้ จนเหลือแค่หน่วยนาที

explain-timedif2

 

  • สุดท้ายจะได้ว่า เวลาที่ผ่านไปเป็นหน่วยนาที คำนวณได้จาก
  • = (B2-B1)*24*60 นาที

เห็นมั้ยครับ? การคำนวณเรื่องวันที่และเวลาไม่ได้ยากอย่างที่คิดเลย แค่ต้องเข้าใจ Concept ของมันเท่านั้นเอง

ใครยังสงสัยตรงไหนก็ถามได้เลยนะครับ อย่าปล่อยผ่านไปแบบไม่เข้าใจแบบเคลียร์ๆ นะ ^^

 

ติวเข้มก่อนเข้าโรงเรียนเวทมนตร์ #2 : ข้อควรระวังในการเขียนวันที่ในสูตร

$
0
0

จากตอนที่แล้วที่ผมได้อธิบายเฉลยข้อสอบเข้าโรงเรียนจอมเวทเทพเอ็กเซล ไป 2 เรื่องแล้ว วันนี้มาต่ออีกเรื่องซึ่งเป็นข้อที่มีคนผิดมากที่สุดครับ โดยโจทย์ที่ถามคือ…

8) ตามรูป หากเขียนสูตรว่า =IF(A1<31/12/2016,”ยังไม่หมดเขต”,”หมดเขตแล้ว”) ผลลัพธ์จะได้ออกมาเป็นอะไร?
(A1 คือ วันที่ 29 สิงหาคม ค.ศ. 2016)

011

ข้อนี้หลายคนโดนหลอกอย่างจัง เพราะข้อนี้คำตอบคือ “หมดเขตแล้ว”

สาเหตุคือ เวลาเราเขียนค่าที่เป็นวันที่ลงไปในสูตร หากเราดันไปเขียนว่า =A1<31/12/2016 มันจะกลายเป็น เอา 31 หารด้วย 12 แล้วหารด้วย 2016 แทน (ไม่เชื่อลองเขียนสูตรว่า =31/12/2016 ดูสิ จะได้ ซึ่งจะได้ A1<0.00128141534391534  )

ดังนั้นสูตรที่เขียนว่า =A1<31/12/2016 จะได้ =A1<0.00128141534391534

ซึ่ง A1 เป็นวันที่จริงๆ ซึ่งมันเปรียบเทียบได้เป็นเลข 42611 (จริงๆ แล้ววันที่คือเลขธรรมดา เช่น 1 มกราคม ค.ศ. 1900 คือเลข 1, 2 มกราคม ค.ศ. 1900 คือเลข 2 …)

ดังนั้นสูตรที่เขียนจริงเหมือนกับเขียนว่า =42611<0.00128141534391534 ดังนั้นมันจึงออกมาเป็น FALSE ซึ่งก็คือ “หมดเขตแล้ว” นั่นเอง

ทีนี้หากจะเปรียบเทียบวันที่แบบถูกต้องจะทำยังไงได้บ้าง???

ผมอยากจะแนะนำ 3 วิธีด้วยกันนะครับ ลองเอาไปเลือกใช้ดูตามความเหมาะสม

1. เขียนวันที่เป็น Text แล้วแปลงเป็นตัวเลข

วิธีนี้เป็นวิธีที่น่าสนใจอีกอันหนึ่ง เพราะสามารถเขียนในรูปแบบวันที่ แต่สามารถคำนวณได้อย่างถูกต้องได้ด้วย

วิธีเขียนคือ ให้เขียนวันที่ในเครื่องหมายคำพูด แล้วเอาไป convert ให้เป็น Number โดยการเอาไปทำอะไรซักอย่างกับ Math Operator เช่น *1, +0, ใส่ – นำหน้า เป็นต้น (ส่วนตัวผมชอบใส่ – นำหน้า เพราะสังเกตง่าย และคำนวนเร็วสุด)
explain-03

ซึ่งพอกด Enter ผลลัพธ์ก็จะออกมาเป็น “ยังไม่หมดเขต” ตามที่ควรจะเป็น (อย่าลืมลองเปลี่ยนวันที่เล่นดูว่าสูตรยังทำงานถูกหรือไม่?)

แต่วิธีนี้มีข้อควรระวัง คือ เรื่องของ Format วันที่ของ Region and Language ใน Control Panel ของคอมพิวเตอร์ที่กำลังเปิดไฟล์นั้นๆ อยู่ เพราะอาจทำให้วันและเดือนสลับกันได้ซึ่งอันตรายพอตัวเลยครับ

เช่น บางเครื่องตั้งค่าวันที่แบบที่อ่านค่า 3/4/2016 แปลว่า วันที่ 3 เดือน 4 แต่บางเครื่องตั้งค่าให้แปลว่า วันที่ 4 เดือน 3 เป็นต้น

ซึ่งการที่เราใส่วันที่เป็นรูปแบบตัวเลข xx/yy/zzzz แบบนี้ มันเป็นการ Hard Code แบบใส่ค่าคงที่ลงไปในสูตร ซึ่งไม่ว่าจะเปิดที่ Computer เครื่องไหนก็ตาม มันก็จะเห้นสูตรแบบเดียวกันหมดนี่แหละ แต่อาจตีความไม่เหมือนกันก็ได้

ดังนั้น ถ้าจะใช้วิธีนี้ โปรดทำให้แน่ใจว่า ไฟล์ที่เราทำจะถูกเปิดใช้โดย Computer ที่ตั้งค่า Format วันที่ของ Region and Language แบบที่เราคิดไว้เท่านั้น

2.เขียนวันที่ลงไปใน Cell เลย

วิธีนี้เป็นวิธีที่ดีตรงที่เห็นชัดว่าเรากำลังเปรียบเทียบกับวันอะไรอยู่?
explain-01

ซึ่งพอกด Enter ผลลัพธ์ก็จะออกมาเป็น “ยังไม่หมดเขต” ตามที่ควรจะเป็น

วิธีนี้สิ่งที่เราต้องทำคือ จงแน่ใจว่าเราใส่รูปแบบวันที่แบบเดียวกับวันที่ที่นำมาเปรียบเทียบ เช่น ถ้าเป็น DD/MM/YYYY ก็ใส่ให้เหมือนกัน หรือถ้าเป็น MM/DD/YYYY ก็จงทำให้เหมือนกัน ไม่่งั้นอาจผิดเพราะเรื่อง Format วันที่ของ Region and Language แบบเดียวกับข้อข้างบนได้

3. เขียนวันที่ด้วยฟังก์ชั่น DATE

วิธีนี้มีความปลอดภัยสูงที่สุด เพราะจะไม่มีปัญหาเรื่องการตั้งค่า Format วันที่ของ Region and Language ของคอมพิวเตอร์แต่ละเครื่องเลย เพราะฟังก์ชั่น DATE จะถามหา Argument แยกกัน นั่นคือ ปี เดือน วัน แต่ละตัวแยกกันโดยไม่ปนกันเลย
explain-02

ดังนั้นถ้าถามผมว่าวิธีไหนน่าจะ Work และปลอดภัยที่สุด ความเห็นส่วนตัวของผมคือ วิธีสุดท้ายนี่แหละครับ ^^

เอาล่ะ ใครอ่านจบถึงตรงนี้ ถ้าหากมีคำถามอะไร อย่าปล่อยผ่านนะครับ ถามมาได้เล้ยยยย

 

17 เคล็ดวิชา เก่ง Excel แบบเร็วจี๋

$
0
0
เนื่องในโอกาสขึ้นปีใหม่ 2017 นี่คือของขวัญที่ผมตั้งใจเตรียมไว้ให้กับทุกคน
ด้วยบทความ “17 เคล็ดวิชา เก่ง Excel แบบเร็วจี๋”
ซึ่งเกิดจาก Concept ที่ผมตั้งใจให้สามารถ อ่านบทความเดียวแล้วเก่ง Excel ขึ้นอย่างรวดเร็ว!!

ผมไม่รู้ว่าจะเป็นไปได้มั้ย? แต่ก็อยากลองให้อ่านดูครับ ด้วยการคัดเลือกเคล็ดลับที่สำคัญในการใช้ Excel มีทั้งง่ายและยากปนกัน มันต้องมีบางอันที่ช่วยปลดล๊อคความสามารถของคุณบ้างล่ะ ลงทุนเวลาอ่านซัก 30 นาที รับรองว่าจะได้เวลาคืนมาอีกเพียบครับ !!

หมายเหตุ : จุดประสงค์ในบทความนี้จะเน้นให้คุณไม่พลาด Concept เจ๋งๆ ซึ่งบางทีอาจไม่สามารถอธิบายโดยละเอียดได้ในบทความเดียว ดังนั้นถ้าอ่านแล้วยังสงสัยในวิธีทำ ก็สามารถ Google หาวิธีทำละเอียดจาก Keyword ได้เลยครับ

เคล็ดวิชา 1 : หลักคิดพิชิตทุกปัญหา

หลักการนี้ คือ สิ่งที่ผมใช้ในการแก้ปัญหาเกือบทุกๆ อย่างใน Excel ซึ่งหลักการเหล่านี้เป็นแก่นที่แฝงอยู่ในเคล็ดลับข้ออื่นๆ ด้วย

  • หาเป้าหมายหรือโปรเจคที่อยากจะทำให้ได้ การเรียนรู้แบบมีเป้าหมาย จะช่วยให้เรียนรู้ไวและจับต้องได้มากกว่าอ่านเฉยๆ
  • คิดย้อนกลับจากเป้าหมาย (Backward Thinking)
    • เมื่อต้องการผลลัพธ์อะไรก็ตาม ให้คิดย้อนกลับว่าเราจะไปถึงเป้าหมายนั้นด้วยวิธีใด
    • เช่น หากอยากเขียนสูตรที่สามารถดึงค่าชื่อ Sheet ได้
      • เราอาจไปรู้มาว่า ฟังก์ชัน =CELL(“filename”,A1) จะให้ชื่อ Sheet กลับมาได้
      • แต่มันดันให้ค่ากลับมา ในรูปแบบของ –>  path[ชื่อไฟล์.สกุล]ชื่อsheet
      • ทีนี้ก็ต้องมาคิดต่อว่าจะเอาออกมาแต่ ชื่อSheet อย่างเดียวได้ยังไง?
  • แบ่งงานใหญ่ให้เป็นงานย่อย (Divide & Conquer)
    • หากงานหนึ่งๆ ที่จะทำมันยากและซับซ้อนเกินไป ให้แบ่งมันเป็นงานย่อยๆ ที่เราเข้าใจและจัดการกับมันได้
    • เช่น เป้าหมาย คือ ดึง ชื่อSheet ออกมา จาก path[ชื่อไฟล์.สกุล]ชื่อsheet
      • เราก็ต้องคิดต่อว่า ตัวเราเองรู้ได้ไงว่าชื่อSheet อยู่ไหน? ซึ่งมันอยู่เครื่องหมาย ] นั่นเอง
      • ซึ่งอาจใช้ FIND หาตำแหน่ง ]
      • แล้วเอา LEN RIGHT มาช่วยตัดชื่อ Sheet ออกมา อีกที
    • ฟังก์ชันไหนใช้ไม่เป็น ก็ค่อยๆ หาทางเรียนรู้เพิ่มเติม
      • สมมติว่าคุณยังไม่รู้ฟังก์ชันใน Excel เท่าที่ควร
      • ลองตั้งเป้าในการเรียนรู้ฟังก์ชันใหม่ๆ เพิ่มขึ้นวันละ 1 ตัวดูมั้ยล่ะครับ?
      • แค่ 1 เดือน คุณก็รู้ฟังก์ชันมากมายมหาศาลแล้ว
      • การแบ่งทำวันละ 1 อัน มันดูเป็นไปได้มากกว่าการเรียนฟังก์ชัน 30 ตัวเยอะครับ!
  • ใช้ Excel ภาษาอังกฤษ และเรียนรู้ศัพท์เทคนิคภาษาอังกฤษเอาไว้
    • Keyword ที่ผมจะให้ในบทความนี้ก็จะเป็นภาษาอังกฤษนะครับ
    • Google หาคำตอบ ด้วยภาษาอังกฤษ จะเจอคำตอบง่ายกว่าเยอะครับ

เคล็ดวิชา 2: การเขียนสูตรคือ อะไรกันแน่?

  • การเขียนสูตรคือ “การดึง” ไม่ใช่การผลัก
    • อยากให้ผลลัพธ์แสดงในช่องไหน ต้องเขียนสูตรช่องนั้น
    • หากเราจะเขียนสูตรให้ช่อง B3 แสดงค่าอะไรซักอย่าง เราต้องเขียนสูตรที่ B3 เท่านั้น
    • ไม่สามารถไปเขียนสูตรที่อื่นแล้วผลักค่าไปที่ช่อง B3 โดยที่ B3 ไม่เขียนอะไรเลย (ถ้าจะทำต้องใช้ VBA สั่ง)
    • การดึงค่าแบบตรงๆ นี่แหละ ช่วยให้เราไม่ต้องพิมพ์ข้อมูลซ้ำๆ กันหลายที
    • เรา”ดึงค่า” จาก Cell ไหนก็ได้ โดยกด = แล้วจิ้ม Cell ที่ต้องการ ไม่ว่าจะอยู่ Sheet เดียวกัน/Sheet อื่น/ไฟล์อื่นก็ได้
  • นอกจากจะดึงค่าตรงๆ แล้ว สิ่งที่ต้องทำก็ไม่พ้นการเอามาใส่สูตรเพื่อ “ผูกความสัมพันธ์” เพื่อสร้างผลลัพธ์บางอย่าง
    • ความสัมพันธ์ อาจเป็นสิ่งที่เป็นสากล เช่น การคำนวณทางคณิตศาสตร์/วิทยาศาสตร์ หรือ
    • ความสัมพันธ์ อาจเป็นสิ่งที่เราคิดหรือตั้งเกณฑ์ขึ้นมาเอง เช่น การประมาณการยอดขาย เป็นต้น
  • เราไม่สามารถที่จะทำให้ Cell หนึ่งๆ เป็นทั้งสูตร และเป็นทั้งช่องกรอกข้อมูลพร้อมๆ กันได้ (ถ้ากรอกข้อมูลทับสูตรจะหายไป)
  • สุดท้ายแล้ว จงมองให้เห็น Flow ของข้อมูล ที่ถูกเชื่อมด้วยการเขียนสูตรผูกความสัมพันธ์
  • การแยกพื้นที่ระหว่าง Input และ Output ออกจากกันอย่างเป็นระเบียบ จะช่วยให้ Flow ของข้อมูลเป็นระเบียบและแก้ไขได้ง่าย

เคล็ดวิชา 3: แก้ Format ไม่เกี่ยวกับ Content

  • เรื่องของ Format เป็นแค่การกำหนดรูปแบบการแสดงผลให้เราเห็น Content ในรูปแบบที่เปลี่ยนไปตามต้องการ
    • คล้ายกับการเปลี่ยนเคสของมือถือ หรือ เปลี่ยน Theme ของ App Line นั่นแหละ
  • ตัวอย่างเช่น
    • หากเราเขียนใน A1 เป็น 3.5
    • แล้วเขียนใน A2 ว่า =A1 (จะได้ 3.5 เหมือน A1)
    • จากนั้นเปลี่ยน Number Format ลดทศนิยมใน A1 จะเห็นเป็นเลข 4 (เพราะ 3.5 ปัดขึ้นเป็น 4)
    • ค่าที่แท้จริงใน A1 ยังคงเป็น 3.5 อยู่ดี เช่นเดียวกับค่าใน A2 (ที่ดึงค่าใน A1 ไปแสดง)
  • เรื่องของ Format กับ Content จะถูกพูดถึงอย่างเด่นชัดอีกทีในเคล็ดวิชาที่ 6 เรื่องวันที่และเวลาครับ

เคล็ดวิชา 4: ประเภทของข้อมูลนั้นสำคัญยิ่ง!

  • ประเภทข้อมูลมี 4 แบบหลักๆ คือ Number, Text, Logic, Error
  • เช็คประเภทข้อมูลด้วยตาเปล่าไม่ได้ ให้ใช้ฟังก์ชัน TYPE มาช่วย จะได้ผลลัพธ์เป็นตัวเลข
    • 1 = Number, 2=Text, 4= Logic, 16 = Error
  • หากข้อมูลเป็นคนละประเภทกัน แม้จะดูเหมือนกัน แต่ Excel จะถือว่าไม่เท่ากัน เช่น พวกนี้จะได้ FALSE ทั้งหมด
    • “10”=10
    • 1 = TRUE
    • 0 = FALSE
  • เช่นเดียวกับการใช้ Lookup Function อย่าง VLOOKUP และ MATCH ที่จะหาเจอเฉพาะข้อมูลประเภทเดียวกันเท่านั้น
  • Input หรือ Argument ของฟังก์ชันต่างๆ ก็จะต้องการประเภทข้อมูลที่ค่อนข้างเฉพาะเจาะจง ต้องใส่ข้อมูลให้ถูกประเภท
  • นอกจากนี้ ผลลัพธ์ของฟังก์ชันต่างๆ ก็จะให้ประเภทข้อมูลที่แตกต่างกันด้วย

เคล็ดวิชา 5: Operator ใช้แปลงประเภทข้อมูลได้

  • Operator แต่ละประเภท เมื่อนำไปประกอบกับในสูตร จะให้ “ประเภทผลลัพธ์ของข้อมูล” ที่แตกต่างกัน
  • Arithmetic Operator  เช่น +, -, *, /, ^, % เอาไว้คำนวณ
    • ทำให้ผลลัพธ์เป็น Number
    • ทำได้หลายแบบ ยังไงก็ได้ให้ผลลัพธ์ไม่เพี้ยน เช่น *1,+0,-0,/1
      • แต่ที่นิยมคือ ใช้การ *1 หรือ — นำหน้า
      • =”100″*1 จะได้ 100 (เป็น Number)
      • =–TRUE จะได้ 1 (เป็น Number)
  • Text Operator เช่น & เอาไว้เชื่อมข้อความ
    • ทำให้ผลลัพธ์เป็น Text
    • เช่น 200&”” จะได้ “200” (เป็น Text)
  • Comparison Operator เช่น >, =, <, >=, <=, <>
    • ทำให้ผลลัพธ์เป็น Logic
    • เช่น =500>1000 ได้ FALSE
  • Range Operator เช่น , (comma) : (colon)  (space) เอาไว้เชื่อม Cell Reference
    • ทำให้ผลลัพธ์เป็น Cell Reference/Range
    • comma เชื่อมแบบไม่ต่อเนื่อง เช่น C10,D12
    • colon เชื่อมแบบต่อเนื่องกัน เช่น A1:B5
    • space เอาส่วนที่ทับซ้อนกัน เช่น A2:E3 C1:D5 จะได้ C2:D3
  • Tips : ข้อมูลที่มี Error เช่น #DIV/0!, #N/A, #NAME?
    • ทำให้ผลลัพธ์ Error ตามไปด้วย
    • นอกจากจะใช้ฟังก์ชันพวก ISERROR, IFERROR เข้ามาช่วย

เคล็ดวิชา 6: วันที่และเวลา คือ ตัวเลข จำนวนเต็มและทศนิยม ที่เปลี่ยน Format ไปเท่านั้น

  • Excel จะมองวันที่เป็นแค่เลขจำนวนเต็มธรรมดาๆ และมองเวลาเป็นทศนิยม (ส่วนหนึ่งของวัน)
    • วันที่ 1/1/1900 (ค.ศ.) เวลา 0:00 เป็นเลข 1
    • วันที่ 1/1/1900 (ค.ศ.) เวลา 12:00 เป็นเลข 1.5
    • วันที่ 2/1/1900 (ค.ศ.) เวลา 0:00 เป็นเลข 2
    • วันที่ 2/1/1900 (ค.ศ.) เวลา 12:00 เป็นเลข 2.5
  • จะแปลงตัวเลข เป็นวันที่/เวลา หรือกลับกัน ทำได้ง่ายๆ โดยการเปลี่ยน Number Format
  • ดังนั้นการหาระยะห่างของวัน 2 วัน จึงเอาวันที่มาลบกันตรงๆ ได้เลย เช่น
    • A1=28/11/2016 และ A2=4/12/2016
    • ระยะห่าง = A2-A1 = 6 วัน
    • เพราะค่าที่แท้จริง คือ A1=42702 และ A2 = 42708
  • ดังนั้นถ้ามีวันที่+เวลาอยู่ใน Cell หนึ่งๆ เช่น A1
    • จะแยกวันออกมาใช้ INT เอาจำนวนเต็ม นั่นคือ =INT(A1)
    • จะแยกเวลาใช้ MOD หาร 1 เพื่อเอาทศนิยม นั่นคือ =MOD(A1,1)
  • เวลา Input ข้อมูลวันที่ Excel จะตีความปีที่กรอกเป็น ค.ศ. (ยกเว้นไปตั้งค่า Format Cell นั้นๆ เป็นปฏิทินไทย แล้วเลือก Input dates according to selected calendar จะสามารถกรอกเป็น พ.ศ.ได้)

เคล็ดวิชา 7: การใส่ $ ใน Cell Reference

  • เมื่อทำการ Copy สูตรที่มี Cell Reference อยู่ในสูตร จะทำให้ Cell Reference เลื่อนตำแหน่งตามทิศทางการ Copy/Paste โดยอัตโนมัติ
  • หากไม่อยากให้เลื่อนต้องใส่เครื่องหมาย $ ลงไปใน Cell Reference (กด F4 ช่วยได้ สามารถกดวนรูปแบบได้ 4 อย่าง)
  • หากมี $ หน้าอะไร ถือว่าตัวนั้นจะไม่เลื่อน เช่น
    • A1 –> Column เลื่อน, Row เลื่อน เรียกว่า Relative Cell Reference
    • $A$1 –> Column ไม่เลื่อน, Row ไม่เลื่อน เรียกว่า Absolute Cell Reference
    • A$1 –> Column เลื่อน, Row ไม่เลื่อน เรียกว่า Mixed Cell Reference
    • $A1 –> Column ไม่เลื่อน, Row เลื่อน เรียกว่า Mixed Cell Reference
  • หลักคิดสำคัญเพื่อไม่ให้งง ว่า เมื่อไหร่ต้องใส่ $ ยังไง คือ ใช้หลักการ Divide & Conquer
    • โดยพิจารณามองทีละ Cell Reference
    • แล้วคิดทีละทิศคือ แนวนอน และ แนวตั้ง โดยถามคำถามว่า…
    • ถ้า Copy Cell นี้ไปทางขวา เจ้า Cell Reference ที่กำลังอ้างถึงอยู่ควรจะเลื่อนทางขวาด้วยมั้ย?
      • ถ้าไม่ควร ก็ใส่ $หน้ารหัสคอลัมน์
      • ถ้าควร ก็ไม่ใส่ $หน้ารหัสคอลัมน์
    • ถ้า Copy Cell นี้ลงข้างล่าง เจ้า Cell Reference ที่กำลังอ้างถึงอยู่ควรจะเลื่อนลงด้วยมั้ย?
      • ถ้าไม่ควร ก็ใส่ $หน้าเลขแถว
      • ถ้าควร ก็ไม่ใส่ $หน้าเลขแถว

เคล็ดวิชา 8: การทดข้อมูล / ทดสูตร / Helper Column ช่วยได้มาก

  • การทดข้อมูล คือ การประยุกต์เอาหลัก Divide & Conquer มาใช้แบบหนึ่ง
    • การเขียนสูตรแบบซับซ้อน จริงๆ แล้วเราไม่จำเป็นต้องเขียนสูตรยาวๆ ในทีเดียว แต่เราเขียนสูตรทีละส่วน (โดยให้อ้างอิงถึงกัน) แล้วค่อยจับนำมารวมกันภายหลัง
    • เช่น อยากดึงค่าบางอย่างจากที่อื่นมาไว้ใน Cell ที่กำหนด
      • เราสามารถใช้ INDEX ได้ ในรูปแบบ =INDEX(array,row_num,column_num)
      • และใน row_num และ column_num เราต้องการให้มันมีความเป็น Dynamic โดย Link กับ Dropdown List ที่ User เลือก ดังนั้นเราจะใช้ MATCH มาช่วย
      • แต่แทนที่จะเขียน MATCH ลงไปใน INDEX เลย เราสามารถเขียนแยกไว้ในอีก Cell เพื่อลดความงง
      • พอเขียนเสร็จ ตรวจแล้วทำงานถูกต้อง ค่อยจับนำมารวบรวมกับ INDEX ทีหลัง
    • การทำแบบนี้ ฝรั่งเรียกว่า Mega Formula ซึ่งจะช่วยให้เราจะดูเทพขึ้นมาทันที !! 555
  • Helper Column ก็เป็นหนึ่งในรูปแบบของการทดเหมือนกัน มันคือการสร้างคอลัมน์ที่ช่วยให้เราจัดการกับอะไรต่างๆ ง่ายขึ้น
    • สามารถเขียนเงื่อนไข AND OR ที่ซับซ้อน แทนที่จะใช้ Criteria ใน Filter/Pivot/SUMIFS/Advanced Filter ซึ่งอาจไม่ Flexible เท่าการเขียนสูตร
    • ลองดูตัวอย่าง การสร้าง Helper Column เพื่อรองรับการ Unsort ในเคล็ดวิชา 9 ได้

เคล็ดวิชา 9: การเตรียมข้อมูลเพื่อ การ Sort/Filter/Pivot

  • ก่อนจะนำข้อมูลไป Sort/Filter หรือ PivotTable ควรจัดข้อมูลให้อยู่ในรูปแบบ Database ก่อนเสมอ
    • มีหัวตารางที่บอกว่าคอลัมน์นั้นๆ คือ อะไร แค่ 1 บรรทัด
    • ข้อมูลห้ามขาดหายไปทั้งบรรทัด
  • ไม่ว่าจะ Sort หรือ Filter ผมแนะนำให้ใช้ คำสั่ง Filter เครื่องมือเดียวนี่แหละ
  • การ Filter สามารถ Search ได้ และมีคำสั่ง Add to Current selection ด้วย เพื่อที่จะ Add สิ่งที่ Search เจอได้โดยไม่ต้อง Clear สิ่งที่เลือกไว้เดิม
  • การ Filter สามารถ Clear Filter กลับมาเป็นแบบเก่าได้ แต่ Sort ไม่มีคำสั่ง Unsort
    • ดังนั้นถ้าจะอยากให้เรียงกลับเป็นเหมือนเดิมได้ ต้องใช้ Helper Column สร้างเลข Running เอาไว้ก่อนเลย
  • หากอยากที่จะ Filter แล้วเลขสามารถ Run ใหม่ตามข้อมูลที่ Filter ให้ใช้ SUBTOTAL/AGGREGATE เข้าช่วย เพราะมีความสามารถนับข้อมูลเท่าที่มองเห็นได้ (รายละเอียดอ่านได้ที่ http://www.inwexcel.com/filtered-running-number/)
  • ก่อนจะนำข้อมูลไปวิเคราะห์ใดๆ ควรเช็คความถูกต้องโดย Sort/Filter ดูความผิดปกติก่อน
    • เช่น ไม่มีค่าน้อยไป/มากไป
    • ไม่มีข้อมูลขยะ
    • มีข้อมูล Blank ที่ไม่ต้องการหรือไม่
  • หากข้อมูลไม่อยู่ในรูปแบบที่เหมาะสม อาจต้องเขียนสูตรเพื่อดัดแปลงข้อมูลก่อน
  • หากข้อมูลแยกกันอยู่หลาย Sheet อาจพิจารณาใช้สูตรพวก Lookup เพื่อรวม Database ก่อน หรือ จะใช้พวก Data Model เพื่อสร้าง Relationship โดยไม่ต้องรวมตารางก่อนก็ได้

เคล็ดวิชา 10: รู้จักการใช้ Table เพื่อสร้าง Dynamic Range

  • ข้อดีที่สุดอย่างหนึ่งของการใช้ Table ก็คือ ความสามารถในการทำ Dynamic Range อย่างง่ายที่สุด
  • Table สามารถยืดพื้นที่การอ้างอิง ให้งอกตามการใส่ข้อมูลที่เพิ่มขึ้นได้เองโดยอัตโนมัติ
  • การอ้างอิงค่าจาก Table สามารถอ้างอิงได้ทั้งการใช้ Cell Reference ปกติ และ Structure Reference เช่น Table1[สินค้า] ดังรูป
  • นำไปประยุกต์เป็น Data Source ของเครื่องมืออื่นๆ ได้มากมาย เช่น Dropdown List (Data Validation), PivotTable, กราฟต่างๆ เป็นต้น

เคล็ดวิชา 11: รู้จักใช้ความสามารถของ PivotTable

  • PivotTable สามารถแปลงข้อมูลเชิง Database ให้เเป็นข้อมูลสรุปได้อย่างง่ายดาย
    • PivotTable ใช้งานง่ายมาก เขียนสูตรไม่เป็นเลยก็ยังใช้งานได้
  • หัวตารางของ Data Source จะถูกสร้างให้กลายเป็น Field List
  • เวลาใช้ ให้พิจารณาองค์ประกอบทีละส่วนว่า Field List แต่ละอันจะเอาไปไว้ในส่วนไหน ใน 4 ส่วนนี้
    • Filter : เอาไว้คัดกรองข้อมูลให้กับทั้งตาราง Pivot
      • มีลูกเล่น Generate Report Filter Page
      • ปกติแล้วมันจะเก็บข้อมูล Item List เอาไว้แม้ว่าใน Data Source จะไม่มีข้อมูลนั้นๆ แล้ว
      • เราสามารถทำให้ Item List มันยึดอันใหม่เสมอได้โดยไปที่ PivotTable Option –> Data –> Number of Items to retain per field –> None
    • Rows/Columns : เอาข้อมูลมาแสดงไว้คนละแถว/คอลัมน์ (แบบไม่ซ้ำกัน) เพื่อเป็น Caetgory ให้กับตารางสรุป
      • มีลูกเล่น Sort/Filter/Grouping
      • เราสามารถ Grouping ข้อมูลใน Row/Column Label ได้ ทั้งแบบ Manual และ แบบ Auto
        • Grouping แบบ Manual เหมาะกับข้อมูลที่เป็น Text และมันจะสร้าง Field ใหม่ขึ้นมาให้ด้วย
        • Grouping แบบ Auto ข้อมูล Field นั้นๆ จะต้องเป็นตัวเลข หรือ วันที่เท่านั้น และห้ามมีช่องว่าง จึงจะใช้ได้
      • ปกติแล้ว ข้อมูลใน Row/Column Label  ใดที่ไม่มีค่า มันจะไม่แสดง Row/Column Label  นั้นๆ
        • เราสามารถบังคับให้แสดงได้โดยไปที่ Field Setting -> Layout & Print -> Show items with no data
    • Values : เอาไว้คำนวณสรุปผลข้อมูล ซึ่งมีลูกเล่นสำคัญ 2 อย่าง คือ
      • Summarized Value by : เลือกวิธีในการคำนวณสรุปผล เช่น Sum, Count, Max, Min
        • ถ้าข้อมูลเป็นตัวเลข และไม่มี Blank เลย เวลาเอามาใส่จะเป็น Sum โดยอัตโนมัติ นอกนั้นเป็น Count
      • Show Value As : เลือกว่าจะโชว์ค่าตรงๆ หรือ จะแสดงเทียบกับช่องอื่น เช่น %ของ xxx
  • ข้อเสียสำคัญ ของ PivotTable คือ เมื่อข้อมูลต้นทางเปลี่ยน จะต้องกดปุ่ม Refresh ค่าใน Pivot ถึงจะเปลี่ยน (ถ้าไม่อยากกดเอง สามารถใช้ VBA ช่วยได้)
  • PivotTable ปกติจะเปิดโหมด Generate GetPivotData ไว้
    • ทำให้เมื่อเขียนสูตรแล้วจิ้มไปในบริเวณ PivotTable แล้วจะเกิดสูตรยาวๆ ที่ใช้งานยาก
    • แต่ข้อดีคือ สามารถอ้างอิงค่าโดยไม่ต้องกังวลว่า PivotTable จะพลิกหน้าตาหลายเป็นแบบใด
    • วิธีปิดโหมดนี้ คือไปที่ Ribbon ของ PivotTable แล้วติ๊กลูกศรใต้ PivotTable Option
  • การใช้ Calculated Field ใน PivotTable เหมาะกับ การคำนวณค่า %Success Rate ของแต่ละกลุ่มข้อมูลมาก
    • การหาพวก % Success จะทำใน Data Source ด้วยการเขียนสูตรได้ลำบากกว่าการใช้ Calculated Field ใน PivotTable มาก
    • นอกจากนี้ การสร้าง PivotTable แล้วเขียนสูตรคำนวณเองข้างๆ ก็เสี่ยงต่ออารถูกหมุนข้อมูลไปทับ
    • เทคนิคการทำ % Success ง่ายๆ คือ ให้สร้าง Helper Column 2 อันใน Data Source
      • อันแรกเป็นตัวส่วน สมมติชื่อว่า AllCase (อาจให้เป็นเลข 1 เหมือนกันทุกแถว)
      • อีกอันเป็นตัวเศษ สมมติชื่อว่า SuccessCase ซึ่งถ้า Success จะให้เป็นเลข 1 ถ้าไม่ Success ก็ให้เป็นเลข 0
    • จากนั้นตอนสร้าง Calculated Field ก็จะสามารถใส่สูตรว่า SuccessCase/AllCase ได้เลย

เคล็ดวิชา 12: หัดใช้ Keyboard Shortcut เถอะ

ใช้ Keyboard Shortcut แล้วช่วยให้ทำงานเร็วขึ้นเยอะครับ ที่ต้องใช้บ่อยๆ มีไม่กี่ตัว ที่ผมใช้บ่อยก็มีตามนี้

  • กด Alt แล้วตามด้วยอักษรที่ขึ้นมา เพื่อเรียกใช้งาน Ribbon และ Quick Access Toolbar
  • Ctrl + ลูกศร = วิ่งไปสุดทาง
  • Ctrl + Shift + ลูกศร = เลือกพื้นที่ไปสุดทาง
  • Ctrl+c = copy
  • Ctrl+x = cut
  • Ctrl + v = paste
  • Ctrl+z = undo
  • Ctrl+Shift+L = Filter on/off
  • Ctrl+1 = Format Cell / Format ส่วนประกอบของกราฟ
  • นอกจากนี้ยังมี Set เอาไว้เปลี่ยน Number Format ซึ่งมีวิธีการจำที่น่าสนใจมาก
    • Ctrl+% เพื่อแปลงเป็นหน่วย % (จริงๆ ต้องกด Ctrl+Shift+5 เพราะ Shift +5 คือตัว % แต่ถ้าต้องจำว่า Ctrl+Shift+5 จะไม่มีทางจำได้เลย)
    • Ctrl+^ ก็เพื่อแปลงเป็นเลข Scientific E ยกกำลัง (เพราะ ^ เป็นเครื่องหมายยกกำลัง)
    • Ctrl+$ ก็เพื่อแปลงเป็นรูปแบบสกุลเงิน
    • Ctrl+# ก็เพื่อแปลงเป็นวันที่ (เพราะในโปรแกรม Access ก็ใส่วันที่ในเครื่องหมาย #)
    • Ctrl+@ ก็เพื่อแปลงเป็นเวลา เพราะ เครื่องหมาย@ ก็ดูเจาะจง คล้ายว่าจะระบุว่า ณ กี่โมง
    • Ctrl+: Stamp เวลาปัจจุบัน เพราะเหมือนเครื่องหมายคั่น ชม:นาที (ส่วน Ctrl+; = stamp ค่าวันที่ปัจจุบัน)
    • Ctrl+* เลือกข้อมูลใน Range ทั้งหมด เพราะ * แทนความหมายว่าทั้งหมด ในภาษาฐานข้อมูล
  • F2 = Edit สูตร
  • F3 = Paste ชื่อที่ตั้งไว้
  • F4 = ใส่ $ ใน Cell Reference (เมื่อกำลัง edit สูตร) / Repeat Action ล่าสุด

เคล็ดวิชา 13: Function ที่ต้องรู้จักมีไม่เยอะ

  • รู้จักฟังก์ชั่น 20% แต่ทำงานได้ 80% ตามกฎ 80/20
  • ผมมั่นใจว่า ถ้าคุณรู้จักฟังก์ชันไม่กี่อันเหล่านี้เป็นอย่างดี รับรองว่าหากินได้เยอะมาก
  • สิ่งที่ต้องจำคือ “หน้าที่ของมัน” ซึ่งสำคัญกว่าวิธีการเขียน (อันหลังเปิด Google/Help เอาก็ได้)
  • กลุ่มคำนวณ
    • SUM = หาผลรวมของข้อมูลที่เป็นตัวเลข
    • COUNT = นับจำนวนข้อมูลที่เป็นตัวเลข
    • COUNTA = นับจำนวนข้อมูลที่ไม่ใช่ช่องว่าง
    • MAX/MIN = หาค่ามากสุด/น้อยสุด
    • LARGE/SMALL = หาค่ามากสุด/น้อยสุด เป็นลำดับที่ xx
    • AGGREGATE = ไว้สรุปผลข้อมูล มีหลาย option เช่น ไม่สนใจช่องที่ซ่อนอยู่ ไม่สนใจค่า error เป็นต้น
    • INT = ตัดทศนิยมทิ้ง ให้เหลือแต่จำนวนเต็ม
    • MOD = หาเศษจากการหาร
    • ROUND/ROUNDUP/ROUNDDOWN = ปัดทศนิยม
    • SUMPRODUCT = จับคู่คูณแล้วหาผลรวม
    • SUMIFS = หาผลรวมตามเงื่อนไข
  • กลุ่มตรรกะ
    • AND/OR/NOT = เอาไว้เชื่อมตรรกะ TRUE/FALSE
    • IF = ตรวจสอบเงื่อนไข ถ้าจริงใช้สูตร 1 ถ้าไม่จริงใช้สูตร 2
    • ISERROR = เช็คว่าค่า Error หรือไม่
    • ISNUMBER = เช็คว่าค่าเป็นตัวเลขหรือไม่
    • CHOOSE = เลือกว่าจะใช้สูตรไหนคำนวณ
  • กลุ่ม Lookup & Reference
    • VLOOKUP (ทั้งโหมด Exact และ Approximate Match) = Map ข้อมูลคำค้นหาดึงค่าจากตารางอ้างอิง
    • MATCH = หาว่าคำค้นหาอยู่ลำดับที่เท่าไหร่
    • INDEX = ให้ Cell Reference กลับมาเมื่อรู้พิกัดแถว/คอลัมน์ (ใช้คู่กับ MATCH จะเก่งมาก)
    • ADDRESS = แปลงลำดับแถว/คอลัมน์ ให้เป็น Text ที่หน้าตาเป็น Cell Reference
    • INDIRECT = แปลง Text ที่หน้าตาเป็น Cell Reference ให้เป็น Cell Reference จริงๆ
    • OFFSET = เลื่อน/ปรับขนาด Cell Reference
    • ROW/COLUMN = หาว่าอยู่แถว/คอลัมน์ที่เท่าไหร่
  • กลุ่ม Text
    • LEN = นับจำนวนอักขระ
    • TRIM = ตัดช่องว่างส่วนเกิน
    • LEFT/MID/RIGHT = ตัดคำจากทิศทางต่างๆ
    • FIND/SEARCH = ค้นหาคำที่ต้องการว่าอยู่อักขระที่เท่าไหร่
    • SUBSTITUTE = แทนที่คำเมื่อรู้คำที่ต้องการแทนที่
    • REPLACE = แทนที่คำเมื่อรู้ตำแหน่งที่ต้องการแทนที่
    • TEXT = แปลงตัวเลข ให้กลายเป็น Text ตาม Custom Number Format ที่กำหนด
  • กลุ่มวันที่และเวลา
    • TODAY = ให้ค่าวันที่ปัจจุบัน
    • DAY = ดึงค่าวัน จาก วันที่
    • MONTH = ดึงค่าเดือน จาก วันที่
    • YEAR = ดึงค่าปี จาก วันที่
    • DATE = สร้างวันที่ จาก วัน เดือน ปี
    • NETWORKDAYS = หาระยะเวลาวันทำงาน ไม่นับวันหยุด (นับวันเริ่ม)
    • WORKDAYS = หาวันสิ้นสุดงาน  เมื่อรู้ระยะเวลาวันทำงาน ไม่นับวันหยุด (ไม่นับวันเริ่ม)
    • NOW = ให้ค่าเวลาปัจจุบัน
    • HOUR = ดึงค่า ชั่วโมง จากเวลา
    • MINUTE = ดึงค่า นาที จากเวลา

เคล็ดวิชา 14: เทคนิคการทำกราฟสุดพลิกแพลง

รูปประกอบจากเพจ Excel Nana (ขอนำมาใช้เพราะชอบกราฟนี้มาก)

  • ต้องรู้จักประเภทกราฟหลักๆ ให้ดี เช่น
    • Bar/Column Chart ทั้งแบบ Cluster และ แบบ Stacked
    • Line Chart : แกน x เป็นเพียง Category label (ข้อความ)
    • XY Scatter : แกน x เป็นตัวเลขจริงๆ
    • Pie Chart
  • สามารถ Link ค่าจาก Cell มาที่ Label บนกราฟได้
    • เลือก Label ไปที่ Formula Bar กด = แล้วจิ้ม Cell mี่ต้องการ
  • สามารถผสมกราฟหลายชนิดในกราฟเดียวได้ (Change series chart type)
  • สามาารถ Plot ข้อมูลลงในแกน Y 2 แกนได้ (มักใช้กับกรณีที่ Scale ต่างกันมากๆ)
  • เทคนิคทำให้กราฟพลิกแพลงได้มักจะใช้องค์ประกอบแบบนี้
    • นำกราฟมาซ้อนกัน
    • ใช้ข้อมูลหลาย Series มาต่อกันให้เหมือนเป็น Series เดียว
    • ปรับสีของกราฟให้มองไม่เห็นบางส่วน (เช่น เลือก No Color)
    • ใช้การ Fill (ถมสี) ด้วย Picture เพื่อสร้างกราฟที่สวยงามและมีลูกเล่นมากขึ้น
  • หากสร้าง PivotChart จาก PivotTable เราสามารถเอาปุ่มสีเทาที่รกๆ ออกได้ โดยไปที่ Pivot Chart –> Field Buttons –> Hide All
  • ใครสนใจการทำกราฟแบบสร้างสรรค์ลองศึกษาได้จากเพจ Excel Nana ได้เลยครับ https://www.facebook.com/ExcelNaNa/

เคล็ดวิชา 15: Defined Name นั้นมีดีกว่าแค่ชื่อ

  • นอกจากจะตั้งชื่อให้กับ Cell/Range ได้แล้ว ยังตั้งชื่อให้กับสูตรหรือค่าคงที่ได้ด้วย
  • การตั้งชื่อมีหลาย Scope คือ ระดับ Workbook  และ Worksheet (เป็นชื่อที่ฝังอยู่ที่ Sheet ใดชีทหนึ่ง)
  • ใน 1 Scope ห้ามมีชื่อที่ซ้ำกัน
  • เรามักประยุกต์เอา Defined Name ไปเป็น Data Source ของเครื่องมือต่างๆ เช่น Dropdown List (Data Validation), PivotTable, กราฟต่างๆ เป็นต้น
  • การใช้ Defined Name ทำให้สามารถใช้ Array Formula ได้โดยไม่ต้องกดปุ่ม Control+Shift+Enter
  • การใช้ Defined Name ทำให้สามารถสร้าง Dynamic Linked Picture เพื่อสร้าง Dynamic Chart ได้ (ร่วมกับสูตร INDEX)
  • Cell Reference ใน Defined Name ปกติจะใส่ $ ไว้เป็น Absolute Cell Reference โดยอัตโนมัติ แต่เราสามารถปรับออก เพื่อพลิกแพลงได้ตามต้องการ

เคล็ดวิชา 16: เนรมิต Dashboard เจ๋งๆ

รูปประกอบจากเรื่อง iron man

  • Dashboard คือ การแสดงผลข้อมูลโดยเอากราฟและข้อมูลตัวเลขสำคัญๆ มาแสดงรวมกันในหน้าเดียว
  • สำคัญที่สุดคือการออกแบบ Dashboard โดยคำนึงถึงคนใช้งานเป็นสำคัญ ว่าเค้าต้องการเห็นอะไร?
  • เทคนิคที่สำคัญในการทำ Dashboard คือ
    • การเขียนสูตร : คำนวณค่าต่างๆ ให้แสดงได้ตามต้องการ
    • PivotTable/ PivotChart : แสดงข้อมูลสรุป
    • Slicer : Slicer 1 ตัวจะควบคุม PivotTable/PivotChart ได้หลายๆ อันพร้อมกัน แบบ Interactive
    • Sparkline : สร้าง In-cell- Chart แบบง่ายๆ เพื่อเหมาะกับการแสดงผล
    • Conditional Format : ปรับ Format เพื่อเน้นสิ่งที่ต้องการนำเสนอ แบบ Interactive เช่น ทำไฟเขียวไฟแดง,  เปลี่ยนสีพื้นหลัง, เปลี่ยนสี/รูปแบบตัวอักษร
    • Linked Picture : สามารถดึง “สิ่งที่เราเห็น” จาก Range ในที่ต่างๆ มาแสดงในอีกที่ได้ แถมย่อ/ขยาย และวางตำแหน่งได้ดั่งใจ ถ้าข้อมูลต้นทางเปลี่ยน ปลายทางก็เปลี่ยนตาม เหมือนกับการตั้งกล้องถ่ายทอดสดไว้
    • Form Control : ทำให้ Dashboard Interactive มากขึ้น เช่น ทำ Scroll Bar / Radio Button แล้วให้ส่งค่าไปยัง Cell ที่กำหนด เพื่อผูกสูตรในการแสดงผลอีกที
    • ActiveX Control & VBA (Advanced) : ไม่มีอะไรที่ VBA ทำไม่ได้ แต่ต้องเรียนรู้ค่อนข้างเยอะ
  • จะเห็นว่ากว่าจะทำ Dashboard เจ๋งๆ ได้ต้องใช้ทักษะ Excel มากมายเลยทีเดียว นี่แหละเป็นเป้าหมายที่ท้าทาย

เคล็ดวิชา 17: อย่าหยุดพัฒนาตัวเอง

  • จงมุ่งมั่นหาวิธีที่ดีขึ้นเสมอๆ มันอาจมีวิธีที่ดีกว่าวิธีที่คุณใช้อยู่ แค่คุณยังไม่รู้ และยังไม่ลองค้นหาเท่านั้นเอง!!
  • ตัวอย่างเช่น การ Map ข้อมูล จริงๆ แล้วทำได้หลายวิธีมากๆ ตั้งแต่วิธีที่แย่ จนไปถึงวิธีที่ดี
    • วิธีที่ถึกที่สุดคือดูด้วยตา กรอกด้วยมือ (ทั้งเหนื่อยและอาจผิดพลาดได้ง่ายๆ)
    • แทนที่จะดูด้วยตา กรอกด้วยมือ ก็ใช้สูตร เช่น IF หรือ VLOOKUP แทน
    • แทนที่จะใช้ IF หลายๆ ตัวซ้อนกัน ดูสิว่าใช้ VLOOKUP แทนได้หรือไม่
    • กรณีต้อง VLOOKUP ข้อมูลบรรทัดเดียวกันหลายรอบ ใช้ INDEX + ตำแหน่งแถวที่หามาแล้ว จะเร็วกว่าเยอะ
    • ใช้ VLOOKUP Approximate Match + IF แทน VLOOKUP แบบ Exact Match กรณีที่ข้อมูลเยอะมากๆ จะคำนวณเร็วขึ้น 100-1000 เท่า!
    • ใช้ INDEX + VLOOKUP Approximate Match แทน 2 วิธีข้างบน ก็จะยิ่งเร็วขึ้นไปอีก !!
    • ถ้าเรารู้จักใช้พวก Power Tool เช่น Power Query ในการ Map ข้อมูล จะยิ่งเร็วแถมง่ายด้วย !!!
  • จงเชื่อมั่นและเปิดใจเรียนรู้ เพราะ การเรียนรู้มันไม่สิ้นสุดจริงๆ ครับ ผมเองก็ยังไม่เรื่องที่ไม่รู้อีกมากมาย
  • หากคุณรู้อะไรเจ๋งๆ อย่าลืมมาแบ่งปันความรู้ให้คนอื่นได้รู้ด้วยนะครับ รับรองว่า “ยิ่งให้ยิ่งได้” จริงๆ ครับ

 

เคยสำรวจ Ribbon บน Excel จนครบทุกซอกทุกมุมหรือยัง?

$
0
0

ผมเชื่อว่าผู้อ่านหลายคนก็ใช้ Excel มาเป็นเวลานานแล้ว และก็เชื่ออีกว่า คุณต้องไม่เคยสำรวจคำสั่งต่างๆ ของ Excel บน Ribbon อย่างจริงๆ จังๆ แน่

วันนี้ผมก็เลยจะมาช่วยเพื่อนๆ มาสำรวจ Ribbon ไปด้วยกันครับ โดยเฉพาะคำสั่งตามซอกหลืบต่างๆ ที่คุณอาจไม่ทันสังเกตเห็นมาก่อน ^^
ผมจะลองไล่ Tab Home ให้ดูนะครับ ส่วน Tab อื่นไปเล่นกันเองน้าาา

ภาพรวม Tab Home

Tab Home เป็น Tab ที่รวมเรื่องที่เราใช้งานบ่อยที่สุดเอาไว้ ถ้านึกอะไรไม่ออก ก็น่าจะต้องสั่งงานใน Tab นี้แหละ

ในส่วนของ Paste เองก็มีลูกเล่นหลายอย่างมากๆ และถ้ากด Paste Special ก็จะยิ่งมี Option เพิ่มขึ้นอีก เช่น ทำ Operation บวก ลบ คูณ หารได้ด้วย

  

แม้แต่การ Copy ก็ยังมีโหมด Copy as Picture … แต่จริงๆ ไม่ค่อยมีประโยชน์เท่าไหร่ เพราะมัน Paste As Picture ได้อยู่แล้ว
ซึ่งสามารถเลือกโหมดของการ Copy ได้ว่าจะทำการ Copy แบบตามที่เห็นบนหน้าจอ หรือ ตามที่เห็นตอน Print

 

ซึ่งโหมด Copy as Picture แบบ As Shown when printed นี้จะได้ภาพที่คมชัดกว่า Copy เฉยๆ แล้ว Paste As Picture นะครับ แถมสามารถช่วยตัดพวกสัญลักษณ์ Error แปลกๆ (ธงเขียว) และสัญลักษณ์การ Comment (ธงแดง) ออกไปได้ด้วย !! (คุณบิว วิศวกรรีพอร์ต บอกมา และผมก็ลองแล้วเป็นอย่างนั้นจริงๆ ด้วย!!)

ส่วนของการปรับแต่ง Font ก็มีขีดเส้นใต้คู่ด้วยนะ 555

การตีกรอบก็มีได้หลายวิธีมากๆ  ยิ่งถ้ากดไปใน More Border เราสามารถทำเส้นกรอบแบบแทยงมุมได้ด้วยนา

 

การจัดวางตัวอักษรก็ปรับได้หลายแบบ ถ้าเลือก Format Cell Alignment ก็จะปรับได้เยอะขึ้นไปอีก (กด ctrl+1 ก็ได้)

เคยกดพวก Shrink to Fit บ้างมั้ย? มันจะลดขนาด Font ให้พอดีช่องเองนะ

ส่วนการ Merge Cell ก็มีโหมด Merge Across ให้เลือกด้วย ซึ่งมันจะ Merge แบบแยกบรรทัดกันได้ด้วยนะ

การปรับ Number Format ก็มี Preset พื้นฐานให้เลือกพอสมควร ถ้ายังไม่ได้ดั่งใจก็ต้องไป More Number Format… แล้วไป Custom เอา

ส่วนการใช้ Conditional Format (ปรับ Format ตามเงื่อนไข) ก็มี Preset ให้เลือกเยอะเลย แต่ถ้ายังไม่พอใจ ก็ต้องไป New Rule… แล้ว Use Formula เอา เพื่อความ Flexible ขั้นสุดยอด

กลุ่ม Insert / Delete คิดว่าน่าจะเคยลองกดเล่นกันบ้าง

กลุ่ม Format นี่มีอะไนซ่อนอยู่เยอะเหมือนกันนะ

รู้หรือไม่ว่า AutoSum มันมี Function อื่นๆ ให้เลือกด้วยนะ

รู้มั้ยว่ามันมีคำสั่ง Fill ด้วยน่ะ แถมมีหลายทิศอีก และถ้าเลือก Series… ก็มี Option ให้เลือกอีกตูมเลย!

  

ทำ Growth ประหลาดๆ ก็ได้

ปุ่ม Clear ก็มีหลายแบบ แถมยัง Clear เฉพาะ Hyperlink ออกได้ด้วยนะ

Sort & Filter น่าจะใช้กันบ่อย

Find & Select นี่มีประโยชน์มากนะ ถ้าใช้เป็นทุ่นแรงได้เยอะมากๆ

Find… แล้วเลือก Option >>> ใน Look in นี่สำคัญมาก และพวก Match entire cell contents ก็ทำให้ร่วมกับพวกเครื่องหมาย wildcard ได้อีก

Go to Special นี่เจ๋งมาก การเลือกช่องที่ Blank ทำได้ง่ายๆ โดยเครื่องมือนี้

นี่แค่ Tab Home อันเดียวนะครับ ใน Tab อื่นก็ยังมีเครื่องมือเจ๋งๆ ซ่อนอีกเยอะ และจริงๆ ยังมีเครื่องมือที่ไม่อยู่ใน Ribbon ปกติ แต่เราเรียกใช้งานผ่าน Quick Access Toolbar ได้อีกเพียบเลยด้วยนา

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

========================================

Post นี้คือ ส่วนหนึ่งของโครงการ inwexcel365tips  ที่ผมจะ post บทความในเพจทุกวัน ต่อเนื่องกันเป็นเวลา 1 ปี ถ้าผมพลาดไม่ post ภายในเวลา 3 ทุ่ม คนที่มาทวง post คนแรก รับของแจกฟรีได้เลย !!

 

ลากข้อมูลแล้วให้ Excel ใส่ A-Z โดยอัตโนมัติ ด้วย Custom List

$
0
0

แต่ก่อนตอนผมใช้ Excel ใหม่ๆ มีปัญหาอย่างหนึ่งที่ผมหงุดหงิดมาก นั่นคือ ผมต้องการลาก Fill Handle แล้วให้ Excel สร้างตัวอักษร A-Z หรือ ก-ฮ โดยอัตโนมัติ แต่สิ่งที่ Excel ทำให้มันกลับแค่เป็นการ Copy ตัว A หรือ ก ที่ผมพิมพ์ลงมาให้ซะงั้น!

ผมงงมากเลย เพราะขนาด series ที่เป็นตัวเลขดูเหมือนว่าจะยากๆ เช่น 1,4,7,10,… มันยังฉลาดใส่มาให้ได้ แต่ทำไมแค่ A-Z หรือ ก-ฮ ดันไม่ใส่มาให้ฟะ!? ตอนนั้นก็ต้องใช้วิธีพิมพ์เอาเองบ้าง ใช้ฟังก์ชัน CHAR มาช่วยบ้าง ซึ่งก็ไม่ใช่วิธีที่ดีเท่าไหร่

จนผมได้พยายามค้นใน Internet ก็รู้ว่าจริงๆ แล้ว Excel ทำแบบที่ผมต้องการได้ ด้วยการสร้างสิ่งที่เรียกว่า Custom List นั่นเอง

Custom List

Custom List เป็นเครื่องมือที่ช่วยให่เราสามารถสร้าง List รายการแบบที่เรากำหนดได้เอง ซึ่งจะทำให้ Excel สามารถ Auto Fill ข้อมูล หรือ Sort ข้อมูลตาม List ที่เรากำหนดได้

วิธีการสร้าง Custom List

  1. สร้าง List ข้อมูลเตรียมไว้ก่อน
    • ผมสร้าง List A-Z รวมถึง ก-ฮ ไว้ก่อน ด้วยการลากตัวเลขลงมา 255 ตัว แล้วใช้ฟังก์ชัน CHAR ครอบลงไป
    • จากนั้นทำการ Copy แล้ว Paste Value เพื่อให้สูตรกลายเป็น Value (ถ้าค้างเป็นสูตรไว้ จะเอาไปใส่ Custom List ไม่ได้)
  2. เอาไปใส่ใน Custom List
    • ไปที่ Excel Options -> แถบ Advanced -> เลื่อนลงล่างๆ -> Edit Custom Lists…
    • ไปที่ช่องข้างๆ ปุ่ม Import แล้วลากครอบพื้นที่ ที่เตรียมตัว A-Z ไว้
    • กดปุ่ม Import ก็เสร็จการใส่ List A-Z แล้ว
  3. ทำแบบเดิมกับ ก-ฮ หรือ List อื่นๆ ที่คุณต้องการ

การเรียกใช้ Custom List ที่สร้างไว้แล้ว

ใช้ใน AutoFill

วิธีใช้ Custom List ก็ง่ายแสนง่าย แค่พิมพ์ตัวใดตัวหนึ่งที่อยู่ใน List แล้วลาก Fill Handle ยาวลงมาก็ใช้ได้แล้ว

ใช้ใน Sort

เวลาจะเรียงข้อมูลด้วย Custom List จะมีวิธียุ่งยากเล็กน้อย คือ ให้เราเลือก Sort แบบ Custom Sort (หรือไปที่ Ribbon [Data] => Sort ก็ได้)

จากนั้นตรง Order ให้เลือก Custom List… แล้วเลือก List ที่ต้องการ จากนั้นกด OK

จากนั้น Excel ก็จะเรียงข้อมูลตาม List ที่เราต้องการครับ

ก่อนจากลา…

ก็จบแล้วนะครับกับบทความเรื่อง Custom List นี้ หวังว่าจะเป็นประโยชน์กับเพื่อนๆ นะครับ เพราะถ้าใครรู้เทคนิคนี้ ก็สามารถเลิกพิมพ์ List อะไรซ้ำๆ ไปอีกตลอดชีวิต อย่าง A-Z เนี่ย ผมใช้บ่อยมากๆ เลย ลดเวลาไปได้มากครับ

แต่มันจะเจ๋งกว่านี้อีก ถ้าเรามี Custom List อื่นๆ เตรียมไว้ด้วย ดังนั้นถ้าใครมี Custom List เจ๋งๆ ก็แชร์กันมาได้นะครับ เผื่อจะเป็นประโยชน์กับเพื่อนๆ คนอื่นด้วย ^^

 


งานเสร็จฉับไว ด้วย Flash Fill

$
0
0

คุณเคยมั้ย? ที่ต้องจัดการข้อมูลบางอย่างอย่างเร่งด่วน และไม่ใช่งาน Routine จะเอาเวลาไปเขียนสูตรก็คงไม่คุ้ม

ถ้าเคย ผมมีเครื่องมือที่ชื่อว่า Flash Fill มาแนะนำสำหรับคนที่ยังไม่รู้จักครับ ซึ่งเครื่องมือนี้มามาตั้งแต่ Excel 2013 แล้วล่ะ มีแล้วก็ใช้ให้คุ้มหน่อยย

หลักการทำงานของ Flash Fill

หากคุณต้องการผลลัพธ์แบบไหน ก็พิมพ์บอก Excel ไปซะ แล้ว Excel จะพยายามหารูปแบบ (Pattern) จากสิ่งที่คุณพิมพ์ลงไปเอง ! (ถ้ายังหา Pattern ไม่ได้ ก็พิมพ์สอนเพิ่มไปอีก แล้วมันจะฉลาดขึ้น)

Step การทำงานของ Flash Fill

1. เตรียมข้อมูลดิบและคอลัมน์ผลลัพธ์

สมมติคุณมีข้อมูลแบบนี้ และคอลัมน์สีเหลืองคือสิ่งที่คุณต้องทำเพิ่ม

 

2. ใส่ตัวอย่างสอน Excel

คุณสามารถพิมพ์ผลลัพธ์ที่ต้องการไปก่อนซัก 1-2 บรรทัด เพื่อทำการสอน Excel ให้รู้ว่าอยากได้อะไร (ลองบรรทัดเดียวก่อนก็ได้)

3. ใช้ Flash Fill

ให้คลิ๊กที่ช่องที่เราสอน (หรือจะคลิ๊กช่องข้างใต้ก็ได้) แล้วกด Ctrl+E ทีละช่อง (ทีละคอลัมน์)

ถ้ามันโวยวายแบบนี้ แสดงว่ามันงง ให้เราสอนเพิ่มอีกบรรทัดนึง แล้วกด Ctrl+E คราวนี้น่าจะได้แล้ว

กด Ctrl+E ทีละคอลัมน์

กด Ctrl+E ทีละคอลัมน์

สังเกตว่าผลลัพธ์ที่ได้ มันเลียนแบบได้ดีทีเดียว แม้กระทั่ง การ Extract ข้อความ การเติมข้อความ เติมสัญลักษณ์ . และ @ หรือแม้กระทั่งเรื่องตัวพิมพ์เล็กพิมพ์ใหญ่มันก็จัดการให้ได้นะครับ

ถ้ามันเติมให้ผิดล่ะ?

ถ้ามันให้ผลลัพธ์ผิด ก็ต้องสอนเพิ่มไปอีกซักบรรทัดนึง มันน่าจะฉลาดขึ้นครับ

โห! มันฉลาดจัง แล้วแบบนี้จะเขียนสูตรให้ยากทำไม?

จริงครับ ที่ Flash Fill นั้นฉลาดมาก แต่มันก็มีข้อเสียที่สำคัญคือ ถ้าข้อมูลเปลี่ยน หรือมีข้อมูลใหม่มา ผลลัพธ์มันไม่เปลี่ยนตาม (เพราะเป็นการ Stamp ค่าคงที่ลงไปแล้ว ไม่ใช่สูตร) นอกจากนี้ กรณีที่ผลลัพธ์มันซับซ้อนมากขึ้น Flash Fill มันก็อาจจะดูไม่ออกอยู่ดี ดังนั้นการเขียนสูตรยังไงก็ยังเป็นเรื่องที่จำเป็นครับ

อ่อ! อย่าลืมว่า Flash Fill ใช้ได้แค่ Excel 2013 ขึ้นไปเท่านั้นนะครับ ดังนั้นถ้าใครยังใช้ Excel Version เก่าก็ใช้ความสามารถนี้ไม่ได้หรอกนะครับ

คุณใช้ Flash Fill ทำอะไรเจ๋งๆ บ้าง?

ใครใช้ Flash Fill ทำอะไรเจ๋งๆ ได้ มาแชร์ความรู้กันได้นะครับ อยากเห็นตัวอย่างการใช้ Flash Fill เจ๋งๆ ของเพื่อนๆ จังครับ

ใครนึกไม่ออก ลองดูรูปพวกนี้เป็นไอเดียได้ครับ

ตัวอย่างอื่นๆ

ใส่ตัวคั่นตัวเลข

ดึงวันเดือนปี

ใส่ Comment เป็นรูปภาพก็ได้นะ รู้ป่าว?

$
0
0

มีแฟนเพจถามผมว่า เราสามารถใส่รูปภาพเข้าไปใน Comment ได้หรือไม่? ผมเลยขอตอบด้วยบทความนี้ครับ

สมมติเราอยากใส่ Comment เป็นรูปภาพ ให้กับ Cell ที่ต้องการ ก็จะมีวิธีการดังนี้

  1. คลิ๊กขวา กด Insert Comment ตามปกติ
  2. คลิ๊กขวาที่ Comment เลือก Format Comment แล้วกดตามรูป จนไปเจอ Fill Effect…
  3. เลือกที่ Picture แล้ว Browse รูปที่เรามี
  4. กด Ok ไปเรื่อยๆ ก็จะได้รูปมาเป็นฉากหลังให้กับ Comment แล้ว (ซึ่งเราพิมพ์ข้อความทับได้)

การตั้งค่าให้ Excel รู้จักวันที่ในรูปแบบที่ต้องการ เช่น วัน/เดือน/ปี ไม่ใช่ เดือน/วัน/ปี

$
0
0

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

นี่คือตัวอย่างกรณีที่ตั้งค่าผิด

สิ่งที่เกิดขึ้นคือ เราตั้งใจพิมพ์รูปแบบวันที่ในรูปแบบ วัน/เดือน/ปี

แต่หารู้ไม่ว่าคอมพิวเตอร์ที่เรากำลังใช้อยู่ดันถูกตั้งค่าใน Control Panel ให้เป็น เดือน/วัน/ปี ผลลัพธ์ที่ได้เลยมั่วนิ่มเลย!!

อธิบายความผิดพลาด

  • 13/4/2017 ถูกจัดชิดซ้าย (เป็น Text) เพราะมันไม่รู้จัก เดือนที่ 13 นั่นเอง (วันที่ 4 เดือน 13 ค.ศ. 2017 ???)
  • แปลว่าเลข 10/4/2017 ที่เราเข้าใจว่าถูกต้อง จริงๆ ก็ผิดด้วย เพราะ Excel เข้าใจว่าเป็นวันที่ 4 ตุลาคม แต่จริงๆ เราต้องการเป็นวันที่ 10 เมษายนต่างหาก!!
  • ส่วนการที่ 3/5/2017 ลาก Fill Handle ลงมาแล้วเหมือนว่าเดือนจะเปลี่ยน จริงๆ แล้วสิ่งที่เปลี่ยนคือวันที่ถูกแล้ว แต่เพราะวันที่อยู่ตรงกลางเราเลยสับสน(เอามากๆ!)

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

รู้ได้ยังไงว่าคอมพิวเตอร์ของเรากำลังใช้ Format แบบไหน?

มี 2 วิธีครับ

  1. ลองกรอกวันที่ ที่มากกว่า 12 ดู เช่น วันสงกรานต์ก็ได้ 13/4/2017 ว่า Excel รู้จักหรือไม่? (ถ้ารู้จักจะต้องชิดขวา ไม่รู้จักจะชิดซ้าย)
    • ถ้าออกมาเป็นชิดซ้าย (Excel ไม่รู้จักว่าเป็นวันที่) แสดงว่าตั้งค่าใน Control Panel ผิด
  2. ลองกด Ctrl+; เพื่อ Stamp ค่าวันที่ปัจจุบันก็ได้
    • ถ้าออกมาไม่ใช่ วัน/เดือน/ปี แสดงว่าตั้งค่าผิด

วิธีตั้งค่ารูปแบบวันที่ใน Control Panel

เดี๋ยวเราจะไปเปลี่ยนค่า Region Format ใน Control Panel กันครับ ซึ่งขั้นตอนจะขึ้นกับ Version ของ Windows เลยครับ

หลังจากทำตาม Step เหล่านี้เสร็จ Excel จะรู้จักวันที่ในรูปแบบ วัน/เดือน/ปี ทันทีโดยไม่ต้อง Restart โปรแกรมเลยนะครับ
แต่อะไรที่พิมพ์พิมพ์ผิด Format ไปแล้วมันก็จะหลายเป็น Text แบบถาวรเลย ไม่ได้มีการ Convert ให้นะครับ !!

ถ้าเป็น Windows 10

1.ให้คลิ๊กที่รูป Windows แล้วไปเลือก Settings ที่เป็นรูปเฟืองก่อน

2. เลือก Time & Language

3. เลือก Additional Date Time & Regional Settings

4. เลือก Region แล้วไป Tab ชื่อ Format แล้วเลือก Thai แล้ว OK

ถ้าเป็น Windows 7

1. เลือก Control Panel

2. ไปที่ Clock, Language, and Region

หรือ ตามนี้

3. เลือก Region and Language แล้วไป Tab ชื่อ Format แล้วเลือก Thai แล้ว OK

 

ใครทำตามนี้แล้วยังทำไม่ได้ comment ไว้ได้เลยครับ ผมจะได้ช่วยแก้ปัญหาให้ได้

อะไรจะเกิดขึ้น? เมื่อใส่วันที่ใน Excel ด้วยปี พ.ศ. แทนที่จะใส่ ค.ศ.

$
0
0

หลังจากบทความที่แล้ว ผมได้ให้คำแนะนำเกี่ยวกับการตั้งค่าวันที่ให้ถูกต้องแล้ว (เรื่อง วัน/เดือน/ปี หรือ เดือน/วัน/ปี )

มาวันนี้ ผมจะขอย้ำอีกเรื่องนึงซึ่งเกี่ยวกับวันที่เช่นเดียวกัน (ซึ่งจริงๆ ได้พยายามย้ำหลายครั้งแล้ว)
นั่นก็คือ… การทำงานเกี่ยวกับวันที่ใน Excel เราจะต้องใส่ปีเป็น ค.ศ. ไม่ใช่ พ.ศ. 
เช่น หากต้องการใส่วันที่ 27 เมษายน พ.ศ. 2560 ให้ใส่ว่า 27/4/2017 ไม่ใช่ 27/4/2560 !

เพราะถ้าใส่เป็น 27/4/2560 …Excel จะคิดว่าเราหมายถึง 27 เมษายน ค.ศ. 2560 ซึ่งเป็นวันในอนาคตอีก 543 ปี!! (บ้าไปแล้ว)

บางคนถึงรู้อย่างงี้ก็บอกว่า… ฉันไม่แค่ร์หรอก! ก็เรารู้เองว่าจริงๆ มันคือ พ.ศ. 2560 ก็ได้ ยิ่งถ้านัดกับเพื่อนๆ ร่วมงานทุกคนให้ร่วมใจกันเข้าใจว่ามันเป็น พ.ศ. ก็น่าจะใช้ได้นี่นา? (เหมือนอุปาทานหมู่ หรือพวก ทฤษฎีสมคบคิดเลยแฮะ)

ผมจะบอกว่าถึงเราจะฮั้วกับเพื่อนแล้วมันก็จะผิดอยู่ดี ซึ่งผมจะแสดงให้เห็นชัดๆ ว่ามันไม่ ok ยังไงบ้าง?

ถ้าใส่เป็น พ.ศ. จะผิดยังไง?

จะเห็นว่า ถ้าใส่เป็น พ.ศ. แล้ว…

  1. Excel จะไม่รู้จักวันที่ 29 กุมภา ในปีที่ควรรู้จัก แต่ดันไปคิดว่ามี 29 กุมภาในปีที่ไม่ควรจะมีแทน! (แปลว่า ถ้านับระยะห่างของวันก็อาจจะผิดได้ด้วย)
  2. เรื่องการตรวจสอบว่าวันนั้นเป็นวัน จันทร์,อังคาร,พุธ,พฤหัส,ศุกร์,เสาร์,อาทิตย์ จะผิดไปโดยสิ้นเชิง (แปลว่า ถ้าใช้พวก NETWORKDAYS, WORKDAYS เพื่อทำงานเกี่ยวกับวันทำงาน/วันหยุด ก็จะผิดเช่นกัน)

วิธีตรวจสอบง่ายๆ ว่าใส่ถูกหรือผิด

วิธีดูง่ายๆ เลยว่าใส่ถูกหรือไม่ถูก ให้ลองเปลี่ยน Format เป็น General ดู ถ้าเลขออกมาประมาณ 4 หมื่นกว่าๆ ก็น่าจะถูก แต่ถ้าออกมา 2 แสนนี่ผิดละ (เฉพาะกรณีที่เราใช้วันที่ในยุคปัจจุบันนะ)

แล้วถ้าเราอยากให้มันแสดงเป็นปี พ.ศ. จะให้ทำไง?

วิธีจะใส่ข้อมูลด้วย ปี. ค.ศ. แต่จะให้แสดงเป็น ปี พ.ศ. น่ะเหรอครับ ง่ายที่สุดคือ ทำการเปลี่ยน Number Format ซะ

โดยเลือก Cell/Range ที่ต้องการเปลี่ยน Format แล้วคลิ๊กขวา เลือก Format Cells… แล้วทำตามรูป

ถ้าอยากกรอกเป็น ปี พ.ศ. จริงๆ แต่ให้ถูกต้องล่ะ จะทำยังไง?

จริงๆ มันก็ตั้งค่าให้กรอกเป็น พ.ศ. ได้ครับ แต่จะยุ่งยากหน่อย และห้ามลืมด้วย (ไม่งั้นก็ผิดอีก)

แต่ถ้าดึงดันว่าอยากจะทำจริงๆ ก็ทำตามนี้ครับ
คือต้อง set format ตามนี้ (ติํก Input Dates According to Selected Calendar ) ก่อนพิมพ์วันที่ลงไปนะ

 

 

แนวทางจัดการวันที่สุดมั่ว (ผิดไปแล้วทำไงดี)

$
0
0

างที่ผมพยายามเตือนเรื่องการกรอกข้อมูลวันที่ไปแล้ว 2 ตอนด้วยกัน

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

วันนี้ผมเลยทดลองกรอกวันที่มั่วๆ ลงไปในหลายๆ รูปแบบ แล้วลองเขียนสูตรดูซิว่าจะช่วยจัดการให้เข้าร่องเข้ารอยได้หรือไม่? แบบว่าอัดสูตรแบบ combo เข้าไปแบบเดียวกันดูเลยว่ามีใครรอดมั้ย?

ดาวน์โหลดไฟล์

ไฟล์ที่ผมลองทำ => mess-up-date2

Screenshot การทำ

มีหลายขั้นตอนมาก

หลักๆ คือ ผมก็คิดก่อนว่า ตัวเองรู้ได้ไงว่าวันที่อันไหนผิด ด้วยวิธีอะไร แล้วจะแก้ให้ถูกต้องได้ยังไง? แล้วเอาสิ่งนั้นแหละมาเขียนเป็นสูตร

ผมก็เลยพยายามแยก ปี เดือน วัน ออกมา แล้วลอง adjust เช่น ลบ 543 หรือ สลับวันกับเดือน

แล้วสุดท้ายเอาไปตรวจว่าอยู่ในช่วงวันที่ที่ต้องการหรือไม่? (กำหนดอยู่ข้างบน ซึ่งเป็นตัวที่ช่วยเช็คได้ดีมากๆ ตัวนึงเลย)

ถ้าอยู่ในช่วงวันที่ที่กำหนด ก็แสดงว่า ok น่าจะถูกครับ (สุดท้ายได้คอลัมน์ R)

โดยสรุป

ผมใช้หลายขั้นตอนมากๆ เพราะมีการ Error หลากหลายรูปแบบเหลือเกิน

แต่จะมีวันที่บางอันที่ผิดแล้วไม่มีทางรู้ เช่น 3/2/2017 กับ 2/3/2017 ไม่รู้เลยว่าจริงๆ หมายถึง 3 กพ. หรือ 2 มีค. กันแน่? อันนี้คุณเองแหละที่ต้องรู้ดีที่สุดนะครับ ว่างานของคุณแต่ละอันมันน่าจะอยู่ในเดือนไหน?

ใครลองทำตามนี้แล้วได้ผลหรือไม่ได้ผลยังไงช่วยบอกด้วย เผื่อผมจะได้ช่วยเขียนดักเพิ่มให้อีกนะครับ แต่ดีสุดคือ “กันไว้ดีกว่าแก้” นะครับ ^^

 

Viewing all 31 articles
Browse latest View live