บทความทั้งหมด
-
วิธี SUM เฉพาะค่าที่เห็นจาก Filter แต่มีเงื่อนไข!
วันนี้เราจะมาดูวิธี SUM เฉพาะที่มองเห็นแบบมีเงื่อนไขกันครับ (Sum Filter with Criteria) ซึ่งเป็นเรื่องที่แปลกดี แต่ก็มีคนถามผมมา เลยเอามาตอบให้ทุกคนพร้อมกันเลย หลายคนคงพอจะรู้อยู่บ้างว่า ถ้าเราใช้ฟังก์ชัน SUM ปกติ มันก็จะบวกข้อมูลตัวเลขแค่พื้นที่ในสูตรตรงนั้น โดยไม่สนใจว่าเรา Filter อะไรอยู่หรือไม่ สมมติข้อมูลก่อน Filter เป็นแบบนี้ ซึ่งรวมจำนวนชิ้นสินค้าทั้งหมดได้ 31 ชิ้น ถ้าเรา Filter ว่าเอาเฉพาะการชำระเงินเป็นเงินสด …จะพบว่า เจ้า SUM ก็จะได้เท่าเดิมอยู่ดี… ถ้าจะ SUM เฉพาะสิ่งที่ Filter เห็นอยู่ แต่ถ้าเราอยากจะ SUM แค่สิ่งที่ Filter อยู่เท่านั้น ต้องใช้ SUBTOTAL หรือไม่ก็ AGGREGATE มาช่วย เช่น =SUBTOTAL(9,C5:C14) เลข 9…
-
Power BI ตอนที่ 17 : วิธีทำรายงานเทียบเป้าหมาย Target vs Actual
เนื้อหาตอนนี้คิดว่าเป็นเรื่องที่หลายๆ คนอยากรู้ นั่นก็คือวิธีทำรายงานเทียบเป้าหมาย Target vs Actual โดยที่สามารถจะแสดงข้อมูลใน Visual เดียวกันได้ เทียบได้ว่าค่าจริงต่างจากเป้าหมายเท่าไหร่เป็นต้น ไฟล์ประกอบ โหลดอันนี้ได้เลย มีไฟล์ Target ให้ด้วยครับ หน้าตาของไฟล์ Target ของเราเป็นแบบนี้ ถ้าแปลงข้อมูลอันนี้ให้เป็นข้อมูลเชิง Database เราจะสามารถนำไปสร้าง Relationship กับตารางอื่นๆ ใน Data Model ได้ จะทำ Target vs Actual อะไรได้บ้าง? ไฟล์ Target ของเรามีการแบ่งมิติตาม Year Month และ ProductSubCategory ซึ่งเราจะสามารถทำ Target ตามมิติเหล่านี้ได้อย่างแน่นอน รวมถึงมิติที่ใหญ่กว่าซึ่งเกิดจากผลรวมของตัวเหล่านี้ด้วย เช่น ProductCategory ก็จะสามารถทำได้ไปด้วย อย่างไรก็ตาม ถ้าหากอยากดูในมิติที่ย่อยลงกว่าเดิม มันขึ้นกับว่ามีวิธี Allocate…
-
Power BI ตอนที่ 16 : เดินทางข้ามเวลาไปกับ Time Intelligence DAX Function
ในเนื้อหาตอนที่ 9 ของ Series นี้ ผมได้บอกไปว่าเราสร้าง Date Table ขึ้นมาเพื่อที่จะได้ใช้ฟังก์ชันกลุ่ม Time Intelligence ได้ และในบทความนี้ก็ได้เวลาที่จะไปพูดถึงฟังก์ชันกลุ่ม Time Intelligence ซะทีครับ Time Intelligence คืออะไร? มันคือฟังก์ชันกลุ่มที่จะช่วยให้เราคำนวณอะไรฉลาดๆ เกี่ยวกับวันที่และเวลาได้ เช่น คำนวณยอดขายสะสมตั้งแต่ต้นปี คำนวณยอดขายเทียบกับปีก่อน เป็นต้น เรามาดูตัวอย่างการใช้ฟังก์ชันกลุ่ม Time Intelligence กันดีกว่าว่ามันทำอะไรได้บ้าง และใช้งานยังไง? ไฟล์ประกอบ ใช้ไฟล์เดิมจากตอนก่อนหน้าได้เลยนะครับ หรือจะใช้อันนี้ก็ได้ การคำนวณยอดขายสะสมตั้งแต่ต้นปี (Year-To-Date : YTD) ก่อนอื่นให้เราสร้าง Visual แบบ Table ใส่ ปี เดือน และ Total Revenue ลงไป (ที่เลือก ปี กับ…
-
Power BI ตอนที่ 15: วิธีดึงค่าจาก Slicer มาคำนวณใน Report
เราก็ได้เรียนรู้ความรู้พื้นฐานหลายๆ เรื่องไปแล้ว คราวนี้ขอพักเปลี่ยนหัวข้อมาดูเรื่องที่จะช่วยให้รายงานเรามีลูกเล่นเจ๋งๆ เพิ่มขึ้นด้วยการดึงค่าจาก Slicer มาคำนวณใน Report กันบ้างครับ (พอดีมีคน inbox มาถามด้วยล่ะ 55) ไฟล์ประกอบ ใช้ไฟล์เดิมจากตอนก่อนหน้าได้เลยนะครับ หรือจะใช้อันนี้ก็ได้ ก่อนอื่น ลองสร้าง Table หรือ Matrix ขึ้นมาก่อน ลากสรุปผลยอดขายของแต่ละ ProductCategory ประมาณนี้ ตัวอย่างการดึงค่าจาก Slicer มาใช้คำนวณใน Visual การปรับตัวเลข TotalRevenue เป็นหน่วยต่างๆ เช่น เลขปกติ หารพัน หารล้าน การปรับสกุลเงิน เช่น BHT USD JPY ปรับตัวเลขที่เป็นตัวหาร เคสนี้เป็นตัวอย่างที่ Simple ที่สุด เพราะว่าเราจะสร้าง Slicer ที่มีเลข 1 , 1000, 1000000…
-
แผนที่การเรียนรู้ Excel และ Power BI (Skill Map)
เนื่องจาก Excel เป็นโปรแกรมที่ทำได้ครอบจักรวาล มันจึงมีเครื่องมือและฟังก์ชันที่เยอะมาก แถมช่วงหลังๆ ยังมีเครื่องมือใหม่ๆ อย่าง Power Query และ Power BI เพิ่มมาอีก ยิ่งงงเข้าไปใหญ่เลยว่าจะเรียนรู้อะไรก่อนหลังดี ถ้าเอาแบบภาพรวมก็ดูรูปนี้ได้ ซึ่งเอาจริงๆ ในส่วนของ Excel เองก็แยกเป็น 2 สายหลักๆ คือ สายเครื่องมือ กับสายเขียนสูตร ดังนี้ แต่ถ้าจะเอาแบบละเอียด ผมได้ทำการสรุปแผนที่การเรียนรู้เป็นรูปแบบคล้ายๆ กับแผนที่เส้นทางรถไฟ เพื่อที่ว่าแต่ละคนที่กำลังสนใจเรื่องไหน จะได้พอมีแนวทางในการศึกษาได้ครับ แผนที่การเรียนรู้ Excel & Power BI Skill Map 2.0 โหลด PDF ได้ที่นี่ , โหลด Excel ได้ที่นี่ (แผนที่นี้ทำด้วยกราฟ Scatter Plot ตามคำแนะนำของ Excel…
-
แนะนำคอร์สออนไลน์สำหรับผู้ที่อยาก Level Up ทักษะ Excel
เนื่องจากช่วงนี้ COVID-19 ยังคงระบาดอยู่ คอร์สเรียน Excel แบบ Online จึงเป็นวิธีที่น่าสนใจมากขึ้น แต่ผมเองก็มีคอร์สออนไลน์อยู่ในเว็บ SkillLane ด้วยหลายตัว (และจะเพิ่มขึ้นเรื่อยๆ) จึงอยากจะมาแนะนำว่าแต่ละอันสอนอะไร? และเหมาะกับใคร? อย่างไรก็ตาม คอร์สของผมใน SkillLane ทุกคอร์สจะเป็นคลิปวีดีโอที่สามารถดูซ้ำกี่รอบก็ได้ ไม่มีวันหมดอายุอยู่แล้วนะครับ
-
9 ความลำเอียงหรืออคติที่ต้องระวังเวลาทำงานเกี่ยวกับข้อมูล (Data Bias Warning)
ในยุคแห่งข้อมูลข่าวสารนี้ บ่อยครั้งที่เราจะต้องใช้ข้อมูลในการตัดสินใจ และถ้าเรื่องนั้นเป็นเรื่องที่สำคัญ การตัดสินใจผิดย่อมสร้างผลกระทบอย่างมหาศาล ในบทความนี้เราจะมาพูดถึงเรื่องของความลำเอียง (Bias) ด้านการทำงานเกี่ยวกับข้อมูล เพื่อช่วยให้เพื่อนๆ ไม่ตกหลุมพรางจนตัดสินใจผิดผลาดไป ตัวอย่างที่ผมชอบมากคือ กรณีของการวิเคราะห์ข้อมูลของนักวิจัยในสมัยสงครามโลก เพื่อที่จะหาว่าจะเพิ่มเกราะป้องกันให้เครื่องบินตรงไหนดี เพื่อให้นักบินมีโอกาสรอดตายมากขึ้น (เพิ่มทั้งลำไม่ไหว เดี๋ยวบินไม่ขึ้นพอดี) ซึ่งเค้าได้เก็บข้อมูลจากเครื่องบินที่กลับมาที่ฐานทัพทั้งหมดว่าถูกยิงที่จุดไหนบ้าง? ซึ่งก็ได้ดังรูป (จุดแดงคือจุดที่ถูกยิง) เพื่อนๆ คิดว่าเค้าควรจะติดตั้งเกราะป้องกันเพิ่มตรงบริเวณไหนดีครับ? ถ้าคิดเร็วๆ ก็ต้องเพิ่มเกราะตรงจุดที่มีสีแดงเยอะๆ สิ เพราะว่าถูกยิงเยอะบริเวณนั้น…. ใช่มะ? แต่การคิดแบบนี้ผิดโดยสิ้นเชิง เพราะจริงๆ แล้วเครื่องบินน่ะมีโอกาสถูกยิงทั้งลำนั่นแหละ แต่ลำที่โดนยิงตรงจุดที่ไม่ใช่สีแดงเนี่ยไม่มีโอกาสรอดกลับมาให้เก็บข้อมูลเหมือนกับกลุ่มนี้ ดังนั้นแปลว่าสิ่งที่เห็นคือเป็นข้อมูลที่ได้จากผู้รอดชีวิต (Survivor) เท่านั้น ไม่ใช่ข้อมูลที่ครบถ้วนจริงๆ มันถึงมีชื่อเรียก Bias หรือความลำเอียงแบบนี้ว่า “Survivorship Bias” นั่นเอง แปลว่าถ้าคิดให้ลึกซึ้งขึ้นไปอีก เราควรเพิ่มเกราะตรงจุดที่ไม่ใช่สีแดงด้วยซ้ำ เพราะเป็นจุดที่โดนยิงแล้วตายเลย ไม่มีโอกาสรอดกลับมา ซึ่งเป็นคนละเรื่องละราวกับการตัดสินใจครั้งแรกเลย ดูสิว่า Bias อันตรายขนาดไหน!! ดังนั้นเรามาดูกันดีกว่าว่ามี Bias เกี่ยวกับอะไรบ้าง…
-
Power BI ตอนที่ 14: Context Transition และ พลังแฝงใน Measure
จากในตอนที่แล้วเราได้ทำความรู้จัก CALCULATE กันไปแล้วว่ามันเป็นฟังก์ชันที่เอาไว้เปลี่ยน Filter Context ได้ตามต้องการ ในตอนนี้เราจะมาทำความรู้จักพลังที่แท้จริงของมัน ซึ่งก็คือ CALCULATE สามารถเปลี่ยน Row Context ให้เป็น Filter Context ได้ เรียกว่า Context Transition Measure ทุกตัวมี CALCULATE แฝงอยู่ข้างในเสมอ ไฟล์ประกอบ ใช้ไฟล์เดิมจากตอนก่อนหน้าได้เลยนะครับ หรือจะใช้อันนี้ก็ได้ ซึ่งเรามี Data Model แบบนี้ มาดูเรื่องแรกกันก่อนครับ CALCULATE กับ Context Transition หากเรานำ CALCULATE ไปใช้ในบริบทที่มี Row Context มันจะเปลี่ยน Row Context นั้นให้กลายเป็น Filter Context … ฟังแล้วไม่เข้าใจเลยซักนิดใช่มั้ยครับ? งั้นมาดูตัวอย่างดีกว่าครับ สมมติว่าผมไปที่ Data…
-
วิธีสร้างเลข Combination กัน
มีคนถามมาว่า ถ้ามีเลข 0, 2, 3, 6, 9 สามารถผสมเป็นเลข 2 Digit ได้แบบไหนบ้าง? ผมว่าน่าสนใจดีเลยเอามาทำบทความให้ครับ วิธีทำที่ผมคิดว่าง่าย ก็คือใช้ Power Query ช่วยทำ ซึ่งมีวิธีทำดังนี้ เริ่มต้นสร้างเลข Combination ก่อนอื่นสร้าง Table ที่มี List ตัวเลขที่ต้องการก่อน แล้วก็เอาเข้า Power Query ซะ แล้วเปลี่ยน Data Type เป็น Text เพื่อความยืดหยุ่น (กดแบบ Replace Current) จากนั้น Add Custom Column ขึ้นมาแล้วใส่สูตรว่า =1 เพื่อให้ออกมาเป็นเลข 1 ทั้งหมด จากนั้นทำการ Merge Query…
-
4 ขั้นตอนในการสร้าง Function Query แบบที่มี UI ให้แก้เล่นได้ใน Power Query
ในบทความนี้ผมจะมาแนะนำวิธีสร้าง Function Query ขึ้นใน Power Query ซึ่งไม่ใช่แบบปกติ แต่จะเป็นแบบที่ยังยอมให้เราแก้ไข Step ต่างๆ ใน Function นั้นได้โดยง่าย แต่ถ้าใครยังไม่รู้ว่าผมพูดถึงเรื่องอะไร ลองอ่าน recap นี้ดูก่อนเล็กน้อย… Recap Power Query เป็นเครื่องมือสำหรับการดัดแปลงข้อมูลที่ทรงพลังและใช้ง่ายมากๆ อยากจะทำอะไรก็มีเมนูสำเร็จรูปเอาไว้ให้กดได้เลยโดยแทบไม่ต้องเขียนสูตร แต่ว่าหลายครั้งก็น่าเบื่อเวลาที่เราต้องทำ Step อะไรซ้ำๆ เหมือนเดิมกับหลายๆ Query จะดีกว่ามั้ยถ้าเราทำ Step พวกนั้นเป็นฟังก์ชันแล้วเรียกใช้ได้อย่างง่ายๆ เลย? ในหนังสือ Excel Power Up! ที่ผมเขียนไว้ ในบทหลังๆ ก็มีเขียนวิธีที่ทำให้ Query กลายเป็นฟังก์ชันได้ง่ายๆ โดยเปิด Advanced Editor แล้วใส่คำว่า (input1, input2)=> นำหน้า code เดิม ซึ่งมันจะเปลี่ยน…
-
Power BI ตอนที่ 13: CALCULATE ฟังก์ชันที่ทรงพลังที่สุดใน DAX
ในบทความนี้ผมจะมาพูดถึงฟังก์ชัน CALCULATE ฟังก์ชันที่ทรงพลังที่สุดใน DAX ที่ถูกออกแบบมาให้ทำหน้าที่ “เปลี่ยน Filter Context” โดยเฉพาะ CALCULATE เป็นฟังก์ชันที่หน้าตาดูเรียบง่าย เหมือนไม่มีอะไร แต่ทรงพลังมากๆ ผมว่ามันเทียบได้กับตัวการ์ตูนเอกในเรื่อง One Punch Man ที่ชื่อไซตามะเลยครับ หน้าตาดูไม่เก่งอะไรเลย แต่ต่อยทีเดียวศัตรูตายหมด ดังนั้นอย่าดูถูก CALCULATE เด็ดขาด!! ผมกล้าพูดได้เลยว่าใครที่ใช้ Power BI แต่ไม่รู้จัก CALCULATE ก็เหมือนกับยังใช้ Power BI ไม่เป็นอ่ะครับ ดังนั้นมันสำคัญจริงๆ บอกเลยว่าตั้งแต่บทนี้ไปเนื้อหาจะเริ่มลึกซึ้งมากขึ้นๆ ดังนั้นความรู้เดิมควรจะแน่นก่อน และควรมีสมาธิในการอ่านดีๆ นะครับ อ่านผ่านๆ ไม่คิดตาม ไม่เข้าใจแน่นอน ไฟล์ประกอบ ใช้ไฟล์เดิมจากตอนก่อนหน้าได้เลยนะครับ หรือจะใช้อันนี้ก็ได้ เอาล่ะเราไปเริ่มกันเลย! Recap เล็กน้อย ความหมายของการเปลี่ยน Filter Context ก็จะคล้ายๆ กับในบทความตอนก่อนหน้านี้ที่…
-
Power BI ตอนที่ 12: DISTINCT, VALUES, ALL และผองเพื่อน
เรื่องของ Table Function ใน DAX นอกจาก FILTER ที่แนะนำไปในบทความที่แล้ว ยังมีที่เราควรจะรู้จักอีก 3 ตัว ก็คือ DISTINCT, VALUES, ALL (และเพื่อนๆ ของมัน) เนื่องจากทั้ง 3 ตัวนี้ทำงานคล้ายกันๆ แต่ไม่เหมือนกัน… ดูเผินๆ แล้วจะสับสนได้ ผมจึงขอทำตารางเปรียบเทียบดังนี้ ฟังก์ชัน รองรับ Table/Col ที่เป็นสูตร (Expression) กรณีใช้กับ Table กรณีใช้กับคอลัมน์เดียว กรณีใช้กับหลายคอลัมน์ DISTINCT ได้ •ได้ Table แบบค่าที่ไม่ซ้ำกัน •ได้ค่าไม่ซ้ำกันในคอลัมน์นั้น ทำไม่ได้ VALUES ไม่ได้ •ค่า Duplicates ยังอยู่ •ได้ Blank Row พิเศษ •ได้ค่าไม่ซ้ำกันในคอลัมน์นั้น…
-
Power BI ตอนที่ 11: เรียนรู้ DAX Table Function – FILTER
ในซีรีส์ Power BI บทก่อนหน้านี้เราได้เรียนรู้จักสูตร DAX พื้นฐานกันไปแล้ว คราวนี้เรามารู้จักฟังก์ชันกลุ่ม Table Function เพิ่มเติม นั่นก็คือ FILTER, DISTINCT, VALUES, ALL ซึ่งจะช่วยให้เราสามารถเขียนสูตร DAX ที่ซับซ้อนได้มากขึ้นในอนาคตนั่นเอง แต่เพื่อไม่ให้มันเยอะเกินไป เดี๋ยวบทความนี้ผมจะพูดถึง FILTER แค่ตัวเดียวก่อน ส่วน ALL, DISTINCT, VALUES และผองเพื่อน จะพูดในตอนถัดไปนะครับ ไฟล์ประกอบ ใช้ไฟล์เดิมที่ทำมาจากตอนก่อนหน้าได้เลยนะครับ หรือจะใช้อันนี้ก็ได้ Table Function คืออะไร? คำว่า Table Function ก็คือ ฟังก์ชันที่ให้ผลลัพธ์กลับมาเป็น Table หรือตารางนั่นเอง ต้องบอกว่าฟังก์ชันปกติที่เราคุ้นเคยกันก่อนหน้านี้ทุกอัน จะให้คำตอบออกมาเป็นค่าเดียว (เรียกว่า Scalar Value) ไม่ว่าจะเป็นประเภทตัวเลข ตัวหนังสือ logic ก็ตาม…
-
เปลี่ยนสูตรยากให้เป็นสูตรกล้วยๆ ด้วย Dynamic Array ใน Excel 365
ผมเชื่อว่าหลายคนที่ใช้ Excel นั้นย่อมเคยต้องการให้ Excel ทำงานจัดการข้อมูลในลักษณะนี้ เช่น คัดกรองข้อมูลให้เหลือสิ่งที่ต้องการเท่านั้น (Filter) จัดเรียงข้องมูลใหม่ตามต้องการ (Sort) ตัดข้อมูลซ้ำออกให้เหลือเฉพาะที่ไม่ซ้ำ (Remove Duplicates) ตั้งแต่อดีตที่ผ่านมา จริงๆ Excel ก็มีเครื่องมือที่พร้อมที่จะทำงานเรื่องเหล่านี้อยู่แล้ว ใน Ribbon เครื่องมือ Data เช่น Filter, Sort, Remove Duplicates และผมก็เชื่อว่ามันเป็นเครื่องมือที่หลายๆ คนน่าจะพอใช้กันเป็นอยู่แล้วล่ะ อย่างไรก็ตามเครื่องมือเหล่านั้นแม้จะใช้ง่าย แต่ก็มีจุดอ่อนสำคัญคือ มันเป็นเครื่องมือที่ต้องให้เรากดปุ่มสั่งใหม่ทุกครั้ง เช่น จะ Filter แบบไหน Sort ยังไง รวมถึง Remove Duplicates ข้อมูลชุดไหน แปลว่ามันยังต้องมี Step ที่ต้องการมนุษย์มา “ทำงาน Manual” บางอย่างอยู่ ใน Excel ยุคใหม่ขึ้นมาหน่อย…
-
เลิกใช้ Merge Cell กันเถอะ (แล้วจะให้ทำยังไงแทน?)
“มาเลิกใช้ Merge Cell กันเถอะ!” นี่คือความในใจที่อยากจะตะโกนบอกคนใช้ Excel ทุกคนเลย 555 แต่ผมไม่ได้มาห้ามเฉยๆ นะ เพราะในบทความผมมีวิธีหลีกเลี่ยงที่พอจะช่วยลดปัญหาของ Merge Cell มาบอกด้วยล่ะ หากผมจะบอกว่า “การ Merge Cell คือต้นกำเนิดของความเลวร้ายทั้งปวงใน Excel” มันอาจจะดูแรงเกินไปนิด แต่มันก็ใกล้เคียงล่ะ มาดูกันว่าทำไม… ปัญหาของการ Merge Cell หากเรามีการใช้ Merge Cell ที่ตัวข้อมูลดิบที่เป็น Input จะพบว่ามันก่อให้เกิดปัญหามากมาย Merge แบบหัวตาราง 2 ชั้น (กรอบชมพูในรูปบน) ทำให้เลือก Sort/Filter หัวตารางลำบาก ต้องเลือกทั้งแถวที่สองแล้วกด Filter เอาถึงจะเลือกหัวตารางชั้นล่างได้ ซึ่งยุ่งยากมาก เอาข้อมูลเข้าไปวิเคราะห์ใน Pivot Table ก็ไม่ได้อีก (เพราะถือว่ามีชื่อ Field…
-
ฐานข้อมูลตำบล อำเภอ จังหวัด รหัสไปรษณีย์ ของประเทศไทย V3: ข้อมูลสมบูรณ์มากขึ้น
สืบเนื่องจากที่ผมได้พยายามทำ “ฐานข้อมูลส่วนกลาง” หรือที่ผมจะเรียกว่า “Common Database” ที่หลายๆ คนก็น่าจะอยากใช้เหมือนกัน เช่น ฐานข้อมูลตำบล อำเภอ จังหวัด ภาค ทั้งภาษาไทยและภาษาอังกฤษ เพื่อที่เพื่อนๆ จะได้ไม่ต้องมาเสียเวลาทำเหมือนผมอีก ตอนนี้ผมทำเสร็จแล้วในระดับนึง คือ ได้ ภาค จังหวัด อำเภอ ตำบล แบบที่เรียกได้ว่าครบถ้วนที่สุดอันนึงในโลก internet แล้วล่ะ 555 (ถ้าไม่นับ Wikipedia นะ ) ก็เลยจะเอามาแจกเพื่อนๆ ให้ลองเอาไปใช้ดูก่อน ( ตอนนี้เพิ่งเพิ่มรหัสไปรษณีย์ไปให้แล้วนะ เมื่อ 17 Mar 2020) ที่บอกว่าครบถ้วน เพราะผมมีการ crosscheck หลาย source มากๆ ถ้าอันไหนไม่ตรงกันจะเปิด wiki ดูทีละเขต ทีละอำเภอเลย (รายละเอียดของ source…
-
สูตรสำเร็จรูปสำหรับสร้าง Date Table ด้วย DAX และ Power Query M Code
จากที่ผมได้เคยอธิบายไปว่า Date Table มีความสำคัญต่อการทำ Data Model เป็นอย่างยิ่ง โดยเฉพาะการใช้ฟังก์ชัน Date Intelligence ยิ่งจำเป็นต้องใช้ Date Table เลยล่ะ แปลว่า Data Model ของทุกคนควรมี Date Table ซึ่งกลายเป็นเรื่องที่ทุกๆ คนต้องทำเหมือนๆ กันหมด ดังนั้นจะดีกว่ามั้ย ถ้าเราสามารถมีสูตรสำเร็จรูปอะไรซักอย่าง ที่สามารถ Copy Paste ไปใช้สร้าง Date Table ได้เลย? และนั่นคือที่มาของบทความนี้ครับ ทีนี้การสร้าง Date Table นั้นทำได้ 2 วิธี คือใช้ DAX กับใช้ M Code ของ Power Query เรามาดูแต่ละวิธีกันครับ สร้าง Date…
-
การใช้ Power Query จัดการข้อมูลที่มีหัวตาราง 2 ชั้น
ปัญหาข้อมูลเน่าแบบ classic อันนึงเลยก็คือ ได้ข้อมูลเชิง Report มา และดันใส่หัวตาราง 2 ชั้นมาด้วย ทำให้ใช้ Unpivot ตรงๆ ไม่ได้ คราวนี้จะทำยังไงดี มาดูกันครับ Download ข้อมูลที่มีหัวตาราง 2 ชั้นได้ที่เว็บสำนักงานสถิติแห่งชาติ จำนวนนักเรียน นิสิต นักศึกษาในระบบโรงเรียน ในสถานศึกษาของรัฐบาลและเอกชน จำแนกตามระดับการศึกษา และชั้น ปีการศึกษา 2556 – 2560 หรือ http://statbbi.nso.go.th/staticreport/Page/sector/TH/report/sector_03_3_TH_.xlsx หลักๆ การจัดการข้อมูลใน Power Query จะมีแนวทางดังนี้ ข้อมูลอยู่ในรูปแบบ Report ยังไม่ใช่ข้อมูลเชิง Database ติดข้อมูลอื่นที่ไม่เกี่ยวมา เช่น header/footer -> filter, remove col, remove top/bottom rows…
-
เทคนิคการเผชิญหน้ากับข้อมูลเน่าเฟะด้วย Power Query
หากคุณกำลังเจอข้อมูลเน่าเฟะ อย่าเพิ่งสิ้นหวัง… ทำอย่างไรเมื่อเจอข้อมูลที่อยู่ในรูปแบบที่แย่และไม่ ok เอาซะเลย และดันมีความจำเป็นต้องแก้ด้วย Power Query ซะด้วยสิ ในบทความนี้เราจะมาเผชิญความเน่าเฟะไปด้วยกันครับ เตือนไว้ก่อนว่าบทความนี้ยาวหน่อยและมีหลายขั้นตอน ซึ่งเป็นเรื่องปกติที่การกำจัดข้อมูลที่เน่าเฟะนั้นต้องใช้เวลา ดังนั้นอย่าเพิ่งท้อถอยนะครับ รับรองว่าจะได้ความรู้ดีๆ กลับไปแน่นอน ข้อมูลเน่าเฟะที่ได้มา สมมติว่าเราได้ข้อมูลหุ้นในตลาด SET100 ทุกตัวหน้าตาแบบนี้มา ซึ่งผมใช้ Python ดึงมารวมกันแบบไม่ได้ Clean ดีๆ ตั้งแต่แรก (จะได้มาฝึกทำใน Power Query ไง 555) ซึ่งดาวน์โหลดไฟล์ได้ที่นี่ (Google Drive / GitHub) ความยาก1 มี Topic แทรกอยู่ระหว่างบรรทัดอยู่เป็นระยะๆ เช่น ทรัพย์สินรวม หนี้สินรวม ความยาก2 จำนวนตัวเลขต่อ 1 Topic มี 4 ตัวบ้าง 5…
-
ทำอย่างไรเราถึงจะมี Logic ดีขึ้น? ตอนที่ 3 : แหล่งฝึกฝน Logic
ในตอนนี้เราจะมาแนะนำแหล่งเรียนรู้ แหล่งฝึกฝน Logic เพื่อที่พวกเราจะได้มีโอกาสฝึกคิดมากขึ้น เป็นการเพิ่ม Exp ด้าน Logic นั่นเอง ซึ่งเป็นตอนต่อของเนื้อหาสองตอนก่อน คือ เอาล่ะเพื่อไม่ให้เสียเวลา เรามาเริ่มดูแหล่งเรียนรู้เรื่อง Logic กันดีกว่า รวมแหล่งฝึกฝน Logic เกมแนว Puzzle ต่างๆ (เล่นคนเดียว) ผมขอไล่จากที่ดูง่ายไปยากละกันนะครับ (Judgement ส่วนตัวนะ อย่าซีเรียส) ปริศนาแนว Logic Grid Puzzle เกมแนวนี้มักจะให้ข้อมูลเป็น Hint มาว่า ใครทำอะไร/ใครคู่กับอะไร? แต่จะให้แบบไม่ครบสมบูรณ์ เราต้องปะติดปะต่อเหตุการณ์แล้วทำการตัด choice ที่เป็นไปไม่ได้ออก จนกว่าจะเจอคำตอบที่ต้องการ ตัวอย่างแบบง่ายๆ เช่น มีคน 4 คน คือ นาย A, B, C, D และมีสัตว์เลี้ยงทั้งหมด…
-
Power BI ตอนที่ 10: เรียนรู้ DAX เบื้องต้น
ในบทความนี้เราจะมาเรียนรู้การใช้ DAX เบื้องต้นกันครับ เดี๋ยวจะสอนแบบที่ว่า ไม่เคยใช้ DAX เลยก็สามารถเข้าใจได้นะ ก่อนอื่นเรามาลองดู Data ของตารางหลัก นั่นก็คือ fSales กันก่อนครับ เกิดอะไรขึ้นเมื่อลาก Field ตัวเลขลง Visual สิ่งที่เราควรรู้คือ เราสามารถลาก Field ที่เป็นตัวเลข (สังเกตว่าที่ Field มีสัญลักษณ์ Sigma อยู่) อย่างเช่น SalesQuantity ลง Visual ได้เลย และเราก็สามารถเลือกวิธีสรุปข้อมูลได้เช่นจะให้ Sum, Count, Average, Max, Min หรือแม้แต่ Distinct Count เวลาใน Values เรากดที่ลูกศรลงของ SalesQuantity ก็จะเห็นวิธีสรุปที่เลือกได้มากมายดังนี้ ค่า Default ของการลากข้อมูลตัวเลขลงมาก็คือการ Sum แต่เราสามารถเปลี่ยนวิธีการสรุปข้อมูลได้ตาม…
-
ทำอย่างไรเราถึงจะมี Logic ดีขึ้น? ตอนที่ 2
ในตอนที่แล้วเราได้เรียนรู้คร่าวๆ ไปแล้วว่าคนเราสามารถพัฒนาให้ Logic ดีขึ้นได้ ในบทความนี้เราจะมาฝึกแปลงความคิด หรือข้อความธรรมดาๆ ให้เป็นข้อความเชิง Logic กัน การอ้างเหตุผลที่เกี่ยวข้องกับใน Excel นั้น จะเป็นการอ้างเหตุผลประเภท Deductive Reasoning แปลไทยว่า การให้เหตุผลแบบนิรนัย ซึ่งก็คือการสรุปจากเหตุที่มีไปหาผล (หรือ Top-Down) ซึ่งจะเป็นแนวทางแบบเดียวกับวิชาคณิตศาสตร์ ซึ่งจะต่างกับ Inductive Reasoning ซึ่งใช้ผลลัพธ์ที่สังเกตจากหลายๆ เหตุการณ์ แล้วหารูปแบบหา Pattern จากนั้นนำมาสรุปเป็นกฎหรือสาเหตุ พูดง่ายๆ คือ สรุปจากผลไปหาเหตุ (หรือ Bottom-Up) ซึ่งจะเป็นแนวทางของวิชาวิทยาศาสตร์ ดังนั้นเราจะมาลงลึกด้วยการอ้างเหตุผลแบบ Deductive Reasoning กันครับ เพราะมันคือรูปแบบที่เราใช้กันใน Excel นี่แหละ วิธีการแปลงข้อความในชีวิตประจำวันให้เป็น TRUE/FALSE Statement เอาล่ะขั้นต่อไปที่เราจะต้องทำให้ได้ คือการหัดแปลงข้อความธรรมดาๆ ให้กลายเป็นตัวแปรสัญลักษณ์ทาง Logic ให้ได้ก่อน…
-
ทำอย่างไรเราถึงจะมี Logic ดีขึ้น? ตอนที่ 1
จากที่ผม post ถามไปในเพจว่า คิดว่าพื้นฐานวิชา Math (คณิตศาสตร์) ที่ไม่ดี มีผลกับการทำให้ใช้ Excel ไม่ดีหรือไม่? ผลโหวตประมาณครึ่งต่อครึ่งคิดว่าน่าจะเป็นการที่ Logic ไม่ดีมากกว่าที่มีผลทำให้ใช้ Excel ได้ไม่ดี และนอกจาก Logic ก็อาจมีผลมากจากด้าน Motivation ด้วย ซึ่งผมก็เห็นด้วยนะครับ ดังนั้นเข้าสู่ประเด็นสำคัญดีกว่าว่า นั่นคือ เราจะทำยังไงให้เราเป็นคนที่มี Logic หรือพูดเต็มๆว่ามี Logical Thinking (ความคิดเชิงตรรกะ) ดีขึ้น? และมันเป็นเรื่องที่ฝึกฝนได้รึเปล่า สอนได้รึเปล่า? หรือ Logic มันติดตัวมาแต่เด็กได้แค่ไหนแค่นั้นแหละ? Logical Thinking คืออะไร? ก่อนอื่นมานิยามกันก่อนว่าการคิดเชิงตรรกะคืออะไร จะได้เข้าใจตรงกันเนอะ Logical Thinking คือการคิดอย่าง “มีเหตุผล” หรือพูดง่ายๆ คือ Make Sense โดยมีการเชื่อมโยงและสร้างโครงสร้างของสาเหตุและผลลัพธ์ขึ้นมา (เหตุนี้…
-
Power BI ตอนที่ 09: สร้าง Date Table ด้วย DAX
ในตอนที่แล้วเราได้สร้าง Data Model ให้เป็น Star Schema ได้แล้ว เหลืออีกขั้นตอนนึงในการทำให้ Data Model ของเราสมบูรณ์ยิ่งขึ้น นั่นก็คือการสร้าง Date Table นั่นเอง แม้ว่าในความเป็นจริงแล้วเราสามารถลาก Field วันที่จาก Fact Table ลงไปใน Visual ได้เลย แต่ทว่านั่นเป็นสิ่งที่เหล่าผู้เชี่ยวชาญไม่แนะนำให้ทำ เพราะมันจะสร้างตารางวันที่จำลองที่มองไม่เห็นขึ้นมาเต็มไปหมด วิธีที่ถูกต้องคือสร้าง Dimension Table ที่เป็นตารางวันที่ขึ้นมาต่างหาก การสร้าง Date Table นอกจากจะลดปัญหาที่บอกข้างบนแล้ว ยังช่วยให้ฟังก์ชัน DAX ตระกูล Time Intelligence ทั้งหมดทำงานได้อย่างถูกต้องอีกด้วย เช่นการคิดเลขสะสมตั้งแต่ต้นปี (Year-to-Date) หรือ การคิดเทียบกับช่วงเดียวกันในปีที่แล้ว (Same period last year) แต่ว่าการเขียนสูตรพวก Time Intelligence…
-
Power BI ตอนที่ 08: สร้าง Data Model ที่เหมาะสม
ในที่สุดก็มาถึงตอนที่เป็น Concept สำคัญอีกตอนหนึ่ง นั่นก็คือเรื่องของ Data Model นั่นเอง ถ้าใครได้ลองทำ Visual ในตอนที่ 4 ก็จะรู้ว่า เราสามารถลาก Field ข้ามตารางมาลงใน Visual ได้ถ้าตารางนั้นได้มีการผูก Relationship กันไว้แล้ว และทิศทางของการ Filter ข้อมูลจะวิ่งตามทิศทางของลูกศรใน Relationship ด้วย พอพูดถึงเรื่อง Data Model แล้ว การออกแบบ Data Model ที่ดี จะช่วยให้ Performance ของงานเราเร็วขึ้น และสามารถเขียนสูตร DAX ได้ง่ายขึ้นด้วย Star Schema: Data Model ที่ Power BI ชอบที่สุด และจากคำแนะนำของกูรูระดับโลกในเรื่อง DAX อย่าง Marco…
-
Power BI ตอนที่ 07: เริ่ม Get Data ตั้งแต่ไฟล์ยังว่างเปล่า
เอาล่ะ ในที่สุดก็ถึงเวลาที่จะเรียนรู้การดึง Data เข้า Power BI ด้วยเครื่องมือ Get Data/Transform Data หรือก็คือ Power Query นั่นเอง (ใครได้อ่านหนังสือ Excel Power Up! มาก็น่าจะเข้าใจได้เร็วกว่านะครับ เพราะมันคือตัวเดียวกันเลย) ซึ่งในบทความนี้ผมมีไฟล์ Data ให้โหลดเป็นไฟล์ zip 1 อัน (โหลดจาก Google Drive / โหลดจาก GitHub) ซึ่งถ้าแตกออกมาจะมี Folder อยู่ 1 อันชื่อว่า Contoso ในนั้นจะมีไฟล์ Excel 1 ไฟล์ที่มีหลาย sheet โดยแต่ละ Sheet คือตาราง Reference ทั้งหมดที่ต้องใช้ และมีไฟล์ CSV…
-
Power BI ตอนที่ 06: การปรับแต่งสีใน Visual ด้วย Conditional Format
ในตอนนี้เราจะมาเรียนรู้เรื่องการปรับแต่งสีใน Visual ด้วย Conditional Format ซึ่งก็จะยังจะใช้ไฟล์เดิมกับตอนที่ 4 มาทำงานต่อนะครับ (ตอนสุดท้ายแล้วล่ะ) เดี๋ยวตอนหน้าเราจะเริ่มทำตั้งแต่ไฟล์ Power BI เปล่าๆ แล้ว Get Data กันใหม่ จาก Excel และ Folder ที่มี CSV หลายไฟล์อยู่ในนั้นนะครับ ความมันส์ที่แท้จริงกำลังจะมาถึงแล้ว 555 สีโดยพื้นฐานของ Power BI นั้นมาจาก Theme เราสามารถเปลี่ยน Theme สีได้ในเมนู Home แล้วเลือก Switch Theme ซึ่งมี Theme Gallery ให้ Download ด้วยนะ (ต้องโหลดไฟล์ นามสกุล .json มาจาก gallery ใน…
-
Power BI ตอนที่ 05: วิธีการ Drill เพื่อเจาะลึกข้อมูลใน Report
ในบทความที่แล้ว เราได้ลงมือสร้าง Report แรกกันไปแล้ว คราวนี้เราจะลองมาใช้ฟังก์ชันในการเจาะลึกข้อมูลเพื่อที่จะได้ค้นพบ insights อะไรบางอย่างมากขึ้น โดยใช้ไฟล์เดิมจากบทความที่แล้วมาทำนะครับ (จะทำต่อจากเดิม หรือโหลดไฟล์ตั้งต้นมาทำในบทนี้เลยก็ได้) สร้าง Hierarchy สิ่งที่ควรทำใน Step แรกก็คือการสร้าง Hierarchy ให้กับ Field ซะก่อน ว่า Field ไหนเป็นแม่ลูกกัน เวลากดเจาะลึกแม่ก็จะเห็นรายละเอียดลูกได้เลย และเวลาลากไปใช้ใน Visual ลากทีเดียวจะไปทั้งแม่และลูกได้เลย ทำให้เกิดความสะดวกขึ้น ยกตัวอย่างเช่น ProductCategory เป็นแม่ซึ่งมีลูกคือ ProductSubCategory แบบนี้ใน Field ด้านขวาเราก็สามารถสร้าง Hierarchy ได้โดยการลากลูกไปหาแม่ได้เลย พอปล่อยปุ๊ปก็จะได้ Hierarchy ขึ้นมาเลยแบบนี้ ข้อสังเกตคือ Field เดิมก็ยังอยู่นะ ไม่ได้หายไปไหน ที่นี้เราสามารถสร้าง Hierarchy ซ้อนอีกชั้นได้ เช่น ลาก ProductName ไปเป็นลูกอีกทีที่…
-
Power BI ตอนที่ 04: สร้าง Report แรก ใน Power BI
ในบทความนี้เดี๋ยวเราจะได้มาลองสร้าง Report ใน Power BI Desktop กันซักทีครับ โดยที่ผมเองเอา Dataset ดั้งเดิม ชื่อ Contoso มาจากที่นี่ (เพราะขี้เกียจทำเอง 555) แต่ว่าเนื่องจากไฟล์มันใหญ่เกินไปปป (มี Transaction ประมาณ 2 ล้านกว่าๆ) ผมเลยคิดว่าคงไม่เหมาะกับการที่จะให้เพื่อนๆ โหลดไฟล์นั้นตรงๆ สรุปแล้วโหลดไฟล์นี้ไปใช้นะ ผมก็เลย Random Transaction เอามาแค่ 1 ใน 10 ก็คิดว่าน่าจะพอแล้ว (ประมาณ 2 แสน) และผมก็ตัดคอลัมน์หลายๆ อย่างที่ไม่จำเป็นออกไปด้วย สรุปแล้วก็โหลดไฟล์ Power BI อันนี้ที่ Google Drive ได้เลย (หรือถ้าข้างบนไม่ได้ก็โหลดอันนี้ที่ GitHub ) ผมผูก Data Model…