Author: Sira Ekabut

  • จัดเต็มสอนวิเคราะห์ข้อมูลจาก Data.go.th จบครบทุกขั้นตอนแบบละเอียดยิบ

    จัดเต็มสอนวิเคราะห์ข้อมูลจาก Data.go.th จบครบทุกขั้นตอนแบบละเอียดยิบ

    จัดเต็ม! สอนใช้ Excel วิเคราะห์ข้อมูลจาก Data.go.th (Open Government Data of Thailand) จบครบทุกขั้นตอนแบบละเอียดยิบ ตั้งแต่ค้นหา รวบรวมและดัดแปลงข้อมูล ยันสรุปผล และ ทำซ้ำแบบสบายๆ

    ซึ่งขอเตือนไว้ก่อนว่าคลิปยาว 40 นาที แต่รับรองว่าเป็น 40 นาทีที่ได้ความรู้เพิ่มไปมากมายแน่นอน เพราะมีเทคนิคเจ๋งๆ เพียบ!

    สารบัญ

    00:00 เกริ่นนำ
    03:08 ค้นหาข้อมูลจาก data.go.th
    06:57 เริ่ม Download ข้อมูล
    13:43 รวบรวมและดัดแปลงข้อมูล
    18:48 ปัญหาในการรวบรวมข้อมูล
    32:46 สรุปผลด้วย PivotTable
    38:02 วิธีทำรายงานซ้ำเมื่อมีข้อมูลเพิ่ม
    40:01 แนะนำเพจ DIGI

    ค้นหาข้อมูล

    ค้นจาก https://data.go.th/ มีเทคนิคค้นหาไงให้หาเจอสิ่งที่ต้องการ?
    ซึ่งในคลิปผมต้องการวิเคราะห์ข้อมูล นำเข้า ส่งออก ของไทยในปี 2021 เทียบกับ 20 ปีก่อนหน้า
    (ตอน Save ข้อมูล ถ้าขี้เกียจ Save หลายไฟล์แบบในคลิป ให้ลองแค่บางเดือนก่อนก็ได้ครับ)

    รวบรวมและดัดแปลงข้อมูล

    จะเป็นการรวบรวมข้อมูล นำเข้า ส่งออก ของปี 2001 เทียบกับปี 2021 รวมกันทั้งหมด 48 ไฟล์ ทำยังไงให้รวมกันได้ง่ายๆ และเพิ่มข้อมูลได้ง่ายๆ ในอนาคต

    สรุปผล

    แสดงวิธีสรุปผลข้อมูลด้วย PivotTable โหมด Data Model ซึ่งสามารถแสดงข้อมูลแสดง Top 5 Country แต่ว่า Sub Total / Grand Total สามารถแสดงยอดทั้งหมดได้

    ทำซ้ำ

    การที่เราใช้ Power Query ช่วย จะช่วยให้สามารถทำรายงานซ้ำ เวลามีข้อมูลเพิ่มได้ง่ายๆ แค่กดปุ่ม Refresh

  • สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน

    สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน

    ในอดีตนะเพื่อนๆ ถ้าเราอยากจะสร้างฟังก์ชันใน Excel เราไม่มีทางเลือกนอกจากต้องเขียนโปรแกรม VBA อย่างเดียว แต่เดี๋ยวนี้ Excel 365 เขาไปไกลมากแล้ว เพราะได้เปิดตัวฟังก์ชัน LAMBDA มาให้เราใช้สร้างฟังก์ชันเองได้อย่างง่ายดาย ฟังก์ชันนี้เพิ่งเปิดให้ใช้งานกับคนทั่วไปตั้งแต่เดือนกุมภาพันธ์ ปี 2022 ครับ (แต่หลายคนก็อาจยังไม่ได้ลอง!)

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

    พื้นฐานการใช้ LAMBDA

    เอาล่ะเพื่อนๆ วันนี้เรามาดูการใช้งานพื้นฐานของ LAMBDA กันก่อน ซึ่งเป็นเรื่องจำเป็นสำหรับการก้าวไปสู่เรื่องที่ซับซ้อนขึ้น อย่าง LAMBDA Helper Functions เช่น BYROW, BYCOL, MAP และอีกมากมายเลยครับ สูตรพวกนี้จะเปลี่ยนมุมมองการเขียนสูตร Excel ของเราไปมากเลยทีเดียว

    =LAMBDA([parameter1, parameter2, …,] calculation)

    ตัวอย่างง่ายๆ เช่น เราต้องการคำนวณค่า BMI (Body Mass Index) เพื่อเช็คสถานะสุขภาพตัวเองกันหน่อยว่าผอมเกินไป อ้วนไป หรือกำลังดี ปกติเราจะใช้สูตร BMI = kg/m2 ในการคำนวณ

    เราก็สร้างฟังก์ชันที่ยอดเยี่ยมได้แบบนี้เลย

    =LAMBDA(Weight,Height,Weight/Height^2)

    โดยค่า Weight นั้นคือ parameter1 และค่า Height คือ parameter2 (หน่วยเป็นเมตร) ซึ่ง Weight/Height^2 ก็จะเป็นการคำนวณหรือผลลัพธ์ที่เราต้องการ

    สำหรับการใช้ฟังก์ชัน LAMBDA มันมีเรื่องแปลกอยู่หน่อยหนึ่ง ถ้าเราไปเรียกใช้สูตรตรงๆ มันจะโชว์ error ว่า #CALC! ซะงั้น

    สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน 1

    แต่ไม่ต้องห่วง ผมมีสองวิธีในการเขียนสูตรไม่ให้พังมาฝาก

    1. เขียนฟังก์ชัน LAMBDA เสร็จแล้วเรียกใช้ฟังก์ชันเลยในสูตร

    วิธีแรกคือ ใส่ค่าที่จะใช้เป็น input ในวงเล็บต่อท้ายฟังก์ชัน เช่น ถ้าเพื่อนๆ หนัก 65 kg และสูง 1.7 m ก็ใส่ว่า

    =LAMBDA(Weight,Height,Weight/Height^2)(65,1.7)
    สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน 2

    2. เขียนฟังก์ชัน LAMBDA ใน Name Manager แล้วเรียกใช้อีกที

    วิธีที่สอง เราสามารถสร้างชื่อ (Defined Name) ให้กับฟังก์ชัน แล้วใส่ชื่อฟังก์ชันใน Excel ได้เลย อย่างเช่น ตั้งชื่อว่า BMI แล้วกรอกสูตร LAMBDA เข้าไปใน Refers to:

    สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน 3

    จากนั้นออกมาใช้งานใน sheet ได้แบบไม่ต้องยุ่งยาก สามารถเรียกใช้ฟังก์ชัน BMI ได้ตามต้องการ พร้อมเห็นชัดๆ ว่าต้องระบุพารามิเตอร์อะไรบ้าง

    สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน 4
    สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน 5

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

    วิธีการแชร์ Function ที่สร้างเองให้เพื่อน

    การแชร์ฟังก์ชันที่สร้างเองให้เพื่อนไม่ยากเลยครับ ลองแล้วจะติดใจ ด้วยเครื่องมือ Advanced Formula Environment Add-in พร้อม Github Gist อย่างละเอียดราวกับเปิดสูตรลับให้กับเพื่อนๆ ได้อย่างง่ายดาย สามารถโหลดสูตรจาก GitHub แล้ว Sync เข้ากับ Name Manager ได้ทันที เจ๋งจริงๆ แถมยังคอมเมนต์โค้ดได้เหมือน DAX อีกต่างหาก

    นี่เลยเป็นตัวอย่าง GitHub GIST ของ Microsoft แอบยกมาให้ดู: https://gist.github.com/chgrossMSFT/d172fd552cf6893bcdc7942223cb0e55

    AFE 1.1 เป็นต้นไป

    สรุปการใช้ LAMBDA ฟังก์ชันที่ใช้สร้างฟังก์ชันใน Excel 365 และผองเพื่อน 6

    เจ้า Advanced Formula Environment (AFE) ที่เป็น Add-in สำหรับ Excel 365 เวอร์ชันใหม่ล่าสุด 1.1 นี้ได้เอาใจคนขี้เกียจครอบ LAMBDA ไปเลย เพราะฟังก์ชันจะถูกสร้างและจัดการใน Name Manager ให้โดยอัตโนมัติ!!

    ยกตัวอย่างง่ายๆ ใน AFE ผมสร้างฟังก์ชันชื่อ SORTUNIQUE ที่เรียกใช้ได้เองง่ายๆ แบบนี้

    =SORT(UNIQUE(range))

    พอเราให้ AFE จัดการ มันจะทำการสร้างสูตรใน Name Manager และใส่ให้เรียบร้อย กันเองเลย ทำให้การเขียนสูตรง่ายขึ้นเยอะ เป็นอะไรที่สุดยอดจริงๆ

    =LAMBDA(range,SORT(UNIQUE(range)))

    มาดูกันหน่อยกับ LAMBDA Helper Functions ทั้ง 7 ใช้ง่ายและมีประโยชน์แบบนี้

    LAMBDA Helper Function

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

    • BYROW ส่ง Array เข้า input ทีละแถว
    • BYCOL ส่ง Array เข้า input ทีละคอลัมน์
    • MAP ส่ง Array เข้า input ทีละช่อง
    • SCAN สร้าง Array ที่เป็นการคำนวณสะสม แสดงผลสะสมระหว่างทางด้วย
    • REDUCE สร้าง Array ที่เป็นการคำนวณสะสม แสดงผลสะสมสุดท้าย
    • MAKEARRAY สร้าง Array ขนาดที่ต้องการ
    • ISOMITTED เช็คว่ามีการไม่ได้ใส่ input ของ LAMBDA มาหรือไม่? เอาไว้ทำ optional parameter ได้

    สรุป

    LAMBDA + Helper Function ทั้งหลาย จะช่วยให้เราสามารถเขียนสูตรที่ซับซ้อน แล้วส่งให้เพื่อนที่ไม่ค่อยเก่ง Excel เท่าไหร่เอาไปใช้งานได้อย่างง่ายๆ ซึ่งจะเปิดโอกาสให้เกิดผลลัพธ์ที่น่าอัศจรรย์ขึ้นในองค์กรของคุณแน่นอนครับ

  • เคล็ดลับของการคำนวณทางคณิตศาสตร์ (Math Secret)

    เคล็ดลับของการคำนวณทางคณิตศาสตร์ (Math Secret)

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

    หลักการ 1 : ถ้าเจอหน่วยแปลกๆ ให้เขียนหน่วยด้วยเสมอ

    โจทย์ข้อ 1

    ขนม 5 ชิ้นราคารวม 20 บาท
    ขนม 10 ชิ้นราคาเท่าไหร่?

    ขนม 5 ชิ้นราคารวม 20 บาท
    ถ้าใช้ บัญญัติไตรยางค์ หรือเทียบสัดส่วน ก็จะสามารถตอบได้แบบนี้
    ขนม 10 ชิ้น กี่บาท? = 20/5 * 10 = 40 บาท

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

    ขนม 10 ชิ้น กี่บาท? = 20 บาท /5 ชิ้น * 10 ชิ้น = 40 บาท

    จะพบว่า ชิ้นมันตัดกันจนเหลือแต่ บาท ซึ่งถูกต้อง

    แต่ถ้าถามว่าขนม 2 โหล ราคาเท่าไหร่ ??
    แบบนี้จะใช้ 20 บาท /5 ชิ้น * 2 โหล ไม่ได้เนอะ เพราะหน่วยมันผิด (หน่วยยังค้างเป็น บาท/ชิ้น *โหล อยู่เลย)

    ต้องแก้โดยใส่ตัวแปลงหน่วยเข้าไปให้ถูกต้องตามความเป็นจริง
    เช่น 20 บาท /5 ชิ้น * 2 โหล * 12 ชิ้น/1 โหล = 96 บาท (หน่วยอื่นตัดกันหมด จนเหลือแต่ บาท แบบนี้ ok)

    ใน Excel ก็มีเรื่องที่ต้องระวังหน่วยนะ

    ลองดูโจทย์ข้อนี้ ถ้าเราจะคำนวณค่าใช้จ่าย จากการรู้เวลาเริ่มกับจบ แล้วรู้เรทค่าใช้จ่ายต่อชั่วโมงการทำงาน เราจะเอา B3*B4 เลยตรงๆ ไม่ได้ เพราะช่อง B3 ไม่ได้มีค่าที่แท้จริงคือ 5 ชั่วโมงนะ (ที่เห็น 5:00 คือ เป็นแค่ format หรือ รูปลักษณ์ภายนอก)

    เคล็ดลับของการคำนวณทางคณิตศาสตร์ (Math Secret) 7

    ต้องแปลงหน่วยของ เวลา ที่มีค่าที่แท้จริงคือ สัดส่วนของวัน (5 ชม. คือ 0.208 วัน ) ต้องแปลงให้เป็น ชั่วโมง โดยการคูณ 24 ก่อน

    เคล็ดลับของการคำนวณทางคณิตศาสตร์ (Math Secret) 8

    หลักการ 2 : คณิตศาสตร์ไม่ใช่การใช้ความจำ

    คณิตศาสตร์เป็นเรื่องของความเข้าใจ ไม่ใช่ความจำ เราควรจะ make sense กับความหมายของตัวเลขที่แสดงออกมาด้วย

    หลายคนใช้คณิตศาสตร์ในลักษณะของการจำ pattern แล้วก็เอาไปตอบเลย เช่น

    โจทย์ข้อ 2

    คน 2 คน ช่วยกันทำงานเสร็จใน 3 ชม
    คน 4 คน ช่วยกันทำงานเสร็จในกี่ชม ?

    ถ้าดันไปคิดในรูปแบบเดียวกับโจทย์ข้อที่ 1 ก็ผิดเลย… (โดยไม่ได้คิดเรื่องของความ Make sense ว่าเลขมันควรจะเพิ่ม หรือ ลด) เช่น

    คน 2 คน ช่วยกันทำงานเสร็จใน 3 ชม
    คน 4 คน ช่วยกันทำงานเสร็จ 3/2 * 4 = 6 ชม.!! (ใช้เวลาเยอะขึ้นไปอี๊กกก จริงๆ เวลาต้องลดลงสิ 555)

    แล้วเราควรใช้หลักการอะไรดี? ถึงจะไม่โดนหลอก มาดูกันครับ

    หลักการ 3 : สมการ = สิ่งที่เป็นจริง

    หลักการที่สำคัญคือการคิดว่า ในโจทย์ที่บอกเรามา อะไรคือความสัมพันธ์ที่เป็นจริง? แล้วเราค่อยเอาสิ่งนั้นมาสร้างสมการอีกที

    ซึ่งหลักการนี้สำคัญมากๆ เรามาดูตัวอย่างกัน

    ในโจทย์ข้อ 1 อะไรคือความจริงล่ะ?

    ขนม 5 ชิ้นราคารวม 20 บาท
    ขนม 10 ชิ้นราคาเท่าไหร่?

    ความจริงก็คือ ราคาต่อชิ้นของสินค้านั้นเท่าเดิมตลอด (เพราะไม่มีเงื่อนไขการลดราคาพิเศษ)
    ดังนั้นเราจะตั้งสมการได้ว่า

    ราคาต่อชิ้นตอนแรก (ซื้อ 5 ชิ้น) = ราคาต่อชิ้นตอนหลัง (ซื้อ 10 ชิ้น)
    20/5  บาท/ชิ้น = ราคา/10  บาท/ชิ้น 

    แค่นี้เราได้สมการที่สมบูรณ์แล้ว จากนั้นก็แค่ย้ายข้างหา ราคา ได้
    ราคา =20/5 *10
    ราคา =40 บาท

    ซึ่งก็ได้คำตอบที่ถูกต้อง ไม่ต้อมานั่งงงว่าจะเอาอะไรคูณหารกันดี

    ในโจทย์ข้อ 2 อะไรคือความจริงล่ะ?

    คน 2 คน ช่วยกันทำงานเสร็จใน 3 ชม
    คน 4 คน ช่วยกันทำงานเสร็จในกี่ชม ?

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

    งานที่ทำตอนแรก (ชิ้น) = งานที่ทำตอนหลัง (ชิ้น)
    

    ชิ้นงานที่ทำได้ เกิดจาก

    ชิ้นงาน (ชิ้น) = ความเร็วในการทำงาน (ชิ้น/ชม.) * เวลา (ชม.) 
    *** เปรียบเทียบคล้ายๆ กับ ระยะทาง คือ อัตราเร็ว x เวลานั่นแหละ


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

    ความเร็วในการทำงาน (ชิ้น/ชม.)   = ความเร็วในการทำงานต่อคน (ชิ้น/ชม./คน) * จำนวนคน (คน) 


    ดังนั้นจะได้ว่า

    ความเร็วในการทำงานต่อคน * จำนวนคน * เวลา   ตอนแรก = ความเร็วในการทำงานต่อคน * จำนวนคน * เวลา    ตอนหลัง 
    
    **assume ว่า ความเร็วในการทำงานต่อคน นั้นเท่าเดิม ไม่ได้มีตัวถ่วง หรือไม่ได้มีประสิทธิภาพเพิ่มขึ้น จึงหารออกจากทั้ง 2 ข้าง **
    
    จำนวนคน1 * เวลา1 = จำนวนคน2 * เวลา2
    

    แทนค่าที่รู้แล้วได้ว่า

    2 คน * 3 ชม. = 4 คน * เวลา ชม.

    ย้ายข้างหาเวลา สุดท้ายจะได้ว่า

    เวลา = 2 คน * 3 ชม. / 4 คน = 1.5 ชม.

    และนี่คือคำตอบที่ถูกต้องครับ (แหละหน่วยก็ถูกด้วย)

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

    แล้วจะรู้สมการได้ยังไง?

    อ่านถึงแล้ว หลายคนอาจจะเริ่มคิดว่า แล้วเราจะรู้ความสัมพันธ์หรือสมการในแต่ละสถานการณ์ได้ยังไงล่ะ?
    คำตอบของคำถามนี้ก็คือ การศึกษาหาความรู้ หรือ การเรียนหนังสือยังไงล่ะครับ…

    เราเรียนหนังสือเรื่องต่างๆ ตั้งแต่เด็กยันโต ทั้ง คณิต ฟิสิกส์ เคมี ชีวะ บัญชี การเงิน สังคม หรือ แม้แต่เรื่องเฉพาะทางเกี่ยวกับงานหรือธุรกิจที่คุณทำอยู่ เพื่อที่จะสามารถรู้หลักการ รู้ความจริง รู้กฏเกณฑ์ รู้ความสัมพันธ์ เพื่อที่จะใช้สร้างสมการทางตัวเลขที่ถูกต้องขึ้นมาครับ

    เช่น

    • คนที่เรียนคณิตศาสตร์ ก็จะคำนวณเรื่องต่างๆ เช่น เรขาคณิต สถิติ ความน่าจะเป็นต่างๆ หรือเรื่องซับซ้อนอย่างพวกแคลคูลัส ได้
    • คนที่เรียนฟิสิกส์ ก็จะรู้สมการที่อธิบายเรื่องการทำงานของปรากฏการณ์ต่างๆ ในธรรมชาติได้ เช่น การเคลื่อนที่ของวัตถุหรืออณุภาคต่างๆ
    • คนที่เรียนเคมี ก็สามารถคำนวณการเปลี่ยนแปลงทางด้านเคมีต่างๆ ได้อย่างแม่นยำ
    • คนที่เรียนเรื่องบัญชี การเงิน เรื่องธุรกิจต่างๆ ก็จะมีหลักเกณฑ์ของสาขาวิชานั้นๆ แบบเฉพาะทางก็มี

    Excel = การประยุกต์ความรู้

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

    โดยที่สูตรที่เขียน มันก็คือ การคำนวณตัวแปรที่เราต้องการหาค่า นั่นแหละครับ
    เช่น ถ้าผมจะแก้โจทย์ข้อ 1 กับ 2 ผมก็เขียน Excel แบบนี้

    เคล็ดลับของการคำนวณทางคณิตศาสตร์ (Math Secret) 9
    เคล็ดลับของการคำนวณทางคณิตศาสตร์ (Math Secret) 10

    ดังนั้นคนที่เขียนสูตร Excel ไม่ได้ อาจจะมาจาก 2 สาเหตุ

    1. ไม่รู้สมการ หรือ ความสัมพันธ์ (ขาดความรู้เกี่ยวกับงาน เรียกว่า ขาด Domain Knowledge)
    2. ไม่รู้สูตร ฟังก์ชัน หรือ เครื่องมือต่างๆ ใน Excel (ขาดความรู้เกี่ยวกับ Excel)

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

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

  • วิธีจัดหน้า Print ข้อมูลเยอะๆ ใน Excel ให้แบ่งหน้า Page Break ตามต้องการ

    วิธีจัดหน้า Print ข้อมูลเยอะๆ ใน Excel ให้แบ่งหน้า Page Break ตามต้องการ

    มีคนถามผมมาว่าเค้ามีข้อมูลใน Excel ที่ต้อง Print ออกมาจำนวนมาก แต่มีปัญหาในการจัดหน้าไม่รู้จะทำยังไงให้ง่าย เนื่องจากว่าจุดแบ่งหน้าในแต่ละหน้าก็ดันไปไม่เท่ากัน (แต่ละหน้าจำนวนข้อมูลไม่เท่ากัน) การจะมานั่งแบ่งหน้า insert page break เอง ก็จะเสียเวลามากๆ

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

    ข้อมูลต้นฉบับ

    ดาวน์โหลดไฟล์ได้ที่นี่

    ผมมีข้อมูลอยู่จำนวนมาก (5000 บรรทัด) ที่เรียงตามคอลัมน์ร้านค้า (StoreKey) แล้วต้องการจะ print ออกมาเป็น pdf

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

    วิธีจัดหน้า Print ข้อมูลเยอะๆ ใน Excel ให้แบ่งหน้า Page Break ตามต้องการ 11

    ตั้งค่าเบื้องต้น

    ขั้นตอนแรกที่ผมจะทำก็คือ สั่งตั้งค่าการ print ให้ความกว้าง fit พอดีกับกระดาษ 1 หน้า และสั่งให้มัน repeat การ print หัวตารางบรรทัดที่ 1 เสมอ ซึ่งส่วนนี้ทำได้ง่ายมากๆ

    วิธีจัดหน้า Print ข้อมูลเยอะๆ ใน Excel ให้แบ่งหน้า Page Break ตามต้องการ 12

    กำหนดจุดที่จะแบ่งหน้า Page Break

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

    ในช่อง I2 (ถัดจากข้อมูล) ผมจะใช้สูตร IF เช็คว่าเลข StoreKey มีการเปลี่ยนหรือไม่? ดังนี้

    =IF(E2<>E1,"y","n")

    จากนั้น Copy ยาวลงไปข้างล่าง เราก็จะได้จุดที่จะทำการ Insert Page Break แล้ว ลอง scroll ลงไปดูข้างล่างได้

    วิธีจัดหน้า Print ข้อมูลเยอะๆ ใน Excel ให้แบ่งหน้า Page Break ตามต้องการ 13

    ทำยังไงให้ Insert Page Break ในจุดที่ต้องการ?

    มาถึงตรงนี้เราจะต้องใช้ Code VBA เล็กๆ น้อยๆ ในการช่วยแล้ว โดยเราจะใส่ Code นี้ลงไปใน Module ของ VBA

    โดยอย่าลืมเปิด Ribbon Developer ขึ้นมาก่อน (อยู่ใน Excel Option->Customize Ribbon)

    วิธีจัดหน้า Print ข้อมูลเยอะๆ ใน Excel ให้แบ่งหน้า Page Break ตามต้องการ 14

    จากนั้น กด Alt+F11 เพื่อเข้าสู่ VB Editor แล้วคลิ๊กขวา Insert Module ตามรูป

    วิธีจัดหน้า Print ข้อมูลเยอะๆ ใน Excel ให้แบ่งหน้า Page Break ตามต้องการ 15

    แล้ว Paste Code นี้ลงไป เพื่อให้มันวน Loop ใส่ Page Break ในจุดที่เรา Mark ตัว y เอาไว้

    
    Sub InsertBreak_At_Mark()
    Dim i As Long
    Dim firstAddress As String
    Application.ScreenUpdating = False
    
    
    With Range(ActiveCell, ActiveCell.End(xlDown))
            Set c = .Find("y", LookIn:=xlValues)
            If Not c Is Nothing Then
            firstAddress = c.Address
                Do
                    'MsgBox (c.Address)
                    c.PageBreak = xlPageBreakManual
                    Set c = .FindNext(c)
                Loop While Not c Is Nothing And firstAddress <> c.Address
            End If
        End With
    
    Application.ScreenUpdating = True
    End Sub
    

    จากนั้นกลับไปยังหน้า Excel แล้วให้เลือกคอลัมน์ I ที่เราเขียน y/n ไว้ แล้ว Run Code ตามรูป

    วิธีจัดหน้า Print ข้อมูลเยอะๆ ใน Excel ให้แบ่งหน้า Page Break ตามต้องการ 16

    เท่านี้มันก็จะกำหนดพื้นที่ Mark ให้เรียบร้อยแล้ว ลองกด Page Break Preview ดูได้

    วิธีจัดหน้า Print ข้อมูลเยอะๆ ใน Excel ให้แบ่งหน้า Page Break ตามต้องการ 17

    เก็บตกจุด Break เกิน ที่บรรทัดที่ 2

    อย่างไรก็ตามตอนนี้สุตรเราดัน Mark ว่าจะ Break ที่บรรทัดที่ 2 ด้วย ซึ่งไม่ Makesense ดังนั้นถ้าเราแก้ค่าหรือแก้สูตรให้บรรทัดที่ 2 เป็น n ไปก่อนได้ก็จะดีกว่า หรือจะไป remove page break เองก็ได้เช่นกัน โดยเลือกบรรทัดที่ 2 ไว้ แล้ว Remove Page break ดังรูป

    วิธีจัดหน้า Print ข้อมูลเยอะๆ ใน Excel ให้แบ่งหน้า Page Break ตามต้องการ 18

    ลอง Print / Save PDF ดู

    วิธีจัดหน้า Print ข้อมูลเยอะๆ ใน Excel ให้แบ่งหน้า Page Break ตามต้องการ 19

    จะเห็นว่าได้ผลลัธ์ตามต้องการครับ

  • แบ่งปันประสบการณ์และแรงบันดาลใจในการพัฒนาฝีมือ Excel

    แบ่งปันประสบการณ์และแรงบันดาลใจในการพัฒนาฝีมือ Excel

    วันก่อน ผมได้ Post ใน เพจเทพเอ็กเซลเพื่อเชิญชวนเพื่อนๆ มาร่วมแบ่งปันประสบการณ์ สร้างกำลังใจดีๆ ด้วยการเล่าเรื่องราวเกี่ยวกับพัฒนาการของการใช้ Excel ของแต่ละคน ซึ่งมีเพื่อนๆมาร่วมแบ่งปันประสบการณ์ดีๆ มากมาย

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

    ใครพร้อมที่จะอ่านเรื่องราวเพื่อสร้างแรงบันดาลใจดีๆ ก็เชิญได้เลยครับ

    สมัยตอนก่อนเรียนจบมีคลาสexcel ของมหาลัย ที่สอนแค่หลักง่ายๆเช่น sum/average/count/vlookup เราก็นึกว่ามันทำได้แค่นี่ เราเข้าใจ เราเก่งแล้ว เข้าทำงานบริษัทที่แรกด้วยความมั่นใจว่าสกิล excel เราคือขั้น advanced 55555

    พอไปถึงเจอไฟลพี่คนเก่า ทำเอาช็อคมาก ไม่เห็นเหมือนที่รู้จัก ทั้ง sumifs/index match/if ต่างๆ รวมถึงทำให้เราตระหนักว่า ทำไมเราทำงานที่ง่ายกว่าเค้าเยอะ แต่เราถึงเสร็จงานช้ากว่าเค้ามาก

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

    จากวันนั้นที่เป็นพนักงานระดับธรรมดา จน ตอนนี้เป็นเมเนเจอร์ ที่ปัญหาในการทำงานไม่ใช่ excel อีกต่อไปแล้วค่ะ 😄

    Serendipity Milktea

    “เริ่มจากศูนย์ในจักรวาลExcel”

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

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

    ผมเริ่มจากการวางแผนการเรียนก่อน ผมเอาทุกอย่างที่เป็น Excel มาวางดูก่อนว่ามีอะไรบ้าง จากนั้นผมศึกษาตามสิ่งที่เราคิดว่าเราจะต้องเอามาใช้ก่อน

    ผมเรียงการศึกษาตามนี้ครับ Formulas->การสร้างฐานข้อมูล->Dashboard->VBA->Pivot Table->Power Query

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

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

    แต่เรียกว่าตอนนี้ผมสามารถเอาตัวรอดและแก้ปัญหาได้ โดยใช้ทั้งหมดที่ศึกษามา สามารถให้คำปรึกษาของเพื่อนร่วมงานได้บ้าง ออกแบบไฟล์งานให้ทีมงานใช้ได้บ้าง อ่านcode VBA ที่ไม่ซับซ้อนได้บ้าง cleaning data โดยใช้ power query และนำเสนอผ่าน Dashboard โดยใช้ Pivot Table ได้

    ตอนนี้ผมกำลังจะต่อยอดในการศึกษา เกี่ยวกับ Power BI และอื่นๆต่อไป

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

    Cr.อาจารย์ทุกท่านที่สั่งสอนและให้คำปรึกษา🙏

    ขอบคุณทุกท่านที่เสียสละเวลาอ่านจนจบครับ🙏

    Hatsanai Pop

    เริ่มงาน15ปีที่แล้ว ใช้Excelไม่เป็นเลย ไปวันแรกพี่ที่ทำงานสอนใช้Excelเพราะต้องใช้ทำงานทุกวัน ผมจดยันสูตรSum จดทุกตัว เพราะใช้ไม่เป็น

    แต่ที่น่าตกใจคือ พี่ที่สอนบอกว่า พรุ่งนี้พี่ทำงานวันสุดท้ายแล้วนะ!! นึกสภาพตัวเอง ทั้งofficeนั่งกะคอม1เครื่อง กับผจก. เลยค้องดิ้นรนเอาตัวรอดมาเอง ทั้งไปดูสูตรเก่า ลองผิดลองถูกเอง ไปหาเทรนอีก5หลักสูตร

    15ปีต่อมา ตอนนี้ก็พอเอาตัวรอดละครับ ในแผนกใครมีปัญหาต้องเรียกหาไปแก้ให้ บางทีมีต่างแผนกเรียกอีก

    ตอนนี้Excelขอให้บอกอย่างชอบเลยครับ Analysis data ทำreport สร้างformatต่างๆเพื่อลดเวลาทำงาน

    ทุกวันนี้ยังเก็บสมุดที่จดวิธีใส่สูตรเมื่อ15ปีที่แล้วไว้อยู่เลยครับ

    Mini Jazz Ja

    16ปี….. แห่งความหลัง ..มีเด็กจบใหม่เขียนโปรแกรมภาษา VB ได้ทำงานที่แรก ก็เป็นโปรแกรมเมอร์เลย … แต่.ต้องเขียนด้วย Macro นะ หรือ VBA นั่นล่ะ..ในจินตนาการคิดว่าเอาน่าเหมือนๆกันล่ะ คงไม่ยาก แต่หาทางเข้าหน้าเขียนโค้ดยังไม่เป็นเลย… ใช้ Excel ธรรมดา ก็ยังไม่เป็น … ความรู้ หรือสูตร คำนวณ ต่างๆ เรียนรู้จาก user ต่างแผนกทั้งนั้น ไม่ว่าจะเป็น

    เขียน Macro เช็คข้อมูลว่าอันไหน Duplicate ให้หน่อยสิ เดิมๆ ก็เขียนโค้ด for… next ไปสิคะ ไม่รู้อ่า หลังๆ อ้าว excel ก็ทำได้ ไปนั่งเขียนโค้ดทำไมวะเนี่ยะ …

    แผนก HR: น้องเขียน Form ให้ผู้สมัคร กรอกให้หน่อยสิ เอาแบบ ล็อคฟิลด์ นะ ต้องกรอก ตรงนี้ …ไอ้เราก็เขียน ฟอร์ม ใน VBA ไปสิ แต่เดี่ยวนี้สิ … มี fill form มันง่ายมากๆ

    แล้วแต่ก่อน ไม่รู้หรอก Table ใน excel จะทำให้ชีวิตเราง่ายมากๆ แต่ก่อน ต้องชี้ หรืออ้างอิงชีท ให้เปรียบว่าเป็น table เอา for cells(i,1).value = 0 then … อะไรก็ว่าไป..

    โอ้ย…แต่ก่อนการทำ message error warning ⚠️ เป็นเรื่องปวดหัวมาก แต่ตอนนี้ ใช้ conditions format ให้ alerts user ก็ได้ล่ะ มันง่ายมาก

    ยิ่งตอนเขียนโปรแกรมรวมไฟล์นะ ต้อง เขียนโค้ด เปิดไฟล์ > คำนวณหาช่วงของข้อมูล > copy > คำนวณหาจุดสุดท้ายที่จะวาง > วางข้อมูลแบบ special นะแล้วก็ทำแบบนี้ จนครบทุกไฟล์ แต่ตอนนี้สิ… เรามี Power Query แล้วโอ้ววว มันสะดวกอะไรเยี่ยงนี้…

    แล้วยิ่งได้ทำงานเกี่ยวกับ ERP ตอนทำ Data migration นะ โอ้วบอกเลยมันทำให้เราทำงานได้เร็วขึ้นมากๆ เพราะเราเก่งการใช้ excel ขึ้น

    แต่ถ้าถามว่าใช้ครบหรือยัง? ตอบเลยว่ายังค่ะ เพราะเราก็จะหาจากในนี้แล่ะ เฉพาะ ส่วนที่เราต้องนำไปใช้ในงานเท่านั้น …

    สิงอยู่ในห้องนี้ ตลอดไป อิอิ 😅🤣

    Senadee Kingkarn

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

    Kom Pussorn

    ตอนเรียนจบผมแทบไม่เคยใช้ excel เลย เข้าทำงานใหม่ๆ ก็ทำได้แค่สร้างตาราง (ที่ไม่ใช่ Table) สูตร SUM ยังไม่รู้จักเลย

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

    แต่พอศึกษาเยอะขึ้นมันก็ทำให้รู้ว่าสิ่งที่เรารู้มันน้อยมาก ยิ่งอ่านเยอะยิ่งรู้สึกว่าเรายิ่งรู้น้อย

    ผมมักจะแนะนำคนที่ถาม excel ผม 2 เรื่องเสมอ

    – ถ้าผลลัพท์ที่เราต้องการ มีเงื่อนไข มี logic แน่นอน ให้คิดไว้ก่อนว่า มันเขียนสูตร excel ได้ (ส่วนจะเขียนยังไง นั่นเป็นอีกเรื่อง ไว้ค่อยไปหาต่อ)

    – ความรู้มีต้นทุนเสมอ หลายคนบ่นอยากเก่ง excel แต่ไม่ขวนขวายหาความรู้ แบบนี้ยังไงก็ไม่เก่ง

    เดี๋ยวนี้หาความรู้ excel ง่ายกว่าเมื่อก่อนเยอะ มีทั้ง website , Facebook, Youtube มีของฟรีให้เรียนเยอะแยะ มีกรุปคอยตอบคำถาม

    ผมเอา excel มาใช้กับงานเยอะมาก เปลี่ยนรูปแบบรายงานและการเก็บข้อมูลใหม่แทบจะทั้งแผนก โดยเฉพาะ Power Query ในระยะหลังๆ ทำให้ลดเวลาทำงานของแผนกได้เยอะมาก (น่าจะเกินเดือนละ 100 ชั่วโมงแล้ว)

    ตอนนี้คิดว่าผมน่าจะรู้ excel ติด 1 ใน 10 ของบริษัท เป็นคนสอน excel ให้หลายแผนก แต่ถ้าเทียบกับคนอื่นๆในกลุ่ม excel ยังถือว่ารู้น้อยมากๆ

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

    Kitty Ti

    ผมเป็นหมอครับ ซึ่งจริงๆแทบไม่ได้เกี่ยวข้องกับ excel เท่าไหร่เลย มีแค่ความรู้ excel ม. ปลาย ใช้สูตรได้เล็กๆน้อยๆ + – * / ผูกสูตรไปมาตามประสาคนใช้ไม่ค่อยเป็น แต่พอทำตรรกศาสตร์ได้ก็เลยใช้ if true false and or not เป็น

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

    หลังจากนั้นก็ค่อยๆสะสมประสบการมาเรื่อยจนมามี COVID นี่แหละครับ วัคซีนเข้า ก็ต้องมานั่งดูฐานข้อมูลกันต่อ ทำไปทำมา แอบหนีไปใช้ google sheet เพราะต้องทำ google form แต่สูตรต่างๆก็คือๆกันจนกระทั่ง sheet รับไม่ไหวข้อมูลเยอะมากๆเปิดทีคือคอมค้าง เลยต้องกลับมาใช้ excel เหมือนเดิม

    คราวนี้ได้ความรู้เพิ่ม มาเป็นสาย power query ก็งูๆปลาๆมาเรื่อยๆ แต่ก็สอนน้องๆและทีมให้ช่วยกันทำต่อได้

    จากไม่ค่อยได้ใช้มาเป็สใช้เยอะขึ้น สะสมประสบการณ์ แล้วสอนคนอื่นต่อ เหลือ power bi กับ tableau นี่แหละครับที่ยังไม่ได้ลองเล่นเพราะใช้ mac เลยเข้าไม่ถึงของพวกนี้ใช้แต่ data studio

    จบครับ 555

    Parnoupat Narasuppharat

    ผมเป็นคนขี้เกียจทำอะไรที่ยุ่งยากระดับนึง เลยทำให้สนใจ Excel เป็นพิเศษ ‘ บางครั้ง มักจะได้ยินว่า อะไรยุ่งๆ เอาไปให้มันทำนี่ละ เดี๋ยวมันก็หาวิธีขี้เกียจออกมาได้เอง 😆

    ขอย้อนกลับไปตั้งแต่สมัยแรกทำงานที่แรก

    ทำงานที่ 1 งานออดิท :

    เป็นครั้งแรกที่เริ่มรู้จักกับ [Excel formula]
    1.Vlookup ตอนนั้นตื่นตาตื่นใจมาก จากที่รู้จักเพียงแค่ Sum ธรรมดา

    ต่อมารู้จัก
    2.Sumif ในการรวมข้อมูล และค่อยไปรู้จักกับ
    3.Text to column แล้วต่อที่
    4.Pivot table
    หลักๆ ที่ใช้มีเพียง 4 สูตรนี้เท่านั้น (ตอนนั้นไม่ได้สนใจเรียนรู้มาก ทั้งๆ ที่หัวหน้าก็เก่งมากระดับนึง)

    ช่วงเวลานั้น ใช้วนไปมากับสูตรพวกนี้ คิดว่าเราเก่งแล้วนะเนี่ย 😆

    ทำงานที่ 2 งานบัญชี : หัวหน้าที่สอนงานใช้ [Shortcut key] คล่องมาก ตอนสอนงานเลยทำให้รู้สึกสนใจเรื่องนี้มากขึ้น (และเริ่มรู้จักเพจ Inwexcel จากตอนนี้เอง {ชื่อก่อนหน้า}) ทำให้ไปศึกษาอย่างจริงจังขึ้น บวกกับเนื้องานบัญชี รีพอททำให้เริ่มค้นหาสูตรมาปรับใช้กับเนื้องานเพิ่ม และกลุ่มตัดข้อความมากขึ้น Left, Right, Mid, Len, Trim, Substitute, Replace, Search, Find, Char และเป็นครั้งแรกที่เริ่มใช้งาน Sumifs

    ที่ทำงานที่ 3 งานบัญชี :

    พอผ่านที่ 2 มาคิดว่าเราคงเริ่มเก่งแล้ว มีทั้งสูตร + Shortcut key จนกระทั่งมาเจอ Excel ที่ใช้ทำ Budget ของที่นี่เจอเข้าไปงงตาแตกมาก เจอซ่อนชีทงานแบบ Very hidden ใช้เวลาหาวิธีอยู่หลายวันว่าทำไมสูตรที่ลิ้งค์มาจากไฟล์ Unhide ออกมาไม่ได้ ทำให้นำพาไปสู่การรู้จัก VBE และ Macro จนกระทั่งก่อนออกจากที่นี่ก็เริ่มหัดใช้ Macro เพื่อจัดรูปแบบไฟล์แบบง่ายๆ ก็คิดว่าเราเริ่มพัฒนาขึ้นอีกขั้นนึง

    จนมาถึงที่ทำงานที่ 4 งานบัญชี :

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

    ขอบคุณประสบการณ์ที่ผ่านมาทั้งหมด เพจ Thepexcel และวิศวะกรรีพอร์ท ที่ทำให้ผมสามารถขี้เกียจได้มากขึ้น

    Chalit Srisinthorn

    ใช้ excel ดีขึ้น เพราะความขี้เกียจ ขี้เกียจที่ต้องมาทำอะไรซ้ำๆหรือซับซ้อน มันต้องมีวิธีที่ทำให้ง่ายขึ้น เร็วขึ้นกว่านี้ซิ

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

    Parkpoom Pumithed

    ผมเริ่มต้นจากสมัยเรียนมหาลัยใช้แค่ทำบัญชีง่ายๆ บวกลบคูณหาร และทำตารางเท่านั้น ต่อมาเรียนวิศวกรรมศาสตร์ ได้ใช้เรียนพื้นฐานวิชา computation พวก regression , curve fitting , สถิติ ฯลฯ จากนั้นเริ่มทำงานด้านวิศวกรรมเกี่ยวกับเครื่องปรับอากาศก็ยังได้ใช้ในการคำนวณเพื่อออกแบบแอร์ การคำนวณค่าความร้อน ปริมาณ stock ของ การเก็บบันทึกข้อมูล

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

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

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

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

    Danudet Detdecha

    เมื่อก่อนก็ใช้ Excel ปกตินี่แหละครับ ถึงจะมีการเรียนรู้พัฒนาการใช้งานบ้างแต่ก็ยังเป็นแบบค่อยเป็นค่อยไป จนวันนึงบริษัทซื้อ Office 365 มาเท่านั้นแหละ ความรับผิดชอบที่ต้องออกแบบระบบ Excel บน Cloud ให้ทีมงานใช้ร่วมกัน นี่แหละคือแรงกระตุ้นที่สำคัญเลยครับ เอาทุกสูตรเท่าที่ไหว ต่อยอดไป Power query และ ก้าวมาแตะ Power BI จนได้😁

    Niti Changket

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

    Gon Supawiwat

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

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

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

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

    Thana Boon

    ตั้งแต่เรียนจบ ม.ปลาย ก็ไม่เคยได้ใช้ excel อีกเลย จนความรู้ค่อยๆหายไป จนกระทั่งอายุ 30 ได้ทำงานกับหัวหน้าใจดีคนหนึ่ง เขาคงมองเห็นอะไรบางอย่างในตัวเรา

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

    พอเข้าเดือนที่ 3 หัวหน้าก็ให้เราลองใช้สูตร SUM ซึ่งถือเป็นสูตรแรกเลยที่เรารู้จัก แล้วก็ได้รู้จักสูตรเพิ่มมากขึ้นเรื่อยๆ SUM, AVERAGE, MAX, MIN… จากนั้นเราก็รู้สึกว่า มันสนุก ท้าทายดีแฮะ ไม่เคยรู้มาก่อนเลยว่า excel จะทำอะไรได้มากกว่าการทำตารางข้อมูล

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

    ตอนนี้ผมกำลังศึกษาวิธีการเขียน VBA แต่ยังไม่ค่อยเข้าใจเท่าไหร่ อยากเข้าใจไวๆ เลยเข้ามาอาศัยตามกลุ่ม excel ต่างๆ เพื่อหาข้อมูลเพิ่มเติมครับ

    Strawhat Luffy

    สั้นๆครับ เพราะความขี้เกลียด เลยคิดว่าทำไงให้มันเร็ว คนสอนต่อๆกันมาในองค์กรก็บ้านๆอะครับ🤣🤣ไม่ไหวจริง

    Thappalith Rodart

    เมื่อก่อนเก่งอยู่แล้ว

    แต่ตอนนี้

    เก่งมากครับ

    ขอบคุณครับ

    Perapong Wongprasit

    เมื่อก่อนชีวิตไม่คิดว่าจะต้องใส่ใจในเรียนรู้เรื่อง excel อะไรมากนัก เพราะเรียนในสายวิทยาศาสตร์สุขภาพเป็นเภสัชกร เมื่อก่อนใช้ excel แค่ใช้สูตร sum average ก็คิดว่า excel เจ๋งแล้ว แต่พอเปลี่ยนสายงานมาเป็น QC ในโรงงาน ได้จับคอมพิวเตอร์มากขึ้น ใช้ excel มากขึ้น เห็นหัวหน้าผูกสูตร workday สูตรคำนวณสมการ ก็รู้สึกว่าเจ๋งขึ้นไปอีก

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

    บางอย่างที่เราไม่รู้ เช่นการ Ctrl+ลาก Sheet เพื่อ Copy sheet เป็นต้น ก็ได้จากเทพเอ็กเซล ทำให้รู้สึกว่า excel ทำอะไรได้มากกว่าที่คิดถ้าเรารู้และใช้เป็นค่ะ😀🙏

    Janly Thiwan

    ผมรู้จัก excel ก็ตอนเรียน ป ตรี ใช้เป็นแค่ บวก ลบ พ๊อตกราฟ และ คำนวนพื้นฐานอื่น ใช้สูตรไม่เป็นแม้แต่สูตร sum บอกตรงๆตอนนั้นมี อคติกับ excel มากๆพอจบมาเริ่มทำงานก็ยังไม่ได้ใช้

    พอย้ายงานไปอยู่บริษัท ญี่ปุ่นเจ้านายได้เปิดโลกการใช้ excel ให้ ตอนนั้นก็เริ่มใช้ vlookup pivot table และสูตรอื่นๆ พอย้ายงานอีกรอบผมเริ่มศึกษาอย่างจริงๆจัง ทั้ง เขียน VBA ,power query ,Bi พอใช้พวกนี้เป็น รู้สึกชีวิตง่ายขึ้นเยอะ

    ทุกวันนี้เป็นวิศวกรการผลิต แต่ก็เป็นที่ปรึกษาด้าน excel ให้ที่โรงงานแทนแผนก it ล่ะ สำหรับอาจารย์ ที่สอน เทพ excel ,excel wizard ,วิศวกรรีพอต ,excelisfun ล่าสุดก็พึ่งได้งานใหม่ เพราะexcel

    รักเมีย ที่สุดในโลก

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

    จากนั้นก็เริ่มพัฒนาเรียนรู้ หลายๆอย่าง ตั้งแต่ Pivot table Vlookup จนทำได้แต่เจิปัญหาอีกว่าเวลาใช้ vlookup แล้วมีข้อจำกัด เลยได้รู้จักกับ index match

    ปัจจุบันลามไปถึง power query, การจัดการต่างๆ ให้ง่ายขึ้น สูตรของงานที่ทำล่าสุดคือหาค่า mode ด้วยการทีหลายเงื่อนไข สูตรอยู่ที่ประมาณ 10บรรทัดละครับ

    Sarasin Pete Songsithipornchai

    มีอยู่วันหนึ่งเพื่อนร่วมงานมันเขียนVBA. แล้วเห็นว่ามันอเมซิงมากเลยพยายามเรียนเพื่อแกะโค๊ดมันครับ ปัจจุบันก็ยังแกะไม่ออก

    Keng Nimmannit

    ผมโดนมอบหมายให้ทำ financial model ครับ ตอนแรกคิดว่าการใช้ sumif และ vlookup ได้ก็คือเก่ง excel แล้ว จนต้องมาเริ่มผูก assumption ให้เป็น model เริ่มลึกและมีปัญหาในการแก้ assumption อยู่ตลอด

    เลยเริ่มคิดว่ามันต้องมีวิธีที่ดีกว่านี้ซิ เราไม่ใช่คนแรกที่ต้องทำอะไรแบบนี้ เลยเริ่มหาคอร์สเรียนครับ อ่านเพจเทพเอ็กเซล วิศวกรรีพอร์ต ทั้งเรียนเองทาง YouTube Edx Coursera Skillane ทั้งให้บริษัทส่งไปอบรม พอรู้ตัวอีกทีก็ชอบการเรียนออนไลน์ไปแล้ว มันสนุกที่เอามาใช้งานได้จริงๆ ต่างจากที่เรียนในโรงเรียนที่ไม่เห็นการใช้ประโยชน์

    เริ่มรู้จัก tableau power bi และสิ่งที่เปลี่ยนชีวิตการทำงานทั้งหมดของผมเลย คือ power query และ dax ครับ ข้อเสียเพียงอย่างเดียวคือ เวลา shape data ในหัวแล้วอธิบายคนอื่นๆ จะเหมือนพูดภาษาต่างดาว

    Cole Marine

    เกิดจาก การต้องมานั่งทำข้อมูล เป็นเวลาหลายชม. ต่อสัปดาห์ จนทนไม่ไหว เอา Power Query กับ Indirect มาช่วยทำให้งานเสร็จเร็วขึ้น ตรวจได้เร็วขึ้น ใช้เวลาน้อยลง ชีวิตดีขึ้น มีเวลาไปทำงานอื่นมากขึ้น

    Peter FA-Finnomena

    เริ่มทำงานก็ใช้ excel แบบพื้นฐาน สร้างกราฟ หาผล sum average ต่อมาก็เริ่มพัฒนาขึ้นใช้ vlookup จนตอนนี้เริ่มเขียน vba ใน excel ได้บ้าง ทำให้งานที่ทำรวดเร็วขึ้น จากที่ต้องมานั่งคีย์แต่ละตัว ตอนนี้ใช้ vba ดึงข้อมูล สรุป report ดีมากเลยค่ะ

    Pornpimon Tepjasadapubean

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

    จากนั้นเลยเสาะหาและพบ VBA ในสมัย 14 ปีก่อน และฝึกและนำนำเสนอปรับปรุงให้พี่ๆสมัยนั้นครับ โชคดีที่พี่ๆส่วนใหญ่เป็นผู้หญิงเลยเอ็นดูสอนงานที่ทำmanualและเปิดใจรับสิ่งใหม่ๆเลยได้ลองทำเยอะครับ

    Riuz Mark Costiaz

    ช่วยหัวหน้าทำสรุปยอดขาย แค่เอาตัวเลขมาปะๆ ทำกราฟสรุป จนย้ายมาทำดาต้า ทำpivot vlookup จนตอนนี้ใช้ powerquery power BI ได้ ยังคงเฝ้ามอง python R แบบงงๆอยู่

    Jonah Panitan

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

    P’Taung Kung

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

    Milk Nutcha Marod

    ผมเริ่มทำงานตอนเรียนจบใหม่ ความรู้ด้าน Excel น้อยมาก ๆ

    ไม่รู้จักเลยพวก Vlookup, Pivot Table งานทำให้ต้องศึกษาหาความรู้เพื่อพัฒนางานให้ทำง่ายขึ้น รวดเร็วขึ้น ได้ซื้อหนังสือ excel power up มาเรียนรู้เพิ่มทำให้รู้จักโลกของ Excel มากขึ้นไปอีก

    โอ้การใช้แค่ Execl สามารถช่วยเก็บและสรุปข้อมูลได้รวดเร็วและมีประสิทธิภาพ มากๆ

    ตอนนี้ผมได้นำความรู้นั้นมาสอนเพื่อนร่วมงานในองค์การต่อ

    Karatel Sul

    คนที่เปิดโลกเรื่องExcelคือ หัวหน้าเก่าค่ะ ประชุมเช้า มีสอนเกร็ดความรู้ให้นิดหน่อย เรื่องExcel หลังจากนั้นก็ต่อยอดมาเรื่อยๆอยากได้สูตรไหนก็หาเอา หาได้ทีก็wowทีค่ะ😁

    Arisara Chaisong

    ได้มาใช้ excel ตอนทำงาน สมัยเรียนอาจารย์สอนแค่พื้นฐาน พวกสูตรหรือฟังก์ชันต่างๆก็เรียนน้อยมาก อาจเพราะเรียนสายภาษา

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

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

    อยากพัฒนาให้เขียน macro เป็น แต่ก็ยังไม่ได้เริ่มต้นศึกษา

    MilkyWay Panwipa

    ส่วนตัวเกิดจากควาทไม่ชอบทำอะไรซ้ำๆ

    วนไปวนมา เลยลองหาวิธีนู่นนี่นั่น จนได้มาเจอเพจนี้ครับ ทริคหรือเทคนิค รวมถึงพื้นฐานหลายๆอย่างช่วยตอบโจทย์ได้เยอะเลยครับ

    ปัจจุบันรู้สึกดีเวลาได้ช่วยเพื่อนร่วมงานแก้ไฟล์ excel ครับ

    SK Ta’Ka

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

    Ardchava Nakpongsathon

    ผมเคยเรียน excel แบบงูๆปลาๆตอนมัธยมครับ แล้วไม่เคยแตะหรือใช้อีกเลยยาวๆ จนจบมหาลัย ทำงาน ด้านIT Support 5ปี จนลาออกเพราะปัญหาที่ทำงาน กลับมาเชียงใหม่ ก็ไปเจอตำแหน่งนักวิเคราะห์ข้อมูล เลยไปสมัคร และ ซื้อหนังสื่อexcel เบื้องต้นมาอ่าน แต่ปรากฎว่าเจ๊ง ตอนทดสอบทำ vlookup ไม่ได้ ลืม งานเข้าเลย จำได้แค่SUM เลยคิดว่าจบละงานนี้ แต่หัวหน้าก็รับเข้ามาแบบงงๆ

    ผ่านมา5 ปี ตอนนี้ทำได้หมด ทั้งสามสี่เงื่อนไข Match Xlookup Power Query เบนเข็มมาทำ Powerbi เพิ่ม เขียนDax

    Thanaphon Saethong

    ถ้าหัดเริ่มหัดใช้จริงๆจังๆ ไม่นับพวก + – × ÷ ธรรมดา

    ก็จะเป็นตอน ทำงานที่แรกเป็น วิศวกรออกแบบ

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

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

    และแน่นอนมันมีโอกาสที่ผ่านหลายชุด แต่ชุดไหนบ้างละที่ผ่าน?

    ตอนนั้น ลองค้น Google นี่แหละว่าทำไงดี ไปเจอเวปสอนของ ต่างประเทศ (เวป excel-easy) มันมีอธิบายเรื่อง VBA ใน Excel และส่วนตัวเคยเรียน VBA จาก ตอนเขียนโปรแกรมตอน ม.ต้น เลยเขียนจับวน loop ทุกเงื่อนไขจากตัวแปรต้นทุกตัว

    ถ้าไม่ผ่านก็วนหาไป แต่ถ้าผ่านเงื่อนไข ก็ให้ขึ้นบรรทัดใหม่ เพื่อเก็บค่าที่ผ่านไว้

    หลังจากงานนั้น เลยมานั่งดูศึกษาเวปนี้ต่อว่ามีทริกอะไรให้เล่นใน Excel อีก ถ้าใครอยากได้ตัวอย่าง เวปนี้ก็มีตัวอย่างให้โหลดไปลองเขียนกันแต่ละคำสั่งได้ด้วย

    หลังจากนั้น?

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

    ได้เริ่มเจอบอร์ดที่มาแชร์ Excel, Group line excel, เพจต่างๆ ที่เขียนมาให้เพิ่มความรู้มากขึ้นเรื่อยๆ ก็ต้องขอบคุณทุกอย่างจริงๆที่ค่อยๆหล่อหลอมกลายเป็นตัวเราเรื่อยๆ

    ส่วนตอนนี้?

    กำลังหนีมาเรียน ป.โท Data Science พวก Big Data (เริ่มหนีไปเล่น Power BI กับ Power Querry)

    พร้อมกับทำงานควบคู่กับตำแหน่ง Finance Analyst

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

    เป็นว่าควรมีพื้นฐาน Excel มาติดตัวไว้เถอะครับ

    เพราะนอกจากมันจะช่วยให้เราทำงานต่างๆได้ง่ายขึ้น มันจะช่วยเพิ่มโอกาสให้เติบโตเราได้จริง

    ปล.ย้อนกลับไปดูมันตลกดีนะที่ ผมมาหัดใช้ Excel จาก VBA เป็นก่อนที่จะใช้สูตรธรรมดาต่างๆอย่างพวก SUMIF, VLOOKUP, INDEX+MATCH เป็น 55555

    Peetikorn Pattabongse

    เหตุเกิดจากย้ายสายงานจากบาร์เทนเดอร์สู่สายบริหาร มาวันแรกใช้ ms ไม่เป็นทุกสายพันธุ์😂😂 พยายามขอไฟล์พี่คนเก่าเพื่อมาหัดทำตาม แต่ก็โดนว่า ” หัดไปอ่านเองบ้างนะ”

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

    Kan Da

    สมัยเรียน มีวิชานี้และเขียน VBA ตอนนั้น (20 กว่าปี แล้ว) มองว่าเป็น วิชาไม่สำคัญ ไม่สนใจ ไป focus แต่ C กับ pascal เพราะคืดว่า programmer เค้าใช้ c กัน (ความคิดตอนอายุ 18 อ่อนประสบการณ์มาก)

    สุดท้าย ได้ เกรด D (50 คะแนนจาก 100) ไม่รู้สึกเสียใจ แต่เสียดายตรงที่มันฉุดเกรดเฉลี่ยลงไปเยอะ

    พอเริ่มทำงานไปเรื่อยๆ import/export ข้อมูล ก็ต้องใช้, ทำรายงานก็ต้องใช้, analyze data ก็ต้องใช้

    เคยไปทำงานบริษัท ญี่ปุ่น เค้าใช้ excel ทำ project plan แทน MS Project ถามเหตุผลไปว่าทำไม เค้าตอบว่า MS Project ต้องซื้อเพิ่ม จากชุด MS Office และไม่ใช่ทุกคนจะมี แต่ excel ทุกคนจะมี แล้วใน template มี สูตรคำนวณมากมาย จนเป็นเหตุให้ดวงตาเห็นธรรมเลยครับ

    ปัจจุบัน ชีวิตขาด excel ไม่ได้เลยครับ 555 แถมเป็นที่ปรึกษาเวลา น้องๆ IT หรือ User ติดปัญหา

    Phasin Mookeng Trachue

    ที่ทำงานผมทำธุรกิจเกี่ยวกับสุขภาพ มีทีมที่ทำงานเกี่ยวกับการแพทย์ทีมหนึ่งทำงารกัน 2 คน คนที่เป็นลูกน้องทำ Excel แต่หัวหน้าตอนนั้นทำไม่เป็นเลย

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

    ปัจจุบันมีลูกน้องใหม่แล้ว และทำเป็นมากขึ้นแล้วครับ ถ้ายากๆ ค่อยมาหาผมครับ

    Paschara Ngamkittisongkun

    ปี 56 ไปสมัครงานให้ทดสอบ excel ใส่สูตรง่าย ๆ sum avg min max แต่ไม่ผ่านเพราะทำไม่ได้ ตกงานครึ่งปี

    ปี 57 ได้เป็น HR เลยหาซื้อหนังสือเกี่ยวกับ excel มาทำตาม ทำไปทำมากลายเป็นว่าเขียนไฟล์ VBA/MACRO คำนวณเงินเดือนได้ ประมวลผลต่าง ๆ ได้ หลังจากนั้นชีวิตก็ใช้อยู่โปรแกรมเดียวยันทุกวันนี้

    รู้สึกดีตอนได้สอน excel พื้นฐานให้น้อง ๆ และพวกเค้าสามารถใช้ทำงานต่อได้

    wordที่ว่าง่าย ยังไม่คล่องเท่าexcel

    BEy Nodth

    ผมไม่เคยใช้excelเลย word ยังมั่ว

    จุดเปลี่ยนคือ สอบได้งานที่ sme bank แล้วต้องใช้ excel 100% คำนวน dept dscr ebida ebid รายรับ รายจ่าย statement น้ำตาจะไหล โชคดีมีพี่สอนให้จาก 0 เลย 555

    Khamal Hayeedoroning

    excel ทำงานที่เก่าใช้แค่ บวกลบ ทำงานที่ใหม่ททั้ง sumif sumifs vlookup ข้างบน ข้างล่าง ทั้งเข้าไปเล่น power query ช่วยได้เยอะมาก แล้ววันหนึ่ง เพื่อน lock file ไว้ แก้ไม่ได้ ให้เราช่วย

    เราทำได้ ทำให้รู้ว่า มัน ปลดล๊อค ได้นี้หว่า โงมาตั้งนาน อิ ๆ หลายอย่างไม่จาก page นี้ด้วยขอบคุณครับ

    Pui Riders

    ผมใช้โปรแกรมตารางคำนวน มาตั้งแต่ multiplan visicale ตอนมัธยม ท้ายสุดใช้ Excel จนตอนนี้จะเกษียนแล้วครับ ถึงจะรู้แค่ไม่กี่สูตร ก็ใช้ทำงานมาจนทุกวันนี้

    Sirisak R. Anotai

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

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

    Weerachot Ketthong

    ตอนเริ่มทำงานใหม่ๆ Excel มีไว้ทำตารางข้อมูล กับสูตร sum แบบบ้านๆ พอย้ายงานใหม่ต้องเริ่มทำรีพอร์ต ไฟล์ที่ถูกสร้างไว้ในองค์กรก็อย่างเทพ เขียนด้วย VBA เลยทีเดียว

    ตอนแรกงงมากๆ ต้องอาศัยค่อยๆแกะ formula และหาข้อมูลของสูตรแต่ละตัวตาม Internet เลยทำให้มาเจอเว็บเพจ Thep Excel, Engineering report และเพจอื่นๆอีกหลายที ที่ให้ความรู้ด้าน Excel จากนั้นมันก็เปิดโลกไปเลย จากแค่สูตร sum , count , average กลายมาเป็น query, power pivot (โครตโก่ง🤣)

    ต่อด้วย Power BI, DAX, Auto mate, Power App ถึงตอนนี้ของเล่นใน Office 365นี่เยอะจนเรียนไม่ทันกันเลยทีเดียว🤣 จบการแชร์ประสบการณ์ ณ เพียงแค่นี้ ขอบคุณครับ🥰

    Mini Phongsuk

    Excel, array formula, VBA

    Jack Ryan

    เคยมีวิชาเกี่ยวกับคอมสมัย ป.ตรี คับ

    เรียนแล้วรอบแรก F เลยเรียนซ้ำ แล้วก็ฝึกฝนจนผ่านได้ B+

    คิดว่ามันก็สนุกดีนะ พลิกแพลงได้หลายอย่าง

    สุดท้ายมาทำงานก็ลืม เพราะห่างไปนาน แต่แผนกผมเป็นแผนกตั้งใหม่ ไม่มี platform หรือ tools ใดๆ มีแต่ข้อมูลเลยต้องสร้างไฟล์งาน operation KPI report summary analysis tracking-order etc. ตอนนี้มากไกลมากแล้วครับ อาจไม่ได้ถึงขั้นเขียน VBA code หรือ ใช้ array ได้หมด แต่ก็พยายามเก็บเกี่ยวไปเรื่อยๆครับ

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

    Premwichr Chatkriedtichai

    ชีวิตง่ายขึ้นเยอะเลย

    Suriya Choorod

    เปลี่ยนไปคืองานเยอะขึ้นครับ 😂😂😂😂😂

    Supawit Sirikanjanawong

    Vlookup ทำให้ชีวิตง่ายขึ้นเยอะ

    พนมพร ศรีธัญ

    เหมือนแกะสลักตอไม้ให้เป็นรูปปั้นอย่างช้าๆจนสวยงาม

    Sith Thuniljinda

    เริ่มรู้จักกับ MS Excel ตั้งแต่ช่วง ป.5-6 ค่ะ แล้วก็ได้ใช้งานแบบงูๆปลาๆมาเรื่อยๆ จนเข้าสู่วัยทำงานเริ่มได้ใช้ formular เยอะ และหลากหลายมากขึ้น

    เคยถูกส่งไป training Pivot Table, Power Query ด้วยค่ะ และล่าสุดกำลังจะถูกส่งไป training Power BI เพื่อกลับมาเป็น Trainer ภายในค่ะ

    เรียกได้ว่า Excel อยู่ในทุกช่วงเวลาเหมือนเพื่อนที่โตมาด้วยกันเลยค่ะ

    Napasorn Teesakul

    ยาวหน่อยนะครับ 🙏🏻

    กาลละครั้งหนึ่งนานมากๆ ผมเข้าทำงานที่บริษัทใหม่ รุ่นพี่สั่งให้ summary มาให้หน่อย

    ด้วความที่ไม่เคยใช้ excel เลย ผมก็จัดการให้ทันที โดยการ Sum 😄แล้วก็ส่งให้รุ่นพี่ พ่อเค้าเห็นหงายท้องเลย เพราะที่เค้าอยากได้ เป็นการ Summary ข้อมูลใน excel มาเป็น ค่า Mean และ Sigma

    นั่นเป็นที่มา ทีให้ผมเริ่มสนใจและเริ่มศึกษา Excel มากขึ้น ยิ่งศึกษามากขึ้น ก็จะเจอฟังค์ชั่นสุดยอดขึ้นเรื่อย ลดเวลาการทำงานได้เยอะ ต่อมาเจอเพื่อนนั่งเขียนcode ใน Excel ยิ่งทึ่งไปใหญ่ ซึ่งแปลกใจมากว่า Excel ก็เขียน Code ได้ (มันคือ Macro) ผมจึงหา crouse การเรียน Macro เลย แต่การเรียนคนเดียวมันแพง ผมจึงหาCrouse ที่สามารถเรียนได้หลายๆคน แล้วนำเสนอที่ HR

    และพอได้เรียน Macro กับอาจารย์ท่านหนึ่ง แกสอนแบบมี่ที่เราเข้าใจง่ายมาก และเอาไปใช้ได้จริง

    พอทิ้งระยะเวลาสักพัก มาเจอบทความ เกี่ยวกับ Query ขอมูลจากหลาย excel file ตอน excel 2013 ไม่มี Funtionนี้ ต้องลงเพิ่ม ซึ่งเมื่อลองใช้ มันง่ายมาก พอทำเสร็จเอาข้อมลูมาทำ กราฟต่อได้เลย

    การศึกษา Power Query ในExcel มีประโยชน์อย่างมาก เมื่อผมขยับมาใช้ POWER BI ซึ่งการทำงานเหมือนกัน แต่ Power BI แม่งโครตดี เกี่ยวกับกราฟ และการสร้างรายงานต่างๆ

    ความรู้ Excel ,Power BI ผมก็ได้จากใน Page เทพเอ๊กเซล,วิศวกรรีพอร์ต,และเพจเกี่ยวกับการทำ data

    Wanrop Panthong

    จบ

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

  • ไม่เหมือนตรงไหน? ให้ Excel ช่วยวง / ระบายสี Highlight แบบอัตโนมัติ ด้วย Conditional Formatting

    ไม่เหมือนตรงไหน? ให้ Excel ช่วยวง / ระบายสี Highlight แบบอัตโนมัติ ด้วย Conditional Formatting

    ในคลิปสั้นๆ คลิปนี้ ผมจะมาบอกวิธีใช้ Excel ช่วยวงล้อมรอบข้อมูลที่มีในชุดนึง แต่ไม่มีในอีกชุดแบบอัตโนมัติ ง่ายๆ ทำตามได้เลย แป๊ปเดียวจบครับ เทคนิคที่ใช้คือการใช้ Data Validation มาช่วยครับ แล้วค่อยเรียกใช้คำสั่ง Circle Invalid Data ครับ

    เสริมให้ว่าถ้าใครไม่อยากได้ dropdown ก็ให้ติ๊กเอาคำว่า in-cell drop down ใน Data Validation แถบ Setting ออกนะครับ ถ้าอยากให้กรอกคำว่าอะไรก็ได้ โดยไม่ขึ้น error message ก็ให้ไปใน Data Validation แถบ Error Alert แล้วติ๊กเอา Show Error Alert ออกได้เช่นกัน

    คลิปนี้เป็นภาคต่อของคลิปที่แล้ว ซึ่งจะเจ๋งกว่าเดิมตรงที่วิธีใหม่นี้ใช้ Conditional Formatting มาช่วย ซึ่งหากข้อมูลเปลี่ยนปุ๊ป จะมีการระบายสีแบบอัตโนมัติเลย ไม่เหมือนวิธีเดิมที่ใช้ Data Validation มันจะต้องกด Circle Invalid Data ใหม่อีกรอบนะครับ

    โหลดไฟล์ประกอบได้ที่นี่ https://github.com/ThepExcel/YouTube/blob/main/circle.xlsx

  • วิธีใช้ Excel คำนวณระยะเวลาการทำงานรวม แถมระบุเวลาพักได้แบบยืดหยุ่น

    วิธีใช้ Excel คำนวณระยะเวลาการทำงานรวม แถมระบุเวลาพักได้แบบยืดหยุ่น

    มาตามสัญญาแล้วครับ วิธีคำนวณระยะเวลาการทำงานแบบหักเวลาพัก โดยที่สามารปรับเปลี่ยนเวลาพัก และเพิ่มลดเวลาพักได้อย่างอิสระ มาดูกันว่าทำยังไง!

    โหลดไฟล์ประกอบได้ที่นี่ https://github.com/ThepExcel/YouTube/blob/main/worktime.xlsx

  • แก้ปัญหา Power Query มองไม่เห็นการเพิ่มคอลัมน์ใหม่ในไฟล์ CSV

    แก้ปัญหา Power Query มองไม่เห็นการเพิ่มคอลัมน์ใหม่ในไฟล์ CSV

    เพื่อนๆ น่าจะเคยใช้ Power Query Get Data from Text/CSV กันมาบ้าง ซึ่งน่าจะเคยเจอปัญหาที่ว่า หลังจากใช้ Power Query ดึงข้อมูลไปแล้ว ต่อมาในไฟล์ CSV ต้นฉบับมีการเพิ่มคอลัมน์ใหม่เข้าไป แต่ตัว Power Query ดันมองไม่เห็นแม้ว่าจะกด Refresh แล้วก็ตาม ปัญหานี้จะหมดไป ถ้าเพื่อนๆ ดูคลิปนี้จนจบครับ

  • เจาะลึกการแก้ตารางผิดๆ ด้วย Unpivot ทั้ง 3 แบบใน Power Query

    เจาะลึกการแก้ตารางผิดๆ ด้วย Unpivot ทั้ง 3 แบบใน Power Query

    ผมมี 3 คำถามจะมาถามคุณครับ

    1. รู้หรือไม่ว่าการบันทึกข้อมูลเหมือนในรูปนั้นผิด? (สินค้ากระจายอยู่หลายคอลัมน์)
    2. รู้หรือไม่ว่ามันแก้ได้ง่ายๆ ด้วย Unpivot ของ Power Query?
    3. รู้หรือไม่ว่า Unpivot นั้นมี 3 แบบด้วยกัน?

    ถ้ามีอย่างน้อย 1 คำถามที่คุณไม่รู้ คุณควรดูคลิปนี้ครับ

    ในคลิปนี้ผมจะอธิบายอย่างละเอียดว่า Unpivot ใน Power Query ทั้ง 3 แบบ แต่ละอันต่างกันยังไง แล้วควรใช้แบบไหน มาเรียนรู้ไปด้วยกันได้เลยครับ

    ไฟล์ประกอบ : https://github.com/ThepExcel/YouTube/blob/main/unpivot.xlsx

  • วิธีจัดการข้อมูลแย่ๆ ด้วย Power Query ทั้งข้อมูลปนกัน ข้อมูลอยู่บนหัวตาราง

    วิธีจัดการข้อมูลแย่ๆ ด้วย Power Query ทั้งข้อมูลปนกัน ข้อมูลอยู่บนหัวตาราง

    ปัญหาที่หลายคนเจอแล้วแก้ไม่ได้เวลาใช้ Power Query ก็คือ ในบางครั้งจะเจอว่า

    1. ในคอลัมน์เดียวมีหลายเรื่องปนกัน
    2. มีข้อมูลบางอย่างอยู่เหนือบรรทัดที่เป็นหัวตารางขึ้นไปอีก

    ในคลิปนี้ผมจะบอกวิธีแก้ไขปัญหาทั้ง 2 แบบนี้เองครับ

    ไฟล์ประกอบคลิป : https://github.com/ThepExcel/YouTube/blob/main/bad-data.xlsx

  • แยกข้อมูลที่อยู่สุดเน่า ด้วย Excel Power Query

    แยกข้อมูลที่อยู่สุดเน่า ด้วย Excel Power Query

    เพื่อนๆ หลายคนถามมาว่า เจอปัญหาการแยกข้อมูลที่อยู่ที่ได้มาแบบปนกันอยู่ในช่องเดียว แถมเขียนมาในรูปแบบที่หลากหลาย ซึ่งผมขอเรียกว่า “ข้อมูลที่อยู่สุดเน่า” เช่น – ใส่คำว่า อำเภอ ตำบล แขวง เขต จังหวัด เต็มๆ บ้าง ย่อๆ บ้าง – บางทีก็คั่นด้วยเว้นวรรค บางทีก็ใช้ comma คั่น ในคลิปนี้ผมจะมาสอนใช้ Power Query ใน Excel แก้ปัญหาเหล่านี้ครับ (ใช้ Power Query ใน Power BI ก็ได้)

    ข้อมูลประกอบโหลดได้ที่นี่ : https://github.com/ThepExcel/YouTube/blob/main/Bad-Address-Example.xlsx

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

  • วิธีใช้สูตร Excel เปลี่ยนชื่อสินค้าแบบฉลาดๆ

    วิธีใช้สูตร Excel เปลี่ยนชื่อสินค้าแบบฉลาดๆ

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

  • 7 เทคนิค Excel ง่ายๆ ที่มือใหม่ก็ทำได้ แต่มือเก่าอาจยังไม่รู้!

    7 เทคนิค Excel ง่ายๆ ที่มือใหม่ก็ทำได้ แต่มือเก่าอาจยังไม่รู้!

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

  • วิธีแชร์ไฟล์ Excel ให้ทำงานร่วมกันในไฟล์เดียว รู้เลยว่าใครแก้อะไรตรงไหน (สำหรับ Excel 365)

    วิธีแชร์ไฟล์ Excel ให้ทำงานร่วมกันในไฟล์เดียว รู้เลยว่าใครแก้อะไรตรงไหน (สำหรับ Excel 365)

    เวลาที่เราต้องการให้เพื่อนร่วมงานสามารถช่วยกันกรอกข้อมูลรวมกันในไฟล์เดียวนั้น หากเราใช้วิธีส่งไฟล์ให้หลายๆ คนกรอกลับมา มันคงเศร้าน่าดูสำหรับคนที่ต้องรวมไฟล์เหล่านั้น

    แต่ถ้าเราเปลี่ยนเป็นการแชร์ไฟล์ให้เพื่อนรุมกันกรอกผ่านระบบ Online เลย มันจะเจ๋งกว่ามาก โดยเฉพาะมี feature ที่เราสามารถ Show Changes เพื่อแสดงรายละเอียดได้เลยว่าใครแก้อะไรตรงไหน แก้จากอะไรเป็นอะไร? อีกทั้งกรณีที่แก้จนไฟล์ย่ำแย่เกินกว่าจะเยียวยา สามารถย้อน Version กลับไปตอนที่ก่อนจะถูกแก้ไขได้ด้วย Version History

    ซึ่งเทคนิคที่แสดงให้ดูในคลิปนี้ เป็นเทคนิคของ Excel 365 นะ ใครที่ใช้ version อื่นแล้วอยากรู้ว่าทำไง? ก็ Comment บอกผมหน่อยนะครับ ถ้ามีคน Comment เยอะ เดี๋ยวผมจะทำคลิปของ Version เก่าให้อีกทีครับ

  • คำนวณการแตกแบงค์ย่อย+แลกเหรียญ ด้วย Excel

    คำนวณการแตกแบงค์ย่อย+แลกเหรียญ ด้วย Excel

    ถ้าเราเอาเงินที่มีไปแตกแบงค์ย่อย โดยการแลกแบงค์และเหรียญประเภทที่กำหนด จะสามารถได้แบงค์ประเภทไหนกี่ใบ และเหรียญแบบไหนกี่อัน?? เรื่องนี้เราใช้ Excel คำนวณได้เลยนะครับ ซึ่งในคลิปจะมีทั้งแบบวิธีที่เข้าใจง่าย (ที่ใช้พื้นที่เยอะ) และแบบซับซ้อนขึ้น (ที่ใช้พื้นที่น้อย) ใครสนใจลองดูให้จบนะครับ รับรองได้รับความรู้ไปเต็มๆ มีสูตร SUMPRODUCT แบบล๊อคจุดเริ่มต้นด้วยนะ

  • ใช้ Excel นับคำที่กำหนด ว่า Lisa ร้องคำว่า Lalisa ในเพลงกี่รอบ?

    ใช้ Excel นับคำที่กำหนด ว่า Lisa ร้องคำว่า Lalisa ในเพลงกี่รอบ?

    คลิปนี้ผมทำพิเศษมาฉลองความฮิตถล่มทลายของเพลง Lalisa ของ Lisa BLACKPINK โดยเฉพาะเลยครับ โดยผมจะสอนวิธีใช้ Excel ช่วยนับว่าในเนื้อเพลง Lalisa มีคำว่า “Lalisa กี่คำ?” ถ้าอยากรู้มาดูกันเลย!

    ใครอยากดู MV เพลงไปดูได้ที่นี่ https://youtu.be/awkkyBH2zEo และนี่คือส่วนของเนื้อเพลงจากคลิปนั้นครับ (จะได้ copy ไปลองได้ง่ายๆ จาก description นี้เลย)

    หลักการในคลิป

    • ในคลิปผมใช้วิธีนับว่าเพลงเต็มๆ มีกี่ตัวอักษรด้วย LEN เช่น
      =LEN(A1)
    • จากนั้นใช้ SUBSTITUTE ตัดคำ Lalisa ที่ต้องการจะนับออก
      =SUBSTITUTE(A1,”Lalisa”,””)
    • แล้วค่อยดูว่าหายไปกี่ตัวอักษร แล้วเอาไปหารด้วย 6 (จำนวนตัวอักษรของ Lalisa) เพื่อนับว่าหายไปกี่คำ
    =(LEN(A1)-SUBSTITUTE(A1,"Lalisa",""))/LEN("Lalisa")

    วิธีการอื่นที่น่าสนใจ

    ทำคล้ายๆ กัน แต่แทนที่จะจัดคำว่า Lalisa ทิ้งตอนทำ SUBSTITUTE ให้แทนด้วยคำว่าที่จำนวนตัวอักษรต่างกัน 1 ตัว เช่น Lalisa1, Lalisa., Manobal หรืออะไรก็ได้ แล้วค่อยเอามาลบกัน เช่น

    =SUBSTITUTE(A1,"Lalisa","Lalisa1")-LEN(A1)

    เนื้อเพลง LISA – LALISA

    내 뒷모습만 봐도 알잖아

    어두워질 때 분홍빛이나

    새하얀 조명이 날 깨우면

    번쩍번쩍 세상을 흔들어

    머리를 하얗게 비운채

    시끄런 감정은 태울래

    Burn burn burn

    그때 난 네 갈증을 해소할 샴페인

    Sip sip 나를 들이켜

    그래 더 저 높이 내 body 받들어

    Want you to ring the alarm

    세상에게 알려 내 이름에다 입맞춰

    Say Lalisa love me Lalisa love me

    Call me Lalisa love me Lalisa love me

    알잖아 attitude

    뭘 더 어쩌라구

    The loudest in the room

    Just Say Lalisa love me Lalisa love me

    Call me Lalisa love me Lalisa love me

    알잖아 attitude

    뭘 더 어쩌라구

    The loudest in the room

    Baby get the megaphone

    Put it on speaker

    I said I can’t hear you

    So you need to speak up

    Put that shiz on stereo

    Everyone else on very low

    Protect it like a barrier

    Promise there’s nothing scarier

    Than me if anybody coming gunnin for my man

    Gonna catch a case

    Gun up in my hand

    Bam bam bam

    Hit after hit though

    Rocks in my wrist so I call em the flintstones

    Ring the alarm

    세상에게 알려 내 이름에다 입맞춰

    Say Lalisa love me Lalisa love me

    Call me Lalisa love me Lalisa love me

    알잖아 attitude

    뭘 더 어쩌라구

    The loudest in the room

    Just Say Lalisa love me Lalisa love me

    Call me Lalisa love me Lalisa love me

    알잖아 attitude

    뭘 더 어쩌라구

    The loudest in the room

    누구와도 비교 못해 그래봤자 you gon’ still love me

    You need some L.A.L.I.S.A

    지금 너의 두 눈 앞에 서있는 내 이름을 기억해

    Love you some L.A.L.I.S.A

    You cannot see me 어떻게 하는지 다 보여줘도

    태국에서 한국 거쳐 여기까지 went for the throat

    Being the greatest of all time ain’t fantasy

    새까만 핑크빛 왕관 belongs to we

    Lalisa Lalisa Lalisa 하늘 위 당당해

    Lalisa Lalisa Lalisa 저들은 날 원해

    Lalisa Lalisa Lalisa catch me if you can

    Lalisa Lalisa Lalisa Lalisa Lalisa

    Say Lalisa love me Lalisa love me

    Call me Lalisa love me Lalisa love me

    알잖아 attitude

    뭘 더 어쩌라구

    The loudest in the room

    Just Say Lalisa love me Lalisa love me

    Call me Lalisa love me Lalisa love me

    알잖아 attitude

    뭘 더 어쩌라구

    The loudest in the room

  • สูตรแยกคํานําหน้าชื่อ Excel แม้เขียนติดกันก็ใช้ได้

    สูตรแยกคํานําหน้าชื่อ Excel แม้เขียนติดกันก็ใช้ได้

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

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

  • สร้าง Dropdown List หลายชั้น เพื่อกรอกข้อมูลจังหวัด อำเภอ ตำบล รหัสไปรษณีย์

    ในคลิปนี้จะสอนการสร้าง Dropdown List หลายชั้น เพื่อกรอกข้อมูลจังหวัด อำเภอ ตำบล รหัสไปรษณีย์ ด้วย Excel 365 ครับ

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

    ซึ่งเพื่อนๆ จะได้เรียนรู้ฟังก์ชันที่เป็น Dynamic Array ของ Excel 365 มากมาย เช่น UNIQUE, SORT, FILTER, TRANSPOSE การอ้างอิงด้วย # เป็นต้น

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

    สรุปแล้วสูตรที่ใช้ทั้งหมด มีดังนี้

    ชื่อจังหวัด :
    =SORT(UNIQUE(PostCodeTable[ProvinceThai]))

    ชื่ออำเภอ : =TRANSPOSE(SORT(UNIQUE(FILTER(PostCodeTable[DistrictThaiShort],PostCodeTable[ProvinceThai]=H5,”กรุณาเลือกจังหวัด”)))) ชื่อตำบล : =TRANSPOSE(SORT(UNIQUE(FILTER(PostCodeTable[TambonThaiShort],(PostCodeTable[DistrictThaiShort]=Sheet1!I5)*(PostCodeTable[ProvinceThai]=Sheet1!H5),”กรุณาเลือกอำเภอ”))))

    รหัสไปรษณีย์ :
    =TRANSPOSE(SORT(UNIQUE(FILTER(PostCodeTable[PostCode],(PostCodeTable[TambonThaiShort]=Sheet1!J5)*(PostCodeTable[DistrictThaiShort]=Sheet1!I5)*(PostCodeTable[ProvinceThai]=Sheet1!H5),”กรุณาเลือกตำบล”))))

    โหลดไฟล์ประกอบได้ที่ : https://github.com/ThepExcel/YouTube/blob/main/address-postal.xlsx

  • วิธีรวมข้อมูลใน Power Query กรณีหัวตารางชื่อไม่ตรงกัน

    วิธีรวมข้อมูลใน Power Query กรณีหัวตารางชื่อไม่ตรงกัน

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

    เช่น คนส่งข้อมูลให้เราดันมีการเปลี่ยนชื่อคอลัมน์ในไฟล์ต้นฉบับกลางคันด้วยเหตุผลบางอย่าง (แต่ลำดับการเรียงคอลัมน์ยังคงเหมือนเดิม) แบบนี้เราจะทำยังไงดี?? เช่น ข้อมูลอุบัติเหตุบนทางพิเศษในนี้ https://data.go.th/dataset/vachara

    คลิปนี้มีคำตอบครับ รับรองว่าได้ความรู้เพียบเช่นเคย !

  • Matrix คืออะไร? (กันแน่) : ตอนที่ 2

    Matrix คืออะไร? (กันแน่) : ตอนที่ 2

    หลังจากในตอนที่แล้วเราได้เรียนรู้ไปแล้วว่า Matrix คือการสั่ง Transform vector แบบนึง ในตอนนี้เราจะมาเรียนรู้ต่อว่า เรื่องอื่นๆ เช่น การเปลี่ยนมิติให้ Vector, DET, Rank หรือ INVERSE คืออะไรกันแน่? ถ้าใครที่ยังไม่ได้อ่านตอนแรก แนะนำให้กลับไปอ่านก่อนนะครับ

    การ Transform เปลี่ยนมิติ ด้วย Matrix ที่ไม่ใช่จตุรัส

    ก่อนหน้านี้เรามีการ Transform vector ไปยัง vector ผลลัพธ์ที่มีมิติเท่ากันมาโดยตลอด แล้วถ้าเราต้องการ Transform แบบไม่เท่ากัน เช่น จาก vector 2 มิติ เป็น 3 มิติล่ะ?

    เปลี่ยน จาก 2 มิติ เป็น 3 มิติ

    เราสามารถใช้ Matrix ลักษณะ 3×2 เพื่อช่วยแปลงได้ โดยการตีความจะเหมือนเดิมเลยว่า

    • ฝั่งซ้ายคือจะเปลี่ยน i (1,0) ไปที่ไหน
    • ฝั่งขวาคือจะเปลี่ยน j (0,1) ไปไหน
    Matrix คืออะไร? (กันแน่) : ตอนที่ 2 20
    Matrix คืออะไร? (กันแน่) : ตอนที่ 2 21

    เปลี่ยนจาก 3 มิติ เป็น 2 มิติ

    เราใช้ Matrix 2×3 มาช่วยได้ โดยแต่ละตัวจะบอกว่าให้ i j k ย้ายไปที่ไหนแทน ในแกน 2 มิติ xy

    Matrix คืออะไร? (กันแน่) : ตอนที่ 2 22
    Matrix คืออะไร? (กันแน่) : ตอนที่ 2 23

    จากตัวอย่างทั้งสองอันแปลว่าเราสามารถเปลี่ยนมิติให้กับ vector ได้ด้วย Matrix เช่นกันครับ

    Determinant (DET) คืออะไร?

    สมมติว่าเราจะ Transform ให้แกน x ขยายไป 2 เท่า และแกน y ขยายไป3 เท่า เราสามารถใช้ Matrix นี้ในการ Transform ได้

    Matrix คืออะไร? (กันแน่) : ตอนที่ 2 24

    และถ้าเราถามว่าหลังจากการ Transform ไปแล้วขนาดของผลลัพธ์ใหญ่เป็นกี่เท่าของต้นฉบับ?

    Matrix คืออะไร? (กันแน่) : ตอนที่ 2 25

    จะเห็นว่าเดิมมันเป็นพื้นที่ 1×1 หน่วย ได้ถูกขยายให้เป็น 2×3 หน่วย นั่นคือขนาดใหญ่เป็น 6 เท่าจากเดิมนั่นเอง (ถ้าเป็น 3 มิติก็วัดว่าปริมาตรอันใหม่เป็นกี่เท่าของปริมาตรเดิม) ซึ่ง เลข 6 ก็คือ Determinant หรือ DET ของ Matrix นั้นๆ นั่นเองครับ

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

    ซึ่งใน Excel เราสามารถใช้ MDETERM เพื่อคำนวณหา DET ได้เลย ดังนี้

    Matrix คืออะไร? (กันแน่) : ตอนที่ 2 26

    Rank ของ Matrix คืออะไร?

    Rank คือจำนวนมิติของผลลัพธ์ในการ Transform ด้วย Matrix เช่น

    • ถ้าเรา Transform ด้วย Matrix 2×2 ผลลัพธ์ที่ได้อาจจะมีมิติ (Rank) คือ 2 (ระนาบ) ,1 (เส้น) ,0 (จุด)
      • ซึ่งถ้า DET ไม่ใช่ 0 ก็จะมี Rank 2 นั่นเอง (สูงสุดเท่าที่จะเป็นได้)
    • ถ้าเรา Transform ด้วย Matrix 3×3 ผลลัพธ์ที่ได้อาจจะมีมิติ (Rank) คือ 3 (3 มิติ) , 2 (ระนาบ) ,1 (เส้น) ,0 (จุด)
      • ซึ่งถ้า DET ไม่ใช่ 0 ก็จะมี Rank 3 นั่นเอง (สูงสุดเท่าที่จะเป็นได้)

    Inverse Matrix คืออะไร?

    ถ้า Matrix ปกติ (A) คือตัวที่สามารถ Transform vector จากแกน i j ปกติให้เปลี่ยนเป็น ij แกนใหม่ได้ ….

    ถ้างั้น Inverse ของ Matrix A ( ซึ่งจะเรียกว่า A-1) ก็คือ Matrix ที่สามารถ Transform vector ที่ถูกแปลงมาจาก A ให้กลับให้ไปอยู่ในแกน i j ปกตินั่นเองครับ (ทำงานกลับกัน)

    เช่น ใน Excel สามารถใช้ MINVERSE ช่วยได้แบบนี้ครับ

    ลองดูตัวอย่างง่ายๆ ก่อน นั่นคือ Matrix เดิมมีการหมุนทวนเข็ม 90 องศา ดังนั้น Matrix Inverse ของตัวนั้นก็คือการหมุนตามเข็ม 90 องศานั่นเองครับ

    Matrix คืออะไร? (กันแน่) : ตอนที่ 2 27

    หรือลองใส่การ Transform มั่วๆ แบบนี้ มันก็หา Inverse ได้ (ถ้า DET ไม่ใช่ 0)

    Matrix คืออะไร? (กันแน่) : ตอนที่ 2 28
    จะเห็นว่าเราสามารถใช้ MINVERSE สร้าง Matrix ที่จะ Transform Vector กลับไปยังแกนเดิมได้นั่นเอง

    อย่างไรก็ตาม การ Transform บางกรณี ก็จะไม่สามารถหา Inverse ได้ เนื่องจากแกนใหม่อาจถูกบีบจนเป็นเส้นตรง หรือเป็นจุด ซึ่งสังเกตได้ว่า DET เป็น 0 ก็จะหา Inverse ไม่ได้ไปด้วยนั่นเอง

    Matrix คืออะไร? (กันแน่) : ตอนที่ 2 29
    ในตัวอย่างนี้ i ถูกเปลี่ยนให้ไปที่ (1,3) j ไปที่ (2,6) ซึ่งเป็นเส้นเดียวกับ (1,3) แค่ขนาดไม่เท่ากัน vector ผลลัพธ์ก็จะอยู่ในเส้นตรงนี้ด้วย ด้วยแกนที่เป็นเส้นเดียวกันแบบนี้ (DET=0) ทำให้พอจะย้ายแกนกลับไปที่ i j ปกติ จึงทำไม่ได้นั่นเอง

    ซึ่งเจ้า Inverse นี่เองที่ช่วยให้เราแก้สมการหลายตัวแปรด้วย Matrix ได้ ด้วยหลักการที่ว่า

    A-1*A = A*A-1 = Identity Matrix (I)

    Matrix คืออะไร? (กันแน่) : ตอนที่ 2 30
    A-1*A = A*A-1 = Identity Matrix (I)

    และ Identity Matrix คูณอะไรก็ได้ตัวเดิม (เพราะเราไม่ได้ย้าย ij ไปไหน)

    I*A = A*I = A

    Matrix คืออะไร? (กันแน่) : ตอนที่ 2 31
    I*A = A*I = A

    จากทั้งสองเรื่องข้างบนจะได้ว่า

    • A * x = b
    • A-1* A * x = A-1*b
    • x = A-1*b

    x = A-1*b

    นั่นคือเราสามารถแก้สมการได้ด้วยการเอา Inverse Matrix ไปคูณกับ Vector ผลลัพธ์ของสมการนั่นเอง ซึ่งผมได้ลองทำให้ดูแล้วในบทความข้างล่างนี้

    อย่างไรก็ตามการแก้สมการด้วยวิธีนี้จะมีปัญหากรณีที่ค่าผลลัพธ์สมการเป็น 0 หรือ อยู่ในรูปแบบ Ax=0 ซึ่งเวลาเอา Inverse ไปคูณกับ (0,0,0) ซึ่งเป็นจุด มันก็ได้จุด 0 อยู่ดี ไม่มีประโยชน์อะไร ดังนั้นเราจะต้องแก้สมการด้วยวิธีอื่นครับ ซึ่งต้องรอตอนต่อๆ ไปครับ

    ตอนต่อไป

    สำหรับตอนนี้จะขอจบเพียงเท่านี้ เดี๋ยวตอนต่อๆ ไปจะเรียนเรื่อง Dot Product, Cross Product, กฏ Cramer, Eigenvectors และ Eigenvalues ครับ

  • Matrix คืออะไร? (กันแน่) : ตอนที่ 1

    Matrix คืออะไร? (กันแน่) : ตอนที่ 1

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

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

    เรียนไปทำไม?

    ถ้าจะบอกว่า Matrix มีประโยชน์มากสำหรับการคำนวณที่ซับซ้อน ไม่ว่าจะเป็น AI, Computer Graphic, วิศวกรรม, Network Graph ตามที่อธิบายในคลิปนี้

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

    ส่วนเหตุผลที่ผมอยากเรียนรู้ Matrix ในตอนนี้ ก็คือ ถ้าเข้าใจมันดูเท่ดี เวลาไปเจอบทความที่ซับซ้อนจะได้อ่านเข้าใจ (มันเป็นเหมือนภาษาอีกภาษานึงที่ถ้าเข้าใจก็เจ๋งดีอ่ะ)

    แต่เหตุผลที่สำคัญที่สุด คือ อยากเอาชนะความรู้สึกที่ฝังใจตั้งแต่ตอนเด็กๆ ที่เรียน Matrix ยังไงก็ไม่เข้าใจซักที 555

    เริ่มจาก Vector ก่อน

    ก่อนที่เราจะเรียนรู้ Matrix ให้เข้าใจแบบเห็นภาพนั้น เราจะต้องเข้าใจเรื่องของ Vector ให้ดีซะก่อนครับ

    Vector ในที่นี้คือการบอกทิศทางของลูกศรที่เริ่มจากจุด Originไปยังจุดที่กำหนด เช่น

    • ถ้าเป็น 2 มิติ แกน (x,y) อาจเป็น จาก (0,0) ไปยังจุด (3,5)
    • ถ้าเป็น 3 มิติ แกน (x,y,z) อาจเป็น จาก (0,0,0) ไปยังจุด (3,5,2) เป็นต้น

    ซึ่งหลักการของ 2 มิติกับ 3 มิติก็เหมือนๆ กันแหละ แต่ 3 มิติมันซับซ้อนกว่า และวาดรูปประกอบยาก ดังนั้นผมจะยกตัวอย่างแค่แบบ 2 มิตินะครับ ถ้าเข้าใจ2 มิติแล้ว 3 มิติก็ไม่ใช่เรื่องยาก

    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 32
    รูปนี้คือ vector (3,5) นั่นคือ vector ที่เริ่มจากจุด 0,0 แล้วชี้ไปยัง x=3 , y=5

    หลักการพื้นฐานของการคำนวณ Vector

    • การบวก Vector จะเปรียบเสมือนเอาลูกศร 2 อันมาต่อกัน แล้วดูว่าสุดท้ายชี้ไปที่จุดไหน Vector ผลลัพธ์จะเริ่มจาก Origin ถึงจุดนั้นๆ
      • vector (a,b) รวมกับ vector (c,d) = vector (a+c,b+d) นั่นเอง
    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 33
    Vector เขียว (3,5) เกิดจาก Vector น้ำเงิน (2,1) + Vector ส้ม (1,4) โดยเปรียบว่าเอา Vector มาต่อลูกศรกันไปจนจบ = Vector (2+1,1+4) นั่นเอง
    • การเปลี่ยนขนาด Vector ด้วยการคูณเลข Scalar : การคูณเลขไปทั้งพิกัด x และ y ของ vector เป็นการทำให้ Vector เปลี่ยนขนาดไป
      • c * vector(a,b) = vector(c*a,c*b) นั่นเอง
      • ถ้าเลขบวก ก็จะอยู่ทิศเดิม
      • ถ้าเลขติดลบ ก็จะเป็นการกลับทิศ
      • ถ้าคูณเลขขนาด >1 ก็จะขยายขนาด
      • ถ้าคูณเลขขนาด <1 ก็จะลดขนาดได้
    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 34
    Vector เขียว (6,10) คือเอา Vector น้ำเงิน (3,5) มา Scale 2 เท่า หรือ = (3*2, 5*2)

    Vector ทุกอันสามารถเขียนอยู่ในรูปของ Vector 1 หน่วยพื้นฐานได้

    • ในแกน x จะมี vector i ที่เป็น vector 1 หน่วยที่ชี้ไปทางขวา หรือ (1,0) เป็น vector พื้นฐาน
    • ในแกน y จะมี vector j ที่เป็น vector 1 หน่วยที่ชี้ขึ้นบน หรือ (0,1) เป็น vector พื้นฐาน
    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 35

    แปลว่าถ้าเราพูดถึง vector (3,5) มันก็สามารถบอกได้ว่า

    • มันคือ 3 เท่าของ vector พื้นฐาน i รวมกับ 5 เท่าของ vector พื้นฐาน j ต่อลูกศรกัน
    • หรือ 3i+5j นั่นเอง
    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 36

    Matrix คือ รูปแบบหนึ่งของ Linear Transformation

    จริงๆ แล้วเราสามารถมองได้ว่า Matrix คือการเปลี่ยนแปลงแกนอ้างอิงของ Vector 1 หน่วยพื้นฐาน จากการที่ i ชี้ไปที่ (1,0) และ j ชี้ไป (0,1) ให้ชี้ไปที่อื่นแทน (โดยที่ถ้าแกนใหม่มีจุด Origin ที่เดิม และ grid ของแกนใหม่ยังคงเป็นเส้นตรง)

    ซึ่ง vector ผลลัพธ์จะถูกแปลงหน้าตาไปตามแกนอ้างอิงใหม่ทันที นั่นคือ มีการ scale ด้วย factor เดิม แต่ใช้แกนใหม่ เช่น

    ตัวอย่างที่ 1 : ถ้าเดิมทีเคยมี vector (3,5) อยู่ แล้วเราบอกให้

    • เปลี่ยน vector i จาก (1,0) ให้กลายเป็น (2,0) แทน ขยายขนาดเป็น 2 เท่า
    • vector j คงเดิมที่ (0,1)

    แบบนี้ vector ผลลัพธ์ก็จะกลายเป็น Concept นี้

    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 37
    • 3 เท่าของ i ตัวใหม่ + 5 เท่าของ j ใหม่
    • 3(2,0) + 5(0,1)
    • (6,0) + (0,5) ต่อลูกศรกัน หรือ (6+0,0+5) นั่นเอง
    • ลูกศรที่ชี้ไปพิกัด 6,5 หรือ ยืดยาวไปในแกน x 2 เท่าจากเดิม (ส่วนแกน y สูงเท่าเดิม)
    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 38

    ตัวอย่างที่ 2 : ถ้าเดิมทีเคยมี vector (3,5) อยู่ แล้วเราบอกให้

    • เปลี่ยน vector i จาก (1,0) ให้กลายเป็น (0,1) แทน (หมุนทวนเข็ม 90 องศา)
    • เปลี่ยน vector j จาก (0,1) ให้กลายเป็น (-1,0) แทน (หมุนทวนเข็ม 90 องศา)

    แบบนี้ vector ผลลัพธ์ก็จะกลายเป็นแบบนี้

    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 39
    • 3 เท่าของ i ตัวใหม่ + 5 เท่าของ j ใหม่
    • 3(0,1) + 5(-1,0)
    • (0,3) + (-5,0) ต่อลูกศรกัน หรือ (0-5,3+0) นั่นเอง
    • ลูกศรที่ชี้ไปพิกัด -5,3 หรือ หมุนทวนเข็ม 90 องศาด้วยนั่นเอง
    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 40

    ซึ่งจริงๆ แล้วการบอกให้ vector พื้นฐานเปลี่ยนไป ก็คือการเอา Matrix มาคูณนั่นเอง

    • โดยฝั่งซ้ายของ Matrix คือทิศทางใหม่ของ vector i
    • โดยฝั่งขวาของ Matrix คือทิศทางใหม่ของ vector j
    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 41

    เช่น การเปลี่ยน vector i จาก (1,0) ให้กลายเป็น (2,0) ส่วน vector j คงเดิมที่ (0,1) สามารถแทนด้วย Matrix นี้

    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 42

    ดังนั้นในตัวอย่างแรก เราสามารถเอา Matrix ดังกล่าว มาคูณกับ Vector เดิมคือ 3,5 จะได้ผลลัพธ์เป็น 6,5 ดังนี้ได้เลย มีความหมายเหมือนกัน แต่ทำใน Excel ง่ายมาก เพราะใช้ MMULT ได้เลย

    Matrix

    ในตัวอย่างที่สอง เราสามารถเอา Matrix มาคูณกับ Vector เดิมคือ 3,5 จะได้ผลลัพธ์เป็น -5,3 ดังนี้

    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 43

    ถ้าลองใส่เลขให้เห้นชัดๆ ว่าเวลาเอา Matrix มาคูณ Vector เป็นยังไง ก็จะเป็นแบบนี้

    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 44
    • 17 มาจาก 1*5 + 2*6 (เพราะ 1 ถูกขยายไป 5 เท่าในทิศแกน x และ 2 ถูกขยายไป 6 เท่าในทิศแกน x)
    • 39 มาจาก 3*5 + 4*6 (เพราะ 3 ถูกขยายไป 5 เท่าในทิศแกน y และ 4 ถูกขยายไป 6 เท่าในทิศแกน y)

    หรือจะมองแบบเดิมๆ ก็คือเป็นแบบนี้ ก็เข้าใจง่ายดี

    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 45

    ถ้าเรารู้แล้วว่า Matrix คูณกับ Vector คือการ Transform Vector นั้นๆ แล้ว Matrix คูณ Matrix มันคืออะไรล่ะ??

    Matrix คูณกับ Matrix คืออะไร?

    หากเราลองคิดดูดีๆ ว่าเวลาเราเอา Matrix มาคูณกับ Vector มันคือการ Transform 1 ที แล้วถ้าเราจะ Transform 2 ทีล่ะ??
    มันก็คือการเอา Matrix มาคูณด้วย 2 ทีรวดยังไงล่ะ!!


    ซึ่งก็เปรียบเสมือนการใช้ Matrix 1 ตัว ที่เก็บ Effect ของการ Transform ทั้ง 2 รอบเข้าไปแล้วนั่นเอง (การ Transform อ่านจากขวาไปซ้าย นั่นคือ Transform แบบเหลืองก่อน แล้วค่อย Transform แบบน้ำเงิน)

    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 46

    ซึ่งเราจะหา Effect สุทธิของการ Transform ได้ (หรือผลคูณ Matrix ได้) ก็ต้องเข้าใจก่อนว่า ตกลงแล้ว i และ j สุดท้ายถูกเปลี่ยนให้กลายเป็นอะไรไปแล้ว??

    • i ใหม่ไปไหน ตอนแรก i (1,0) ถูก Matrix เหลืองแก้ทิศทางให้เป็น (a,c) ก่อน
      • ให้เรามองว่าเกิด vector (a,c) ขึ้นมา เพราะ vector ผลลัพธ์จากการ Transform ครั้งแรก คือ (a,c)*1 + (b,d)*0 = (a,c) นั่นเอง
      • จากนั้น (a,c) ก็ถูก Matrix น้ำเงิน Transform Vector นั้นอีกรอบ ทำให้เกิดผลลัพธ์เป็น vector (e,g)*a + (f,h)*c
      • = (a*e+c*f , a*g+c*h)
    • j ใหม่ไปไหน ตอนแรก j (0,1) ถูก Matrix เหลืองแก้ทิศทางให้เป็น (b,d) ก่อน
      • ให้เรามองว่าเกิด vector (b,d) ขึ้นมา เพราะ vector ผลลัพธ์จากการ Transform ครั้งแรก คือ (a,c)*0 + (b,d)*1 = (b,d) นั่นเอง
      • จากนั้น (b,d) ก็ถูก Matrix น้ำเงิน Transform Vector นั้นอีกรอบ ทำให้เกิดผลลัพธ์เป็น vector (e,g)*b + (f,h)*d
      • = (b*e+d*f , b*g+d*h)
    • พอเอาผลลัพธ์กลับมาเขียนในรูป Matrix (ฝั่งซ้ายคือ i ใหม่ ฝั่งขวาคือ j ใหม่) ก็จะได้ว่า แต่ละช่องเป็นดังนี้ ซึ่งเหมือนกับสูตรที่เคยท่องกันสมัยเด็กๆ นั่นแหละ
    • ดังนั้นการที่เราเอา Matrix คูณกัน ก็คือการสั่งให้ Transform vector หลายๆ รอบนั่นเอง
    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 47

    ซึ่งแน่นอนว่าเราสามารถใช้ MMULT ในการคูณ Matrix ใน Excel ได้เลย ง่ายกว่ามานั่งคูณเองมากๆ

    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 48
    Matrix คืออะไร? (กันแน่) : ตอนที่ 1 49

    ซึ่งสังเกตว่า การ Transform หากสลับลำดับกัน Vector ผลลัพธ์ก็จะไม่เหมือนกันนะครับ (-5,6) กับ (-10,3) นั่นก็แปลว่า Matrix ไม่มีคุณสมบัติการสลับที่การคูณนั่นเอง

    ตอนต่อไป

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

    แหล่งเรียนรู้เพิ่มเติม

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

  • สอนใช้ XLOOKUP ใน Excel 365 แบบละเอียด

    สอนใช้ XLOOKUP ใน Excel 365 แบบละเอียด

    สอนใช้ XLOOKUP ใน Excel 365 แบบละเอียด ซึ่งสามารถใช้แทน VLOOKUP ได้เลย แบบดีกว่าของเดิมมากๆ เช่น

    • Lookup ข้อมูลทางซ้ายหรือขวาก็ได้ (VLOOKUP ไปทางขวาได้เท่านั้น)
    • กำหนดได้ว่าถ้า Lookup ไม่เจอจะให้แสดงค่าเป็นอะไรแทน (VLOOKUP จะขึ้น #N/A)
    • Lookup จากบนลงล่าง หรือ ล่างขึ้นบนได้ (VLOOKUP Exact Match จากบนลงล่าง)
    • Lookup ข้อมูลกลับมาเป็น Range ได้ (VLOOKUP ได้ค่าเดียว)
    • Lookup ข้อมูลกลับมาในฐาน Cell Reference ได้ (VLOOKUP ได้ค่าผลลัพธ์เท่านั้น)

    ดังนั้นใครมี Excel 365 พลาดไม่ได้เด็ดขาด ดูจบได้ไอเดียมากมายแน่นอนครับ

  • ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query

    ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query

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

    Q1 : Power Query คืออะไร?

    ตอบ : คือเครื่องมือที่ใช้ดึงข้อมูลจากแหล่งต่างๆ มา (Get Data) และสามารถ “ดัดแปลงข้อมูลให้อยู่ในรูปแบบที่เหมาะสม” ได้ (Transform Data) เพื่อส่งข้อมูลไปทำงานต่ออีกที (Load/Apply) เช่น ส่งเข้าไปยัง PivotTable (กรณีตารางเดียว) หรือส่งเข้า Data Model (กรณีข้อมูลมีหลายตารางที่มีความสัมพันธ์กัน) เป็นต้น

    ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 50

    ซึ่งบอกได้เลยว่ามันเหมาะกับการใช้เป็นเครื่องมือที่ใช้งานคู่กับ PivotTable เป็นอย่างมาก นั่นคือ ใช้ Power Query ก่อน แล้วค่อย Pivot ต่อนั่นเอง

    Q2 : Power Query มีให้ใช้ได้ที่ไหน ต้องโหลดโปรแกรมอะไรเพิ่มมั้ย?

    ตอบ : Power Query เป็นเครื่องมือที่ฝังอยู่ทั้งในโปรแกรม Excel (2016 ขึ้นไป) และ Power BI เรียบร้อยแล้ว ไม่ต้องไปโหลดอะไรมาเพิ่มเลย (ถ้า Excel 2013 ต้องไปโหลด Add in เพิ่ม) ซึ่งมันก็เป็นเครื่องมือที่มีอยู่ใน Ribbon ของโปรแกรมในส่วนของ Data -> Get & Transform Data คล้ายกับเครื่องมืออื่นๆ ใน Excel ที่เพื่อนๆ เคยใช้นั่นแหละ อย่างเช่น Text to Column, Advanced Filter, Find & Replace นั่นแหละ แต่ว่าตัว Power Query นั้นมีความสามารถเจ๋งกว่าเครื่องมือเหล่านั้นทั้งหมด

    ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 51

    และไฟล์ที่ใช้ Power Query ไปแล้ว เวลา Save มันก็คือไฟล์ Excel ปกตินี่แหละ ไม่ได้มีนามสกุลอะไรพิศดารแบบเดียวกับไฟล์ที่มี VBA นะครับ

    คนที่ทำงานข้อมูลใน Excel มาถึงระดับนึง ก็จะมีแนวโน้มสูงที่จะต้องไปต่อใน Power BI ในอนาคตอยู่ดี ดังนั้นการที่ Power Query มีทั้งใน Excel และ Power BI เรียกได้ว่าถ้าเรียนรู้ Power Query ได้แล้ว เรียนครั้งเดียวใช้ได้ทั้ง 2 โปรแกรมเลย คุ้มสุดๆ ครับ

    อย่างไรก็ตาม สำหรับ Spec Computer ที่แนะนำ ผมขอแนะนำให้มี Ram อย่างน้อย 8GB นะครับ แต่ถ้าให้ดีควรมี Ram 16GB ขึ้นไป จึงจะใช้เครื่องมือพวก Power Query / Power BI ได้ดีครับ เนื่องจากโปรแกรมพวกนี้มีการคิดหลายๆ อย่างเอาไว้ใน Ram เยอะมาก

    Q3 : รูปแบบข้อมูลที่เหมาะสมคืออะไร?

    ตอบ : จุดประสงค์ของ Power Query คือการดัดแปลงข้อมูลให้อยู่ในรูปแบบที่เหมาะสม ซึ่งมีลักษณะเป็นตาราง Database นั่นคือ

    • มีหัวตารางบรรทัดเดียว
    • ข้อมูลเรื่องเดียวกันอยู่ในคอลัมน์เดียวกัน (เช่น เลขเดือน ให้อยู่ในคอลัมน์เดือนอันเดียว ไม่ใช่แยกหลายคอลัมน์ไปด้านขวา)
    • ข้อมูลในตารางไม่เว้นว่างละไว้ในฐานที่เข้าใจ (การว่างไว้ เช่น ใส่ข้อมูลแค่ตัวบนแล้วปล่อยเว้นว่างหรือ merge ซึ่งไม่ควรทำ)
    • มีแต่ข้อมูลจริงๆ ไม่ต้องมีบรรทัดสรุป (เพราะเดี๋ยวเราไปสรุปอีกทีใน Pivot ได้อยู่แล้ว ถ้ามี subtotal ก็จะซ้ำซ้อน)
    • ถ้ามีข้อมูลหลายตาราง แต่เป็นข้อมูลแบบเดียวกัน (อาจจะคนละสิ้นค้า คนละช่วงเวลา) ก็ต้องเอามารวมกันเป็นตารางเดียวก่อน

    ถ้านึกภาพไม่ออก สามารถไปดูตัวอย่าง การออกแบบตารางบันทึกข้อมูลที่ดีใน Excel (ลักษณะของ Database ที่ถูกต้อง) ได้ที่นี่

    ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 52

    Q4 : ถ้าข้อมูลไม่ใช่ Database แล้วมีข้อเสียยังไง?

    ตอบ : ถ้าเราปล่อยให้ข้อมูลมีหน้าตาที่ไม่ ok เราจะไม่สามารถนำไปสรุปต่อด้วย Pivot Table/Pivot Chart ได้ หรือถ้าทำได้ก็จะยากและมีปัญหาหลายอย่างตามมา ซึ่งสาเหตุที่หลายคนไม่ยอมใช้ PivotTable (ทั้งๆ ที่มันเป็นเครื่องมือที่เจ๋งและใช้ง่ายมาก) ก็อาจเป็นเพราะลักษณะของข้อมูลต้นทางยังไม่ถูกต้อง มันก็เลย Pivot ไม่ได้นั่นเอง!

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

    แปลว่า ถ้าข้อมูลดั้งเดิมของเรายังไม่ใช่หน้าตาแบบของ Database เราสามารถใช้ Power Query ดัดแปลงมันก่อนจะส่งให้ Pivot / Data Model ได้

    Q5 : Power Query ดัดแปลงหน้าตาของข้อมูลต้นฉบับของเราด้วยมั้ย?

    ตอบ : หลักการทำงานของ Power Query คือการกำหนด “วิธีการดัดแปลงข้อมูล” (Applied Steps) ที่จะทำกับข้อมูลที่เรากำหนด โดยที่มันไม่ได้ไปแก้ไขตัวไฟล์ต้นฉบับของเราจริงๆ แต่มันแค่ดึงข้อมูลมาทำตาม Step ที่เราต้องการ จากนั้นค่อยส่งผลลัพธ์ออกมายัง Excel/Power BI อีกที ซึ่งทำให้มั่นใจได้ว่าไฟล์ต้นฉบับยังคงปลอดภัย

    และที่สำคัญ Step การดัดแปลงข้อมูลที่เราออกแบบไว้ สามารถสั่งให้ทำซ้ำได้เพียงแค่การกดปุ่ม Refresh เพียงปุ่มเดียว แปลว่าหากข้อมูลต้นฉบับมีการเปลี่ยนแปลง เราสามารถอัปเดทผลลัพธ์ที่อยู่ใน Excel/Power BI ได้แค่กด Refresh ทีเดียวจบ ซึ่งจะข่วยให้การทำรายงาน Routine ของเราเร็วขึ้นมากๆๆๆๆๆ

    Q6 : นอกจากดัดแปลงหน้าตาข้อมูลแล้ว มันทำอะไรได้อีกมั้ย?

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

    • สามารถ Sort/Filter ข้อมูลได้ ลบคอลัมน์ที่ไม่ต้องการได้
    • แทนที่ข้อความนึงด้วยอีกอันได้
    • ดึงบางส่วนของข้อความออกมาได้
    • split คอลัมน์ออกเป็นหลายๆ อันได้
    • รวมหลายคอลัมน์เป็นคอลัมน์เดียวได้
    • เพิ่มคอลัมน์ใหม่ให้มีข้อมูลที่เราต้องการได้ (สามารถเขียนสูตรได้ แต่จะเป็นสูตรคนละแบบกับ Excel)
    • รวมข้อมูลจากหลายๆชีท หลายไฟล์เข้าด้วยกันได้ (มีทั้งง่ายและยาก)

    เรียกได้ว่า ทำได้ทุกอย่างถ้าเป็น Step ของการจัดเตรียมข้อมูลก่อนนำไปสรุปด้วย Pivot อีกที จนตัวผมเองใช้ Power Query แทนสูตร Excel อย่างพวก VLOOKUP, INDEX, MATCH LEFT, MID, SUBSTITUTE ได้ทั้งหมด และยังใช้แทนเครื่องมือที่ไม่อัตโนมัติอย่าง Text to column, Find & Replace, Sort/Filter ได้หมดเลย

    Q7 : Power Query ใช้ยากมั้ย? ต้องเรียนรู้สูตรเพิ่มหรือไม่?

    ตอบ : เราสามารถใช้ Power Query แบบง่ายๆ ผ่านเครื่องมือสำเร็จรูปที่มีอยู่ในตัวโปรแกรมได้เลย (แค่เอา Mouse คลิ๊กๆ) ซึ่งสามารถรองรับงานทั่วๆ ไปได้ซัก 70-80% แล้ว ซึ่งทุกครั้งที่เรากดเครื่องมือเหล่านี้มันจะบันทึกเป็นสูตรให้เราโดยอัตโนมัติในส่วนของ Applied Steps (คล้าย Record Macro) โดยที่เราไม่ต้องมาเรียนรู้ code ที่อยู่เบื้องหลังมันเลย

    ซึ่งถ้าเป็นคนที่มีความรู้และประสบการณ์การจัดเตรียมดัดแปลงข้อมูลใน Excel มาแล้ว เช่น ใช้ VLOOKUP, LEFT, SUBSTITUTE, IF อะไรมาเป็นแล้ว ผมเชื่อว่าถ้ามาลองหัดใช้ Power Query ไม่เกิน 1 week น่าจะสามารถใช้เป็นในระดับที่ทดแทนสูตรของงานเดิมได้เลยครับ

    แต่ถ้าเป็นคนที่พื้น Excel ยังน้อย หรือ Logic ไม่ค่อยแม่น อาจจะงงว่าจะดัดแปลงข้อมูลไปทำไม หรือควรทำอะไรก่อนหลังดี ผมแนะนำว่าให้ไปฝึกพื้นฐาน Excel ให้ดีขึ้นก่อน ให้มีประสบการณ์ทำงานเยอะจนเจอปัญหาก่อน แล้วจะได้รู้ว่าเป้าหมายของการใช้ Power Query คืออะไรกันแน่

    ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 53
    ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 54
    ตอบ 10 คำถาม มือใหม่สงสัยเรื่อง Power Query 55

    อย่างไรก็ตาม แม้ Power Query จะมีเครื่องมือสำเร็จรูปมาให้ แต่ก็มีสถานการณ์ยากๆ ที่เราจำเป็นต้องเรียนรู้และดัดแปลง Code ที่อยู่เบื้องหลังการทำงานของ Power Query ด้วย ซึ่งจะเรียกว่า M Code โดยที่มันเป็นภาษาเชิงฟังก์ชันที่ไม่เหมือนกับสูตรของ Excel แม้แต่น้อย (และมีฟังก์ชันให้ใช้มากกว่าที่เครื่องมือสำเร็จรูปมีให้อีกเยอะมากๆๆ) แต่ถ้าเข้าใจมัน เราจะสามารถทำเรื่องเจ๋งๆ ได้มากมาย รวมถึงสามารถเขียนฟังก์ชันขึ้นมาใช้เองก็ได้ครับ

    Q8 : เริ่มอยากลองใช้ Power Query แล้วสิ มีคลิปแนะนำมั้ย?

    ตอบ : ลองดูคลิปที่ผมทำไว้อันนี้ได้ครับ น่าจะพอให้สามารถเริ่มต้นได้ (ดูนาทีที่ 11:30 เป็นต้นไปก็ได้ครับ ช่วงแรกเป็นการเกริ่นนำ)

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

    หรือถ้าดูคลิปฝรั่งก็ได้ อันนี้ก็อธิบายมือใหม่ได้ดีมากๆ ครับ

    Q9 : สรุปแล้ว ใครเหมาะกับการใช้ Power Query บ้าง?

    ตอบ : สถานการณ์ที่เหมาะกับการใช้ Power Query จะมีประมาณนี้

    • ข้อมูลไม่อยู่ในรูปแบบ Database
    • ข้อมูลกระจายอยู่หลายชีท หลายไฟล์ ต้องการเอามารวมกัน
    • ยังมีคอลัมน์ที่ต้องการไม่ครบ ต้องเพิ่มคอลัมน์ด้วยการคำนวณบางอย่างจากข้อมูลที่มีอยู่
    • ต้องการใช้ Power BI ยังไงก็ต้องใช้ Power Query ให้เป็นครับ (ไม่งั้นเอาข้อมูลเข้า Power BI ไม่ได้ 555)

    ส่วนคนที่เหมาะกับการใช้ Power Query คือลักษณะประมาณนี้ครับ

    • คนที่มีความรู้และประสบการณ์การใช้ Excel พื้นฐาน เช่น VLOOKUP, IF, LEFT, PivotTable เป็นแล้ว และอยากพัฒนาทักษะต่อ
    • คนที่ทำงานใน Excel แล้วอยากจะใช้ Pivot Table แต่ใช้ไม่ได้ หรือใช้ได้ไม่ดี เพราะหน้าตาข้อมูลยังไม่ใช่ Database
    • คนที่ต้องทำรายงาน Routine ไม่ว่าจะ Monthly, Weekly, Daily แล้วอยากให้งานมันอัตโนมัติมากขึ้น
    • คนที่เขียนสูตร Excel เยอะจนทำงานช้า ถ้าเปลี่ยนมาใช้ Power Query แล้วไฟล์จะไม่หน่วง เพราะว่าสามารถเอาข้อมูลดิบไว้ที่ไฟล์ข้างนอกได้ ไม่จำเป็นต้องเอามาแปะใน Excel และผลลัพธ์ที่ออกมาไม่ได้ค้างสูตรไว้ (แต่ยัง Refresh ได้อยู่ ซึ่งเจ๋งมากๆ)
    • คนที่จะใช้ Power BI ด้วยเหตุผลที่บอกไปข้างบน

    Q10 : อยากรู้อะไรถามมาเลย จะตอบให้ครับ

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

    อย่าลืมบอกต่อเพื่อนๆ

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

    ผมอยากให้คนใช้งาน Power Query เป็นเยอะๆ เพราะมันเจ๋งมากจริงๆ ครับ แถมถ้าจะไปต่อที่ Power BI ยังไงก็ต้องใช้ ดังนั้นเรียนรู้ไปเลยใน Excel ไม่เสียหายแน่นอน ^^

  • วิธีใช้ Regular Expression (RegEx) ใน Power Query

    วิธีใช้ Regular Expression (RegEx) ใน Power Query

    ตามปกติแล้ว ณ ตอนนี้ Power Query นั้นยังไม่ Support เรื่องการใช้ Regular Expression (RegEx) ทั้งใน Excel และ Power BI ก็ยังใช้ไม่ได้ แต่เจ้า Regular Expression นี้มีประโยชน์มากๆ จริงๆ จนหาสิ่งอื่นทดแทนไม่ได้เลย ดังนั้นผมก็เลยพยายามหาวิธีพลิกแพลงเพื่อทำมันให้ได้โดยเขียนฟังก์ชัน M Code ขึ้นมาใช้เองใน Power Query ซึ่งมีเทคนิคลับช่วยให้มันทำได้อยู่ครับ มาดูกันว่าทำได้ยังไง?

    เผื่อใครที่ยังไม่รู้จัก Regular Expression

    Regular Expression (RegEx) มีความสามารถจะช่วยให้เราสามารถค้นหา/แทนที่ข้อความที่ตรงกับ Pattern ที่เราระบุได้ครับ ซึ่งเรื่องของเรื่องคือ Pattern มันสามารถรองรับเคสที่ซับซ้อนได้มากๆ และดีกว่าการค้นหาปกติของ Excel ที่รองรับได้แค่ข้อความปกติ หรืออย่างมากก็มีแค่ Wildcard *กับ? เท่านั้น (ซึ่งมัน Simple มากเกินไป) แปลว่าการค้นหาด้วย RegEx จะทำให้เราค้นหาและดึงข้อความที่เราต้องการได้ดั่งใจ

    ซึ่งตอนนี้ Excel กับ Power Query ยังไม่มี RegEx ในตัว แต่ในเครื่องมืออื่น เช่น Google Sheets, Python, R, Java เค้าก็มีกันหมดแล้ว ทำให้นี่เป็นจุดอ่อนสำคัญของ Excel และ Power Query/Power BI เลย

    แม้ว่าใน Excel VBA ก็สามารถ add Library เกี่ยวกับ Regular Expression มาใช้ได้ แต่ในบางกรณีเราอาจใช้ VBA ไม่ได้ ดังนั้นผมก็เลยพยายามเขียนฟังก์ชันขึ้นมาใน Power Query ครับ ซึ่งผลลัพธ์ที่ได้ออกมาน่าพอใจสำหรับผมเองมากๆ

    และในระหว่างที่รอให้เค้าพัฒนา RegEX อย่างเป็นทางการ ก็สามารถไปช่วยกันโหวตได้ที่ https://ideas.powerbi.com/ideas/idea/?ideaid=1395c308-7f92-4321-8e35-6cd04d7108bf

    หัดใช้ Regular Expression

    ผมเคยเขียนบทความอธิบายการใช้งาน RegEx เบื้องต้นไว้นิดหน่อยที่นี่

    แนวทางของการใช้ Regular Expression ใน Power Query

    การจะใช้ Regular Expression ใน Power Query ได้นั้น มีอยู่ 2 แนวทางใหญ่ๆ นั่นคือ

    1. ใช้ Python มาช่วย (ทำได้แค่ใน Power BI เท่านั้น) ถ้าใครสนใจอ่านเพิ่มเติมได้ที่นี่
    2. ใช้ JavaScript มาช่วย (ใช้ได้ทั้ง Excel และ Power BI)

    ซึ่งแนวทางที่ผมจะใช้ในบทความนี้คือ การใช้ JavaScript มาช่วย ซึ่งใช้ได้ทั้ง Excel และ Power BI และไม่ต้องลงโปรแกรม Python แถมไม่ต้องต่อ Internet ด้วยซ้ำครับ และที่สำคัญ ความสามารถของมันมากกว่าที่ใช้ใน Google Sheets ด้วยนะครับ (อันนี้มันดึงได้แค่อันแรกที่เจอ แต่ของผมดึงได้ทุกอัน)

    แนวทางการใช้ JavaScript มาช่วยทำ Regular Expression ใน Power Query

    หลักการคือเราสามารถสร้าง Script ข้อความที่เป็นภาษา JavaScript แล้วใส่เข้าไปในคำสั่ง Web.Page() ของ Power Query ได้ ซึ่งจะได้ผลลัพธ์กลับมาเป็นตารางที่เก็บ Html ของเว็บนั้นๆ (แนวคิดนี้เอามาจากเว็บ biaccountant บทความนี้)

    ซึ่งใน JavaScript นั้นเอง เราจะสั่งใน Run คำสั่งที่รองรับ Regular Expression ใน JavaScript เช่น String.Match, String.Replace, String.Search, RegExp.exec ได้ (ความเศร้าคือมันใช้ String.MatchAll ไม่ได้ เพราะ Internet Explorer มันไม่รองรับ แต่ผมมีวิธีพลิกแพลงได้ อยู่ตอนจบของบทความ)

    ซึ่งสุดท้ายเราสามารถใช้คำสั่ง Document.Write ของ JavaScript เพื่อให้พ่นผลลัพธ์สุดท้ายที่เราต้องการออกมาในหน้า HTML ได้ แล้ว Power Query ก็เอาค่านั้นกลับมาใช้ด้วย Web.Page() นั่นเอง

    พอเรารู้แบบนี้แล้ว เราก็สามารถสร้างฟังก์ชันใน Power Query เพื่อให้รับค่าข้อความ และ Pattern ของ RegEx ที่ต้องการ แล้วไปทำงานตาม Concept ที่ผมเล่าให้ฟังได้ ตัวอย่างดังนี้

    ThepRegExExtract : ดึงข้อความที่ตรงกับ RegEx Pattern ที่ระบุออกมา

    (OriginalText as text,RegExPattern as text, optional RegExMode as text) as list

    RegExMode

    • ไม่ระบุ RegExMode (หรือ เป็นค่าว่าง) สามารถใช้ค้นหาข้อความแรกที่ตรง Pattern (เอา Capturing Group ด้วย)
    • RegExMode เป็น “i” สามารถใช้ค้นหาข้อความแบบไม่สนใจพิมพ์เล็กพิมพ์ใหญ่
    • RegExMode เป็น “g” สามารถใช้ค้นหาข้อความทุกตัวพร้อมกันได้ (ไม่เอา Capturing Group)
    • RegExMode เป็น “gi” สามารถใช้ค้นหาข้อความทุกตัวพร้อมกันได้ (ไม่เอา Capturing Group) และ ไม่สนใจพิมพ์เล็กพิมพ์ใหญ่

    Function M Code ( Copy ใส่ Advanced Editor ได้เลย)

    (OriginalText as text,RegExPattern as text, optional RegExMode as text) as any=>
     let 
        // MCode created by ThepExcel.com
        MyTextFix=Text.Replace(OriginalText,"\","\\"),
        MyTextFix2=Text.Replace(Text.Replace(MyTextFix,"#(lf)","\n"),"#(cr)","\r"),
        //แปลงให้ข้อความที่มี \ หรือการขึ้นบรรทัดใหม่ ไปใช้ใน Javascript ได้ถูกต้อง
        re= if RegExMode is null then "/"&RegExPattern&"/" else "/"&RegExPattern&"/"&RegExMode,
        //สามารถใส่ RegExMode เป็น "g", "i" หรือ "gi" ได้
        //ถ้าไม่ใส่ Mode อะไรก็จะถือเป็นการ Single Match และ case sensitive
        getWeb=Web.Page(
        "<meta http-equiv='X-UA-Compatible' content='IE=edge'>
        <script>
        var MyText='"&MyTextFix2&"';
        var MyMatches=MyText.match("&re&");
        var MyResult=JSON.stringify(MyMatches);
        document.write(MyResult);
        </script>"),
        // ใช้ JavaScript ดึงผลลัพธ์ออกมาเป็น JSON String
        getWeb2=getWeb[Data]{0}[Children]{0}[Children]{1}[Text],
        finalResult=try Json.Document(Text.Combine(getWeb2)) otherwise null
        // ให้ PQ อ่านผลลัพธ์จาก JSON string ให้กลายเป็น List
    in  
        finalResult

    ซึ่งเวลาใช้งานสามารถเรียกใช้งานได้ผลลัพธ์ออกมาเป็น List ซึ่งเอาไว้รองรับกรณีใช้ Capturing Group ได้ด้วย

    ตัวอย่างการใช้งาน

    วิธีใช้ Regular Expression (RegEx) ใน Power Query 56
    หาแบบ default จะได้ผลลัพธ์ตัวแรก และ capturing group ของมัน
    วิธีใช้ Regular Expression (RegEx) ใน Power Query 57
    ถ้าใส่ mode เป็น “g” จะหาแบบ global คือหาทุก match (แต่ไม่สนใจ capturing group)
    วิธีใช้ Regular Expression (RegEx) ใน Power Query 58
    หากแบบ gi คือ global + case insensitive คือ ไม่สนใจพิมพ์เล็กพิมพ์ใหญ่ แบบหาทุก match
    วิธีใช้ Regular Expression (RegEx) ใน Power Query 59
    วิธีใช้ Regular Expression (RegEx) ใน Power Query 60
    หากแบบ i คือ case insensitive คือ ไม่สนใจพิมพ์เล็กพิมพ์ใหญ่ ได้ตัวแรกอันเดียว แต่เอา capturing group ด้วย
    วิธีใช้ Regular Expression (RegEx) ใน Power Query 61
    ถ้าใส่ mode เป็น “g” จะหาแบบ global คือหาทุก match (แต่ไม่สนใจ capturing group)

    ThepRegExMatchCount : นับได้ว่าเจอผลลัพธ์ตาม Pattern กี่ชุด (ไม่สนใจ capturing Group)

    ในทำนองเดียวกันเราก็สามารถประยุกต์สร้างอีกฟังก์ชันขึ้นมาเพื่อนับได้ว่าเจอผลลัพธ์กี่ตัว ดังนี้

    (OriginalText as text,RegExPattern as text, optional RegExMode as text) as number

    RegExMode

    • RegExMode เป็นค่าว่าง จะหาแบบสนใจพิมพ์เล็กพิมพ์ใหญ่
    • RegExMode เป็น “i” สามารถใช้ค้นหาข้อความแบบไม่สนใจพิมพ์เล็กพิมพ์ใหญ่

    Function M Code

    (OriginalText as text,RegExPattern as text, optional RegExMode as text) as number=>
     let 
        // MCode created by ThepExcel.com
        MyTextFix=Text.Replace(OriginalText,"\","\\"),
        MyTextFix2=Text.Replace(Text.Replace(MyTextFix,"#(lf)","\n"),"#(cr)","\r"),
        //แปลงให้ข้อความที่มี \ หรือการขึ้นบรรทัดใหม่ ไปใช้ใน Javascript ได้ถูกต้อง
        re= if RegExMode is null then "/"&RegExPattern&"/g" else "/"&RegExPattern&"/g"&RegExMode,
        //สามารถใส่ RegExMode เป็น "i" ได้
        //ถ้าไม่ใส่ Mode อะไรก็จะถือเป็นการ Single Match และ case sensitive
        getWeb=Web.Page(
        "<meta http-equiv='X-UA-Compatible' content='IE=edge'>
        <script>
        var MyText='"&MyTextFix2&"';
        var MyMatches=MyText.match("&re&");
        document.write(MyMatches.length);
        </script>"),
        getWeb2=getWeb[Data]{0}[Children]{0}[Children]{1}[Text],
        finalResult=try Number.From(Text.Combine(getWeb2)) otherwise 0
        // ให้ PQ อ่านผลลัพธ์จาก JSON string ให้กลายเป็น List
    in  
        finalResult
    วิธีใช้ Regular Expression (RegEx) ใน Power Query 62
    นับว่าเจอผลลัพธ์กี่อัน

    ThepRegExReplace : แทนที่ข้อความที่ตรงกับ Pattern ที่ระบุ

    (OriginalText as text,RegExPattern as text,NewText as text,optional RegExMode as text) as text

    RegExMode

    • ไม่ระบุ RegExMode (หรือ เป็นค่าว่าง) สามารถใช้แทนที่ข้อความแรกที่ตรง Pattern แบบสนใจพิมพ์เล็กพิมพ์ใหญ่
    • RegExMode เป็น “i” สามารถใช้แทนที่ข้อความแทนที่ข้อความแรกที่ตรง Pattern แบบไม่สนใจพิมพ์เล็กพิมพ์ใหญ่
    • RegExMode เป็น “g” สามารถใช้แทนที่ข้อความทุกตัวที่ตรง Pattern แบบสนใจพิมพ์เล็กพิมพ์ใหญ่
    • RegExMode เป็น “gi” สามารถใช้แทนที่ข้อความทุกตัวที่ตรง Pattern แบบไม่สนใจพิมพ์เล็กพิมพ์ใหญ่
    (OriginalText as text,RegExPattern as text,NewText as text,optional RegExMode as text) as text=>
     let 
        // MCode created by ThepExcel.com
        MyTextFix=Text.Replace(OriginalText,"\","\\"),
        MyTextFix2=Text.Replace(Text.Replace(MyTextFix,"#(lf)","\n"),"#(cr)","\r"),
        NewTextFix=Text.Replace(NewText,"\","\\"),
        re= if RegExMode is null then "/"&RegExPattern&"/" else "/"&RegExPattern&"/"&RegExMode,
        //สามารถใส่ RegExMode เป็น "g", "i" หรือ "gi" ได้
        //ถ้าไม่ใส่ Mode อะไรก็จะถือเป็นการ Single Match และ case sensitive
        getWeb=Web.Page(
        "<meta http-equiv='X-UA-Compatible' content='IE=edge'>
        <script>
        var MyText='"&MyTextFix2&"';
        var MyNewText='"&NewTextFix&"';
        var MyMatches=MyText.replace("&re&",MyNewText);
        var MyResult=JSON.stringify(MyMatches);
        document.write(MyResult);
        </script>"),
        getWeb2=getWeb[Data]{0}[Children]{0}[Children]{1}[Text],
        finalResult=Json.Document(Text.Combine(getWeb2))
    in  
        finalResult

    ตัวอย่างการใช้งาน

    วิธีใช้ Regular Expression (RegEx) ใน Power Query 63
    แทนที่ตัวแรกที่ตรงกับ Pattern
    วิธีใช้ Regular Expression (RegEx) ใน Power Query 64
    แทนที่ตัวแรกที่ตรงกับ Pattern และใช้ Capturing Group
    วิธีใช้ Regular Expression (RegEx) ใน Power Query 65
    แทนที่ทุกตัวที่ตรงกับ Pattern และใช้ Capturing Group
    วิธีใช้ Regular Expression (RegEx) ใน Power Query 66
    แทนที่ตัวแรกที่ตรงกับ Pattern และใช้ Capturing Group หลายอัน

    ThepRegExExtractAll : ดึงผลลัพธ์ทุกตัวทุก SubGroup ออกมาเป็น List

    อย่างไรก็ตาม ตัวที่ท้าทายที่สุดก็คือ การ Extract ข้อมูลทุกตัวที่ตรงกับ Pattern และเอา Capturing Group ด้วย ซึ่งเราใช้ฟังก์ชัน String.MatchAll ของ JavaScript ตรงๆไม่ได้ เพราะ Internet Explorer มันไม่ Support

    แนวทางนึงที่ทำได้คือ “ใช้การวน Loop มาช่วย” ซึ่งเดิมทีผมลองใช้ List.Generate ของ Power Query ในการวน Loop ซึ่งแม้จะได้ผลลัพธ์ออกมาถูกต้อง แต่ Performance มันช้ามาก ทำให้สุดท้ายผมเปลี่ยนไปใช้อีกวิธีซึ่ง Performance ออกมาดีมากๆ เพราะไป Loop ใน JavaScript จนจบเลยแล้วค่อยส่งผลลัพธ์ออกมา

    ตัวอย่างการใช้งาน

    วิธีใช้ Regular Expression (RegEx) ใน Power Query 67
    ถ้าไม่ระบุ GroupIndex จะได้ออกมาทั้งหมดเลยทุกตัว ทุก Group เป็น List ซ้อน List
    วิธีใช้ Regular Expression (RegEx) ใน Power Query 68
    ถ้าระบุ GroupIndex เป็น 0 คือจะได้ผลลัพธ์ทุกตัวแบบไม่สนใจ Capturing Group
    วิธีใช้ Regular Expression (RegEx) ใน Power Query 69
    ถ้าระบุ GroupIndex เป็น 1 คือจะได้ผลลัพธ์ทุกตัวเฉพาะ Capturing Group อันแรก

    ใครสนใจอยากได้ฟังก์ชัน ThepRegExExtractAll ที่เต็มเปี่ยมไปด้วยความสามารถที่สุดยอดแบบนี้ (หรืออยากช่วยสนับสนุนผม) สามารถสั่งซื้อ ThepExcel-Mfx : M Code สำเร็จรูปจาก ThepExcel แบบ Premium ได้นะครับ

    • Version Premium สั่งซื้อได้ที่นี่ (ใช้ได้ตลอดชีวิต ในราคา 590 บาท แต่ถ้าซื้อภายใน กค. 2564 นี้ จะเหลือ 490 บาท )
      (หลังจากซื้อและได้รับการตรวจสอบแล้ว ผมจะ Add คุณเข้า Group ที่จะมีสิทธิ์โหลดไฟล์แบบ Premium ได้ครับ)
    วิธีใช้ Regular Expression (RegEx) ใน Power Query 70
    ทำให้ดูว่าใน Power BI ก็ใช้ได้นะครับ

  • จงแยก Report กับ Database ออกจากกัน (ถ้าอยากใช้ Excel ให้ง่าย)

    จงแยก Report กับ Database ออกจากกัน (ถ้าอยากใช้ Excel ให้ง่าย)

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

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

    ซึ่งการสรุป จะใช้สูตร หรือใช้ PivotTable ก็แล้วแต่ความถนัดของแต่ละคนแล้วครับ

  • สอนเทคนิคการ Random แบบไม่เอาตัวซ้ำ พร้อมประกาศรายชื่อผู้โชคดีจากการ Subscribe ช่อง YouTube เทพเอ็กเซล

    สอนเทคนิคการ Random แบบไม่เอาตัวซ้ำ พร้อมประกาศรายชื่อผู้โชคดีจากการ Subscribe ช่อง YouTube เทพเอ็กเซล

    สืบเนื่องจาก Post ในเพจ Facebook เทพเอ็กเซล ผมได้มีการถามว่ามีใครได้ Subscribe ช่อง YouTube เทพเอ็กเซล ไปบ้าง ซึ่งก็มีคนมา Comment เป็นร้อยคนเลย (ขอบคุณมาก) แต่ผมจะ Random สุ่มผู้โชคดีมา 3 คนจาก Comment ทั้งหมดเท่านั้นครับ

    ผมเชื่อว่าการ Random ค่าใน Excel นั้นหลายคนเจอปัญหากวนใจอย่างนึงนั่นก็คือ หากอยากจะ Random ค่าจากรายการที่กำหนดแบบไม่เอาตัวซ้ำจะทำยังไง? เช่นมีรายชื่อคน 10 คน ถ้าเราใช้ RANDBETWEEN ทำการ Random เลขระหว่าง 1-10 บางทีมันก็ได้ตัวซ้ำกันออกมาได้ กลายเป็นต้องมา Random ใหม่จนกว่าจะไม่ซ้ำอีก ซึ่งเสียเวลาเนอะ

    หลักการ Random แบบไม่เอาตัวซ้ำ

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

    ลองทำกับข้อมูลจริง

    ผมทำการเพิ่มคอลัมน์ Random ด้วย =RAND() ได้ผลลัพธ์ดังนี้ แล้ว Copy/Paste Value เอาไว้เพื่อให้ค่าไม่เปลี่ยน

    สอนเทคนิคการ Random แบบไม่เอาตัวซ้ำ พร้อมประกาศรายชื่อผู้โชคดีจากการ Subscribe ช่อง YouTube เทพเอ็กเซล 71

    จากนั้นทำการ Sort คอลัมน์นั้นจากมากไปน้อย (การเรียงก็จะเป็นแบบสุ่ม)

    สอนเทคนิคการ Random แบบไม่เอาตัวซ้ำ พร้อมประกาศรายชื่อผู้โชคดีจากการ Subscribe ช่อง YouTube เทพเอ็กเซล 72

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

    สอนเทคนิคการ Random แบบไม่เอาตัวซ้ำ พร้อมประกาศรายชื่อผู้โชคดีจากการ Subscribe ช่อง YouTube เทพเอ็กเซล 73

    พอเราคัดเลือกคนได้ตามต้องการ ก็ถือว่าจบการสุ่มแล้วครับ

    สรุปรายชื่อผู้ได้รับรางวัล

    รางวัลที่เตรียมให้จะเป็นอันนี้ครับ

    ผู้ที่ได้รับรางวัลหลักคือ

    • Kiattisak Pitaktammakul
    • Thamonwan Nopmaneewijit
    • Nattawut Thuamkred

    ผู้ที่ได้รางวัลปลอบใจ

    • Pennapa Phangcomruk
    • Atapol Noibooddee
  • วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3

    จากความรู้สองตอนก่อนหน้าที่เราเรียนรู้เรื่อง GET กับ POST ไปแล้ว ในตอนนี้เราจะมาเรียนรู้วิธีการดึงข้องมูลจาก Web API โดยที่ทางเว็บนั้นๆ ไม่ได้มี Document บอกตรงๆ ว่าจะต้องไปดึง API จากไหน ด้วย Syntax อะไรยังไง?

    แต่เราก็ยังสามารถรู้ URL ที่จะดึงได้จากการใช้ Inspector ของ Web Browser เช่น Google Chrome ก็มีครับ ซึ่งในบทความนี้ผมจะสอนเองว่าดูยังไง แล้วดึงข้อมูลยังไง ถ้าเจอปัญหาจะแก้ยังไงแบบละเอียดเลย

    ตัวอย่าง 1 : ดึงข้อมูลอัตราแลกเปลี่ยนจาก BBL

    สมมติว่าจะดึงข้อมูลอัตราแลกเปลี่ยนจากเว็บนี้ https://www.bangkokbank.com/th-TH/Personal/Other-Services/View-Rates/Foreign-Exchange-Rates แม้ว่ามันจะสามารถดึงได้ตรงๆ เลยจากการ Get Data From Web แต่ว่าวิธีนั้นมันไม่มีความยืดหยุ่น เพราะการ Get Data from Web มันจะดึงตาม URL ที่ระบุ ซึ่งจะได้อัตราแลกเปลี่ยนล่าสุดเท่านั้น

    ดึงอัตราแลกเปลี่ยนล่าสุด

    แต่เพื่อเป็นการฝึกเราจะลองหาเอาอัตราแปลกเปลี่ยนล่าสุดก่อน ซึ่งตอนนี้เรายังไม่รู้ว่าต้องดึง API ไปที่ไหนยังไง ดังนั้นให้เปิด Google Chrome ปกติก่อน แล้วกด F12 เพื่อเปิด Inspector ขึ้นมา แล้วให้กดไปที่ Tab Network แล้วเลือกคำว่า XHR (XMLHttpRequest) จากนั้นให้กดปุ่ม Ctrl+R เพื่อ Record activity ที่เกิดขึ้น ทีนึง

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 74

    ทีนี้มันจะแสดงว่ามีอะไรส่งกลับมาจาก Server บ้าง ผ่านการ Request แบบไหนยังไง

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 75

    ถ้าเราคลิ๊กไปแต่ละอันแล้วดู Preview ก็จะเห็นว่ามันส่งอะไรกลับมา ให้ไล่ดูไปจนเจอตัวที่น่าสนใจ เช่น ผมเจออันนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 76

    ถ้าเราคลิ๊กคำว่า Headers จะเห็นว่าการจะได้ Response แบบนี้เนี่ย มันต้องยิง API ไปที่ไหน และเป็นแบบ GET หรือ POST รายละเอียดยังไง

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 77

    ถ้าเห็นเป็นแบบ GET ก็ลองเอา URL ไปพิมพ์เล่นก่อน ว่าได้ผลลัพธ์จริงมั๊ย ซึ่งปรากฏว่ามันติดปัญหาเรื่อง subscription key แสดงว่าเว็บนี้อาจมีระบบ Security บางอย่างที่ไม่อยากให้เราดูดข้อมูลไปง่ายๆ ถ้าไม่ได้ดูตรงๆ ผ่านทาง Browser

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 78

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

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 79

    ถ้าลองไล่ลงไปดูจะเห็นว่า ใน Request Headers มีข้อมูล subscription key อยู่ด้วย

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 80

    คราวนี้เราลอง Get Data from Web จาก Power Query แล้วเลือกแบบ Advance เพื่อใส่รายละเอียด Header ลงไป (ผมไม่แน่ใจว่า key นี้มันจะใช้ได้นานแค่ไหนนะครับ แต่แค่โชว์ concept ให้ดูว่า เราสามารถระบุ key ลงในรายละเอียด header ได้นะ)

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 81

    คราวนี้เราก็จะดึงข้อมูลได้แล้ว ให้กด convert to table แล้ว expand column ได้เลย

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 82

    ดึงอัตราแลกเปลี่ยนแบบระบุวัน

    สมมติผมลองเปลี่ยนวันเป็น 6 พ.ค. ดู จะเห็นว่ามันมี Response กลับมาเพิ่มเติม ถ้าคลิ๊กเข้าไปดูจะเห็น URL ดังนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 83

    ซึ่งพอเดาได้ว่า

    https://www.bangkokbank.com/api/exchangerateservice/Getfxrates/06/05/2021/2/th
    https://www.bangkokbank.com/api/exchangerateservice/Getfxrates/วัน/เดือน/ปี/ลำดับเช้าบ่าย/th

    ดังนั้นถ้าผมลองเอา Power Query ดึงแลวระบุ key ใน header เหมือนเดิม เราก็จะสามารถมี query ที่ดึงอัตราแลกเปลี่ยนในวันที่เราต้องการได้เลย (จะทำวันที่เป็น text ให้เป็น parameter แล้วใช้ในลักษณะของฟังก์ชันเลยก็ได้)

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 84

    ตัวอย่าง 2 : ดึงข้อมูล Tag Hit จาก Pantip Hitz

    สมมติว่าเราต้องการดึงข้อมูลจากหน้า https://pantip.com/home/hitz ว่ามีอะไรบ้าง หากลอง Get Data from Web จาก Power Query ใน Excel เฉยๆ จะไม่ได้ข้อมูลอะไรขึ้นมาเลย (แต่ถ้าดึงผ่าน Power BI จะได้นะ แต่ก็เห็นไม่ครบทุกองค์ประกอบอยู่ดี) แต่ถ้าทำใน Excel เราต้องดึงผ่าน API เท่านั้น ไม่มีทางเลือกครับ

    ก่อนอื่นก็ให้เข้าไปดู XHR เช่นเคย

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 85

    คราวนี้เราลองดูเรื่อง Tag Hit เพื่อจะดูว่ามีการส่ง Data ว่าอะไรคือ Hashtag ที่ฮิตที่สุดในตอนนี้ (ซึ่ง power bi ก็มองไม่เห็นตัวนี้)

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 86

    ถ้าเราคลิ๊กคำว่า Headers จะเห็นการ request ของ Tag Hit ที่เราต้องการ

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 87

    แต่ว่าหากลองเอา URL ดังกล่าวไปพิมพ์ลงใน Browser ก็จะพบว่า มันขึ้น Error ว่า Access Denied แสดงว่าเว็บนี้อาจมีระบบ Security อีกแล้วววว

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 88

    จากนั้นเราก็ต้องมาหาว่า ต้องระบุรายละเอียดอะไรใน Header ถึงจะเข้าไปดึงข้อมูลได้ ซึ่งบางทีก็ต้องลองผิดลองถูกดูครับ (เพราะ error message ไม่ได้บอกละเอียดเหมือนตัวอย่างก่อนหน้า) แต่ถ้าเดาจากชื่อ header ด็พอเดาได้ว่าอันไหน

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 89

    จากนั้นเราจะสามารถดึงข้อมูลมาได้แล้ว

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 90

    ก็ทำการ convert into table / transpose / promote header / แล้ว expand new row / expand column ได้เลย

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 91

    จะเห็นว่านอกจากจะได้ชื่อ tag แล้ว ยังได้รายละเอียดมาด้วยว่า tag นั้นมีคนดูมากแค่ไหน มีกระทู้เยอะแค่ไหน ซึ่งจะเห็นว่ามีข้อมูลเพิ่มเติมมากกว่าการ get data from web แบบปกติเยอะเลยครับ

    ตัวอย่าง 3 : ดึงข้อมูลราคาน้ำมันจาก PTTOR

    คราวนี้เราจะดึงข้อมูลราคาน้ำมันจาก https://www1.pttor.com/oilprice-capital.aspx นะครับ ซึ่งถ้า Get data from web เฉยๆ จะไม่เห็นข้อมูลราคาน้ำมันเลย แปลว่าต้องหา API แล้วล่ะ

    ซึ่งพอ inspect ดูแล้วจะมี XHR อยู่ตัวเดียวเลย คือ ตัวนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 92

    พอมาดูที่ Header ปรากฏว่าเป็นแบบ POST ครับ

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 93

    หากเราลองเอา URL ของ API ไปกรอกเฉยๆ มันจะไม่ได้ผลครับ ดังนั้นเราต้องค้นหาต่อว่าแบบ POST นี้มันส่ง Content อะไรกลับไปให้ Server ซึ่งเลื่อนลงมาจะเห็นดังนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 94

    คราวนี้เราก็รู้รายละเอียด Body แล้ว ส่วนรายละเอียด Header ก็เหมือนเดิมในตัวอย่าง POST ก่อนหน้า คือ
    Content-Type: application/json; charset=UTF-8

    ดังนั้นคราวนี้มาสร้าง Query กันล่ะ โดยเราจะ Copy Code มาจาก Query เดิม แล้วดัดแปลงเอา (เพราะกรอกจาก UI ตรงๆ มันไม่ยอม)

    //nMonth: "", nYear: "2021", isTH: true
     let
         MyRecord=[nMonth="",nYear="2021",isTH=true],
         Source = Json.Document(Web.Contents("https://www1.pttor.com/oilprice-capital.aspx/SearchOilPrice", 
         [Headers=[#"Content-Type"="application/json; charset=UTF-8"],
         Content=Json.FromValue(MyRecord)
         ]))
     in
         Source

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

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 95

    ซึ่งพอ Expand จนครบแล้วจะได้แบบนี้เลย

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 96

    จะเห็นว่ามันมี tag <b> </b> ติดมาด้วย (ซึ่งมันคือตัวหนาในHTML) เราก็จัดการเอาออกซะ
    (ง่ายสุดคือ Replace values 2 ที คือเอา <b> ออกทีนึง แล้วค่อยเอา </b> ออกอีกที)

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 97
    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 98

    จากนั้อยค่อย Detect Data type ซะ ข้อมูลก็จะกลายเป็นตัวเลขได้อย่างสวยงาม

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 99

    ทีนี้ถ้าสังเกตตรง MyRecord ที่เราส่งแบบ POST ไปหา Sever นั้น จะเห็นว่ามันระบุเดือน ปี ได้ด้วย ถ้าลองเปลี่ยนเล่น เราก็จะได้ข้อมูลช่วงนั้นตามที่เราต้องการ เช่น ผมแก้เป็นแบบนี้

    = [nMonth="5",nYear="2020",isTH=true]

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

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 100

    แค่นี้เราก็สามารถดึงข้อมูลราคาน้ำมัน ช่วงเดือน ปี ที่ต้องการ ผ่าน API แบบ POST ได้แล้วครับ

    ตัวอย่าง 4 : Google ก็มี API มากมายให้ทดลองใช้ได้ฟรี

    การดึงข้อมูลผ่าน API นั้นสามารถนำไปประยุกต์ได้หลากหลายมากนะครับ เพราะในโลก internet นั้นมี API เจ๋งๆ มากมาย บริการของ Google ที่เราคุ้นเคยเองก็มีเยอะมาก เช่น Google Maps, Google Translate และอีกมากมาย

    อย่างไรก็ตามบริการหลายๆ อันก็ต้องไปสมัคร Account ให้เรียบร้อย ให้มี Key ที่ถูกต้องจึงจะเข้าไปใช้งานได้ ดังนั้นใครอยากลองทำตามตัวอย่างนี้ ก็ต้องสมัคร Cloud API เพื่อเอา Key มาให้ได้ก่อน (ต้องใส่เลขบัตรเครดิตไปก่อน แต่ทดลองใช้ฟรีได้ภายใต้ Credit ฟรีหลายร้อยเหรียญเลย ถ้าใช้จนโควต้าหมด ก็แค่ใช้งานต่อไม่ได้ มันจะยังไม่หักเงินนะ)

    พอสมัครแล้ว ให้ไปกด Generate Key ด้วย

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 101

    และอย่าลืมไป Enable API Service ที่จะใช้ด้วยนะ ไม่งั้น key นั้นจะใช้ไม่ได้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 102

    แล้ว search หา API ที่ต้องการเช่น translate เจอแล้วกดเข้าไปแล้ว Enable ซะ

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 103

    ทีนี้มาดูตัวอย่าง Query ที่เรียกใช้ Google Translate API แบบ POST ซึ่งผมสร้างฟังก์ชันไว้ดังนี้
    (เอา key ไปใส่เพิ่มใน query string ใน URL ได้เลย)

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 104

    แล้วเอาฟังก์ชันที่สร้างไปเรียกใช้กับข้อมูลที่ต้องการจะแปลได้เลย ผลลัพธ์ที่ได้กลับมาจะซ้อนกันหลายชั้นหน่อย ให้ Expand ออกมาให้หหมด จะได้ดังนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 3 105

    แปลว่าถ้าเราเข้าถึง API เจ๋งๆ ได้ เราก็ทำอะไรเจ๋งๆ ได้เช่นกัน เช่นใช้ AI Machine Learning ช่วยตีความข้อความว่าเป็นเชิงบวก เชิงลบ, คำนวณระยะทาง ระยะเวลาจากต้นทางไปปลายทางด้วย Google Maps API เป็นต้น

  • วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 2

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 2

    ในตอนที่แล้ว เราได้เรียนรู้การใช้ API แบบ GET Request ไปแล้ว ซึ่งจะเห็นว่าแค่ใส่ URL ให้ถูกต้องพร้อมกับ Query String ที่ต้องการ แค่นั้นก็จบได้ แต่สำหรับการใช้ API แบบ POST จะมีความยุ่งยากกว่าพอสมควร เพราะเราต้องส่งข้อมูลในส่วนของ Body กลับไปให้ Server ด้วย และในบทความนี้ก็จะสอนว่าต้องทำอย่างไร

    เว็บที่ผมจะนำมาทดสอบกับตัวอย่างนี้คืออันนี้ https://jsonplaceholder.typicode.com/ ซึ่งเป็นเว็บที่เปิดให้ทดสอบการใช้ API ได้ฟรีๆ จะได้ไม่ต้องมีปัญหาเรื่อง Limit การใช้งานอีก (อย่างไรก็ตาม การใช้ POST API กับเว็บนี้ไม่ได้มีการสร้าง Content ใน Server จริงๆ เค้าแค่จะให้ Response หลอกๆ มาว่ามัน Post สำเร็จเฉยๆ)

    หลักการคือ เราจะส่ง API ไปที่ URL นี้ https://jsonplaceholder.typicode.com/posts
    โดยจะส่งแบบ POST และจะใส่ Content ไป 3 อย่าง เช่น

    • title: ThepExcel 1
    • body: ทดสอบ Post API
    • userid: 1

    โดยที่เราจะต้องระบุ Content-type ว่าเป็น application/json โดยมี charset เป็น UTF-8 นะครับ

    ทดสอบการ POST API แบบเดี่ยวๆ ก่อน

    ให้เราสั่ง Get Data From Web แล้วใส่ URL นี้เข้าไป https://jsonplaceholder.typicode.com/posts แล้วระบุพวก Content type ลงไป

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 2 106

    ถ้ากด Connect แล้วเข้าไปดูใน Advance Editor จะเห็นแบบนี้

    let
         Source = Json.Document(Web.Contents("https://jsonplaceholder.typicode.com/posts", 
         [Headers=[#"Content-Type"="application/json; charset=UTF-8"]]))
     in
         Source

    ทีนี้ปกติการสั่ง Get Data form Web จะเป็นแบบ GET โดย Default ซึ่งคราวนี้เราจะต้องระบุ Content เข้าไป มันจะได้รู้ว่าเป็นการ POST ไม่ใช่ GET ซึ่งจะต้องมีการแก้ M Code ใน Advanced Editor นี้นิดหน่อยครับ

    let
         Source = Json.Document(Web.Contents("https://jsonplaceholder.typicode.com/posts", 
         [Headers=[#"Content-Type"="application/json; charset=UTF-8"],
          
          Content=ใส่Contentลงไปตรงนี้
         
         ]))
     in
         Source

    แต่วิธีใส่ Content ให้ง่าย เราจะใส่เป็น Record ก่อนนะครับ ผมก็จะเอาไว้ในตัวแปรว่า MyRecord

    MyRecord=[title="ThepExcel 1",body="ทดสอบ Post API",userid=1]

    จากนั้นให้แปลง Record เป็น JSON ด้วยฟังก์ชัน Json.FromValue แล้วเอาค่าที่ได้ระบุไว้หลัง Content=

    let
         MyRecord=[title="ThepExcel 1",body="ทดสอบ Post API",userid=1],
         Source = Json.Document(Web.Contents("https://jsonplaceholder.typicode.com/posts", 
         [Headers=[#"Content-Type"="application/json; charset=UTF-8"],
         Content=Json.FromValue(MyRecord)
         ]))
     in
         Source

    พอกด ok ก็จะพบว่า จะได้ id ของ post (หลอกๆ) กลับมาจาก server แสดงว่ามันสามารถ Run ได้แล้วล่ะ

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 2 107

    สร้างฟังก์ชันที่จะ Post API

    ทีนี้เพื่อให้สามารถ Post ได้หลายๆ ครั้ง เราจะเปลี่ยน MyRecord ให้เป็น Input ของฟังก์ชันซะ โดยทำเป็นแบบนี้แทน (บทความนี้ผมเขียนฟังก์ชันเองโดยไม่กด Create Function… แบบตอนที่แล้วนะ แต่ก็ทำได้เช่นกัน)

    (MyRecord)=>
     let
         //MyRecord=[title="ThepExcel 1",body="ทดสอบ Post API",userid=1],
         Source = Json.Document(Web.Contents("https://jsonplaceholder.typicode.com/posts", 
         [Headers=[#"Content-Type"="application/json; charset=UTF-8"],
         Content=Json.FromValue(MyRecord)
         ]))
     in
         Source

    เราก็จะได้ Query ที่กลายเป็นฟังก์ชันที่รับ input เป็น Record แล้ว จากนั้นแก้ชื่อ Query เป็น PostAPIfx ซะ

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 2 108

    เตรียม POST ข้อมูลหลายๆ Record

    เตรียมข้อมูลที่จะส่งไป POST จาก Excel แล้วเอาเข้า Power Query ซะ (ผมตั้งชื่อตารางว่า MyContent)

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 2 109

    เนื่องจาก Function PostAPIfx ของเรานั้นรับค่าเป็น Record ดังนั้นเราจะเตรียมข้อมูลแต่ละบรรทัดให้เป็น Record ซะก่อน ซึ่งทำได้โดยการ Add Custom Column โดยใส่สูตรว่า =_ ดังนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 2 110

    ผลลัพธ์จะได้เป็น Record แบบนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 2 111

    คราวนี้เราก็ Invoke Custom Function ได้เลย

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 2 112

    พอกด ok ก็จะได้ผลลัพธ์ของ API กลับมา

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 2 113

    เราก็สามารถ Expand API Result ออกมาได้เลย จบแล้ว

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 2 114

    ตัวอย่างเพิ่มเติม

    วิธีใช้ Power Query ดึงข้อมูล EMS Tracking จากไปรษณีย์ไทย ผ่าน Web API

    ตอนต่อไป

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

  • วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1

    ปกติแล้วเวลาเราใช้ Power Query ดึงข้อมูลจาก Website เราก็มักจะต้องดึงข้อมูลที่มีลักษณะเป็นตารางแบบ Static คือเป็น Html นิ่งๆ โง่ๆ ถึงจะดึงได้ แต่ปัญหาก็คือเว็บไซต์สมัยใหม่ๆ มันจะไม่ค่อยเก็บข้อมูลในลักษณะตารางนิ่งๆ แต่จะเป็นเว็บในลักษณะที่เป็น AJAX และดึงข้อมูลกลับมาเป็นไฟล์รูปแบบที่เรียกว่า JSON ผ่าน API (หรือ Application Programming Interface) ซึ่งเป็นวิธีที่โปรแกรมแต่ะตัวใช้สื่อสารแลกเปลี่ยนข้อมูลกันซะมากกว่า

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

    **แต่ถ้าเว็บไหนไม่ได้บอกตรงๆ เราก็ต้องไปใช้ Inspector ของ Web Browser ดูเอาได้ว่ามีการส่งขอ API ที่ Address ไหน (ใน Chrome กด F12 แล้วดูใน Tab Network ในส่วนของ XHR ได้) ซึ่งเดี๋ยวจะทำให้ดูอีกทีในบทความถัดๆ ไปครับ

    Power Query นั้นอ่าน JSON จาก API ได้สบายๆ

    ปกติแล้วเวลาเชื่อมต่อ API ก็จะได้ผลลัพธ์กลับมาเป็นข้อมูลในลักษณะ JSON (JavaScript Object Notation ซึ่งจะเก็บข้อมูลเป็น Text ในลักษณะของ Key คู่กับ Value คล้ายกับ Dictionary ใน Python หรือ Record ของ Power Query) ซึ่งมันจะเก็บข้อมูลซ้อนกันได้หลายชั้นเลย

    ปกติเค้าก็จะใช้การเขียนโปรแกรมเช่น R, Python เพื่อดึงเอาข้อมูลที่ต้องการออกมาอีกที แต่ถ้าเราใช้ Power Query มันจะง่ายกว่ามากๆ เลย เพราะเราสามารถอ่านข้อมูล JSON แล้วแตกออกมาเป็นตารางได้แบบสบายๆ

    GET vs POST

    ปกติแล้วการที่เราเข้าไปใน Web แล้วจะเห็นข้อมูลในเว็บได้นั้น Web Browser ทางฝั่ง Client จะมีการส่ง HTTP Request ไปขอข้อมูลจากฝั่ง Server แล้วฝั่ง Server จึงค่อยส่งข้อมูลที่ขอกลับมาแสดงผลยังฝั่ง Client อีกที

    ซึ่งการส่งข้อมูลจากฝั่ง Client ไป Server นั้นที่พบบ่อยๆ และเกี่ยวข้องกับ Power Query จะมีอยู่ 2 แบบ คือ GET และ POST ซึ่งแตกต่างกันดังนี้

    GET Method

    GET เป็นวิธีการสื่อสารที่มีหน้าที่ดึงข้อมูลมาจากฝั่ง Server โดยสามารถกำหนดเงื่อนไขได้ภายใต้สิ่งที่เรียกว่า Query String ซึ่งจะระบุหลังเครื่องหมาย ? ใน URL ของ website

    ที่ทุกคนเจอการทำงานนี้ได้บ่อยสุดๆ คือ google search นี่แหละ เช่น https://www.google.com/search?q=thepexcel ก็แปรว่ามีการระบุ parameter q ที่มีค่าเป็นคำว่า thepexcel ไปให้ฝั่ง server ด้วย

    ซึ่ง query string สามารถระบุได้หลาย parameter โดยให้คั่นด้วยเครื่องหมาย & นะครับ

    หรืออย่างเว็บ https://twitter.com/search?q=%23BLINK&src=trend_click&vertical=trends แปลว่ามีการส่ง parameter ไป 3 ตัว คือ q มีค่าเป็น #BLINK (%23 คือ #) , src มีค่าเป็น trend_click และ vertical มีค่าเป็น trends นั่นเอง

    การที่ต้องส่ง Parameter กลับไปใน URL ของเว็บนั้นค่อนข้างมีข้อจำกัด คือ มันจะยาวมากก็ไม่ได้ แถมยังโผล่มาให้เห็นจะๆ ใน URL อีก ดังนั้นจึงมีวิธีการสื่อสารอีกแบบนั่นก็คือ Post นั่นเอง (แต่ก็ดีตรงที่เรา Bookmark URL ไว้ได้เลย)

    POST Method

    เป็นวิธีการสื่อสารที่มีการส่งข้อมูลกลับไปที่ Server โดยที่จะไม่ได้มีการบันทึก Parameter ใน URL แต่อย่างใด แต่ว่าจะบันทึกไว้ในส่วนของ Body Message เลย ซึ่งเหมาะกับข้อมูลที่มีจำนวนมาก และมักใช้ในการใช้ Create ข้อมูลในฝั่ง Server (มักใช้ในการ Submit Form )

    ซึ่งการใช้ Power Query กับ GET จะง่ายกว่า POST ครับ เดี๋ยวบทความตอนนี้เรามาดูวิธีใช้กับ GET กันก่อนนะครับ

    ลองดึง Data จาก API แบบง่าย

    เราจะลองดึงข้อมูล Covid-19 API ที่เปิดให้คนที่สนใจเข้าไปดึงได้ โดยไม่ต้องมี Key ประจำตัว ซึ่งจะง่ายมากๆ ครับ โดยที่ข้อมูลที่เราจะดึงมาคือข้อมูลสรุปตามช่วงเวลา ซึ่งมี URL ดังนี้ https://covid19.th-stat.com/api/open/timeline

    ถ้ากด URL เข้าไปตรงๆ ก็จะเจอข้อมูลแบบนี้ เรียกว่าเป็นข้อมูลในรูปแบบ JSON ซึ่งจะเห็นว่าหน้าตามันจะคล้ายๆ XML ที่ไม่ต้องมี Tag เปิดปิด แต่ใช้การเก็บข้อมูลในลักษณะของ {“key”: “value”} แทน ซึ่งใน value เราจะเก็บข้อมูลเป็น Array หรือ List ด้วยรูปแบบ [ a,b,c ] ก็ได้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 115

    แต่ถ้าใครมี Extension พวก JSON View ก็จะเห็นสวยงามขึ้นเป็นแบบนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 116

    ซึ่งถ้าเราลองใช้ Power Query Get Data from Web แล้วใส่ URL ที่เป็น API ลงไป ก็จะได้ผลลัพธ์แบบนี้ ซึ่งในนี้เราเห็นเป็น List ที่เก็บข้อมูลเอาไว้ 5 ส่วน แล้วในส่วนของ Data ก็เก็บ List ซ้อนไว้ข้างในอีก แล้วใน List นั้นก็มี Record เต็มเลย

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 117

    ก่อนอื่นใก้เรากด Convert into Table (ปุ่มซ้ายบน) ซะจะได้แบบนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 118

    แล้วเราก็ Transpose แล้ว Use First Row as Header ซะ เพื่อเตรียมตัวแตก List ในคอลัมน์ Data ออกมา

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 119

    จากนั้นกดปุ่ม Expand ที่หัวตารางของคอลัมน์ Data แล้วกด Expand to new Row เราก็จะได้ Record ออกมาในแต่ละบรรทัดแล้ว

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 120

    จากนั้นก็ Expand อีกรอบเพื่อกระจายหัวตารางที่ต้องการออกมา

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 121

    อย่าลืมเปลี่ยน Data Type ให้เรียบร้อย โดยเฉพาะวันที่ อาจต้องใช้ Change Type using Locale… แบบ English US (เพราะเป็นเดือน/วัน/ปี)

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 122

    พอเปลี่ยน Data Type เรียบร้อยมันก็จะกลายเป็นวันที่ ที่แสดงใน Format ตาม Control Panel เครื่องเรา

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 123

    จากนั้นก็กด Close & Load ออกมาเป็นตาราง หรือจะทำกราฟอะไรก็ทำไปได้เลย จบแล้ว

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 124
    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 125

    ลองดึง Data จาก API ด้วย GET Method แบบทำเป็น Function

    ผมจะลองใช้ API ของที่ https://weatherstack.com/ เพื่อดูสภาพอากาศของที่ต่างๆ บนโลกดูนะครับ ก่อนอื่นก็ให้ไปสมัคร account ในเว็บนั้นเพื่อเอา API Key มาก่อน (กรอกข้อมูลนิดหน่อย ก็ใช้ Account ฟรีได้แล้ว)

    สร้าง Query ที่ดึงข้อมูล 1 ชุดให้ได้ก่อน

    โดยที่เราจะเอา Current Weather มาดูรายละเอียดของแต่ละจังหวัด/ประเทศออกมาดู โดยที่รูปแบบการใช้ API เป็นดังนี้ (ดูได้ใน Documentation)

    http://api.weatherstack.com/current? access_key = API_KEYของคุณ & query = ชื่อสถานที่

    เช่น ถ้าผมอยากได้สภาพอากาศของกรุงเทพ ก็จะเขียนแบบนี้

    http://api.weatherstack.com/current? access_key = API_KEYของคุณ & query = Bangkok

    ถ้าดูใน Google Chrome จะเห็นแบบนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 126

    ซึ่งเอาไประบุได้ในส่วนของ URL ในเมนู Get Data from Web ของ Power Query เลยครับ ก็จะเห็นแบบนี้ ซึ่งจะเห็น Record ซ้อน Record อยู่ ซึ่งในชั้นแรกจะมี 3 Record คือ request, location, current และในแต่ละอันก็จะมี record ซ้อนอยู่ข้างในอีก เช่น ใน request ก็จะมี type, query, language และ unit

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 127

    ผมแนะนำให้กด convert into Table ก่อน (ซ้ายบน) เพื่อแปลง record นี้ให้กลายเป็น Table ซึ่งจะได้ดังนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 128

    ถ้าเรากด Expand Column Value ออกมาตรงๆ เราจะเจอปัญหาว่า มีผลลัพธ์ออกมา 3 บรรทัด และมีคอลัมน์หลายๆ อันเป็น Blank ดังนี้ (ซึ่งเป็นผลลัพธ์ที่ไม่ ok เราจะไม่ทำแบบนี้ ถ้าใครกด expand ไปแล้วก็ให้ลบ step นี้ทิ้งซะ)

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 129

    สิ่งที่เราจะทำคือ หลัง Convert เป็น Table แล้ว เราจะ Transpose ข้อมูล แล้ว Use First Row as Header ซะ (ลบ step change type ไปเลยก็ได้ เพราะยังไม่ใช้)

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 130

    พอเป็นแบบนี้เราก็พร้อมที่จะ Expand คอลัมน์ทั้ง 3 ชุด ออกมาแล้ว (Expand ทีละชุด) จากนั้นแก้ชื่อ Query ให้เรียบร้อย

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 131

    ทำไมต้องทำ Query ให้เป็น Function

    ทีนี้จะเห็นว่า Query เราสามารถดึงข้อมูลจาก Web API ได้แล้ว แต่มันดึงแค่ Bangkok ตามที่เราระบุไป ซึ่งมันจะลำบากถ้าเราต้องมานั่งแก้ Source ของ Query ให้กลายเป็นเมืองอื่นนอกจาก Bangkok อีกไปเรื่อยๆ และถ้าเรามีเป็นสิบเป็นร้อยเมืองที่ต้องการข้อมูลภูมิอากาศล่ะ?

    ดังนั้นมันจะดีกว่ามาก ถ้าเราสามารถทำให้ชื่อเมืองเป็น Parameter แล้วสร้าง Function ขึ้นมารับค่า Parameter นั้นแล้วค่อยทำงานดึงข้อมูลจาก API ตาม Parameter ที่ใส่ลงไป ซึ่งฟังดูเหมือนยาก แต่วิธีทำใน Power Query นั้นง่ายมาก

    ขั้นแรกให้สร้าง New Parameter ขึ้นมา อาจใช้ชื่อเป็น SearchTerm ก็ได้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 132

    จากนั้นเอา Parameter นี้ไปใส่แทน Bangkok ใน step Source ดังนี้ ซึ่งผลลัพธ์จะยังคงเหมือนเดิม เพราะ Current Value ของ Parameter ยังเป็นคำว่า Bangkok อยู่

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 133

    แปลง Query ให้เป็นฟังก์ชัน

    ให้คลิ๊กขวาที่ Query GetCurrentWeather แล้วกด Create Function… แล้วตั้งชื่อตามต้องการ เช่น GetCurrentWeatherFX

    ซึ่งมันจะสร้างฟังก์ชันให้เราโดยกำหนดให้ Parameter ของ Function คือ SearchTerm นั่นเอง

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 134

    ทีนี้เราก็จะมีฟังก์ชันที่พร้อมใช้งานแล้วครับ

    ลองดึงสภาพภูมิอากาศของทั้ง 76 จังหวัดในประเทศไทย

    คราวนี้เรามาลอง List ชื่อจังหวัดทั้ง 76 จังหวัด ซึ่งอาจเอาจากเว็บไหนก็ได้ที่สะกดเป็นภาษาอังกฤษ หรือจะเอาจาก Database ที่ผมเคยทำไว้ให้ก็ได้ โดยผมตั้งชื่อ Query ที่เก็บรายชื่อจังหวัดไว้ว่า ProvinceList ดังนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 135

    ให้เรากด Add Column -> Invoke Custom Function เพื่อเรียกใช้ GetCurrentWeatherFX โดยใช้ Parameter จากชื่อจังหวัด ดังนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 136

    ในแต่ละบรรทัดเราจะได้ผลลัพธ์เป็น Table ที่มีค่าต่างๆ ที่เราต้องการ

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 137

    จากนั้นเราสามารถกด Expand Column ออกมาได้เลย

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 138

    ปรากฏว่าผลลัพธ์ดันปนประเทศอื่นมาด้วย เพราะ Search Term อาจจะซ้ำหลายที่

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 139

    ทางแก้ก็อาจจะระบุประเทศลงไปให้ชัดเจนเลยก็ได้ โดยให้เอา City Name, Country Name เช่น Nan, Thailand แบบนี้ (ใน Document ของ API มีเขียนบอกไว้)

    เราจะแก้ตอนที่ Invoke Function หรือจะไปแก้ใน Query GetCurrentWeather ก็ได้ ซึ่งอันนี้ผมจะแก้ตอน Invoke Function เป็นดังนี้

    จาก

    = Table.AddColumn(#"Changed Type", "GetCurrentWeatherFX", 
    each GetCurrentWeatherFX([ProvinceEng]))

    เป็น

    = Table.AddColumn(#"Changed Type", "GetCurrentWeatherFX", 
    each GetCurrentWeatherFX([ProvinceEng]&", Thailand"))

    พอแก้ใส่ Thailand เพิ่มไปผลลัพธ์ก็จะแทบไม่ผิดแล้ว (ถูกต้องประมาณ 90%++ แต่ก็มีผิดอยู่ดี 555)

    ถ้าจะให้ดีต้องระบุเป็น lat, long ไปเลยครับ เช่น SearchTerm = 40.7831,-73.9712 แบบนี้ก็จะเป๊ะที่สุดละ ไม่มีทางผิดแน่นอน

    แต่ว่า API แบบฟรีนี้จะดึงได้แค่เดือนละไม่กี่ทีนะครับ ถ้ามันถึง Limit แล้วจะดึงไม่ได้ ก็จะขึ้น Error ประมาณนี้

    วิธีใช้ Power Query ดึงข้อมูลจาก Web API : ตอนที่ 1 140

    หวังว่าเพื่อนๆ คงพอจะเห็นภาพการใช้ Power Query ทำงานกับ API แบบ Get Method แล้วนะครับ ไว้เดี๋ยวตอนถัดไปมาดูวิธีเชื่อมต่อแบบ Post Method กัน ซึ่งจะซับซ้อนกว่านี้นิดหน่อยครับ

  • ดึงข้อมูลหน้างบการเงินย้อนหลังและวิเคราะห์หุ้นเบื้องต้น

    ดึงข้อมูลหน้างบการเงินย้อนหลังและวิเคราะห์หุ้นเบื้องต้น

    ในคลิปนี้ผมจะสอนวิธีดึงข้อมูลและวิเคราะห์หุ้นใน SET50 จาก settrade (หน้างบการเงินย้อนหลัง 5 ปี) ไปยัง PowerBI ผ่านเครื่องมือ Power Query เพื่อที่จะสามารถให้เราสามารถนำไปใช้ทำ Data Model และเขียนสูตร DAX รวมถึงสร้าง Visualization ในการคัดเลือกหุ้นที่พื้นฐานดีมาวิเคราะห์ได้ต่อไปครับ

    ดึงข้อมูลหุ้น

    ซึ่งในการดึงข้อมูลหุ้นนี้คุณจะได้เรียนรู้วิธีการแปลง Query ให้เป็น Function เพื่อจะเรียกข้อมูลจาก Website ของหุ้นแต่ละตัวได้โดยไม่ต้องมานั่ง Get Data จาก Web เอง 50 ที ในคลิปนี้จะเจอปัญหาต่างๆ มากมาย และจะได้รู้ด้วยว่าเราจะมีแนวทางแก้ปัญหาอย่างไรครับ

    วิเคราะห์หุ้น

    ต่อจากนั้น ผมจะสอนการใช้ Power BI วิเคราะห์ข้อมูลงบการเงินย้อนหลัง 5 ปี ซึ่งเพื่อนๆ จะได้เห็นแนวทางว่ามีปัญหาอะไรที่ต้องระวัง ต้องจัดการบ้าง รวมถึงได้เห็นวิธีการปรับการแสดงผลข้อมูลใน Matrix ให้ดูง่ายขึ้น รวมถึงการทำ Conditional Format ด้วย นอกจากนี้จะได้เจอวิธี Annualize รายได้ให้เต็มปี เพื่อให้เปรียบเทียบกันได้ และที่เด็กสุดคือ การทำ Clustering แบบอัตโนมัติในคลิ๊กเดียว อยากรู้ทำไงดูให้จบนะ