บทความ

บทความ

เก่งโค้ดงาน Business Intelligence ตอนที่ 6

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

Merge Query ด้วย Power Query

ข้อมูลที่เราจะต้องทำการสรุปผล บางครั้งอาจจะมีข้อมูลมากกว่า 1 ตารางโดยมีความสัมพันธ์กัน คำสั่งหนึ่งที่จะใช้หาค่าใน Excel เราจะใช้ฟังก์ชั่น VLookup ซึ่งหากทำงานกับข้อมูลจำนวนมาก ก็จะรู้สึกว่า Excel มีความอืด หนืดมาก ซึ่งแนวทางในตัวอย่างนี้จะใช้ Merge Query ใน Power Query เพื่อทำการแก้ไขปัญหา โดยทำการ ETL ให้ข้อมูล Lookup เสร็จเรียบร้อย ทำให้ข้อมูลที่ได้ไม่มีสูตร การทำงานจะรวดเร็วและ ไฟล์จะเล็กลงอีกด้วย
บทความ

ประโยชน์ของ Power Query เพื่อช่วยในทางธุรกิจ

Power Query เป็นเครื่องมือสำหรับงานด้าน Business Intelligence ช่วยทำเรื่อง Data Cleansing, Data Shaping, Data Corrector คือจะช่วยในการทำความสะอาดข้อมูล ปรับปรุงข้อมูลที่มาจากหลากหลายแหล่ง หลากหลายรูปแบบให้มีความพร้อมในการวิเคราะห์ข้อมูลด้วยเครื่องมือต่าง ๆ ในอนาคต โดย Microsoft Power Query สามารถเรียกใช้ได้ทั้งใน Power BI และใน Microsoft Excel ซึ่ง Microsoft Excel 2016, Excel 2019, Office 365 เป็นต้นมาจะมี Power Query ติดตั้งมาด้วย
บทความ

การแปลงวันที่ ที่เป็นปี พ.ศ. ให้ เป็นปี ค.ศ. อัตโนมัติด้วย Power Query ใช้ได้ทั้ง Excel และ Power BI Desktop

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

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : Expression-Bodied Members (EBM)

สมาชิกแบบนิพจน์ฝังตัว (Expression-Bodied Members ย่อ EBM) ที่เริ่มใน C# 6.0 มาตอนนี้ใน C# 7.0 ได้ถูกเพิ่มเติมให้สนับสนุนสมาชิกแบบต่าง ๆ ได้มากขึ้นกว่าเดิม EBM เป็นคุณสมบัติที่ช่วยให้เราสามารถเขียนนิยามสมาชิกของclass ได้อย่างกระชับและอ่านเข้าใจได้ง่าย ใน C# 6.0 เราสามารถใช้ EBM ร่วมกับสมาชิกของ class 2 แบบ คือ method และ Property แบบอ่านได้อย่างเดียว ใน C# 7.0 เราสามารถใช้ EBM ได้กับสมาชิกของ class เพิ่มอีก 4 แบบได้แก่ Property constructor Finalizer และ Indexer
บทความ

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 12

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

การเลือกประเภทกราฟให้เหมาะกับงาน

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

เก่งโค้ดงาน Business Intelligence ตอนที่ 5

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

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 11

ข้อดีของภาษาซีชาร์ปคือมีคุณสมบัติดี ๆ ที่มีอยู่ในภาษาที่ได้รับความนิยมมากอย่างจาวาและไพธอน หนึ่งในคุณสมบัติเหล่านั้นคือ “ฟังก์ชันแบบอะนอนีมัส” (Anonymous Functions) ซึ่งเป็นบรรทัดคำสั่งหรือนิพจน์สั้น ๆ ที่ฝังตัวอยู่ในบรรทัดคำสั่งซึ่งสามารถใช้เมื่อใดก็ตามที่จำเป็นต้องใช้เดลลีเกต เราอาจใช้ฟังก์ชันแบบอะนอนีมัสเพื่อพร้างออพเจ็กต์เดลลีเกตแบบมีชื่อ หรือจะใช้เพื่อส่งออพเจ็กต์เดลลีเกตแบบมีชื่อไปเป็นพารามิเตอร์ของเมธอดก็ได้
บทความ

เก่งโค้ดงาน Business Intelligence ตอนที่ 4

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

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : คุณสมบัติ ref return ,ref local กับ Local Function

คุณสมบัติ ref return เริ่มตั้งแต่C# 7.0 จากนั้นพอมาถึงC# 7.3 ก็เพิ่มคุณสมบัติ ref local เพื่อให้ใช้งานคู่กัน ทำให้เขียนโค้ดฝั่งmethodและฝั่งตัวรับได้สะดวกยิ่งขึ้นไปอีก ปรกตินักเขียนโค้ดอย่างเราจะใช้ตัวกระทำ ref (ความจริงเป็นmodifierแต่เพื่อให้กระชับต่อไปนี้จะเรียกว่าเป็น “คำสั่ง” ) เมื่อต้องการส่ง “ค่าอ้างอิง” ไปเป็นพารามิเตอร์ (คือการส่งค่าไปยังmethodโดยส่งค่าอ้างอิงไป ไม่ได้ส่งค่าของตัวแปรไป) หรือที่เรียกว่า “การผ่านตัวอ้างอิง” (pass by reference) นี่เป็นคุณสมบัติที่มีในC#ตั้งแต่versionแรก แต่มาตอนนี้เราสามารถใช้คำสั่ง ref ในลักษณะอื่น ๆ ได้ด้วย ในตอนที่ผ่านมาผู้เขียนได้พูดถึงการการใช้ ref return ไปแล้วบางส่วน ในบทความตอนนี้จะอธิบายรายละเอียดของ ref return ที่เหลือ และจะต่อด้วยเรื่องคุณสมบัติ ref local ด้วย
บทความ

Checkpoint หัวใจงานนำเสนอ

เทคนิคในการสร้างงานนำเสนอ ที่ตอนทำจริงมักจะลืม ก็เลยเป็นบทความสรุปจุดเช็ค (Checkpoint) ว่าการทำงานนำเสนอความคำนึงเรื่องอะไรบ้าง
บทความ

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : ตัวกระทำ is กับ คุณสมบัติใหม่ในคำสั่ง switch และ Ref local

เริ่มในภาษาC# เวอร์ชั่น 7.0 ขึ้นไปตัวกระทำ is มีความสามารถเพิ่มจากเดิมเพื่อใช้ในงานตรวจสอบรูปแบบที่ซับซ้อนได้ดีขึ้นกว่าเดิม ตัวกระทำ is ใช้หาชนิดของtypeเพื่อตรวจสอบความเข้ากันได้ขณะrunโปรแกรม มันทำหน้าที่ตรวจว่า objectหรือผลลัพธ์จากนิพจน์สามารถแปลงไปเป็นชนิดข้อมูลที่กำหนดได้หรือไม่ มีsyntaxอย่างที่เห็นในรูปที่ 1 บรรทัด 3
บทความ

เก่งโค้ดงาน Business Intelligence ตอนที่ 3

ในภาษาเอ็มเราสามารถอ้างอิงถึงตัวแปรหรือสิ่งต่าง ๆ ที่อยู่ภายในสภาพแวดล้อมได้โดยใช้ “ตัวระบุ” หลักการนี้มีชื่อว่า “การอ้างด้วยตัวระบุ” (Identifier References IR) ซึ่งมีสองแบบคือ “การอ้างด้วยตัวระบุจำเพาะ” (Exclusive-identifier-reference EIR) ที่เป็นวิธีปรกติ กับ “การอ้างด้วยตัวระบุไม่จำเพาะ” (Inclusive-identifier-reference IIR) ซึ่งเป็นวิธีพิเศษ
บทความ

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 10

ข้อดีของภาษาซีชาร์ปที่เหนือกว่าภาษาอื่น (อย่างภาษาซี) คือสนับสนุนการเขียนนิพจน์แลมบ์ดาในตัวโดยไม่ต้องเรียกใช้ส่วนเพิ่มขยายพิเศษใด ๆ นิพจน์แลมบ์ดาคือฟังก์ชันที่ไม่ระบุชื่อ (anonymous function) ที่เราสามารถนำมาใช้สร้างเดลลีเกตหรือเอ็กซ์เพรสชันทรี (expression tree) ได้ เราสามารถใช้นิพจน์แลมบ์ดาเพื่อเขียนฟังก์ชันท้องถิ่นเพื่อใช้เป็นอาร์กิวเมนต์ของฟังก์ชันและใช้เป็นค่าส่งกลับของฟังก์ชันก็ได้ นิพจน์แลมบ์ดาจะมีประโยชน์เป็นพิเศษเมื่อเราเขียนนิพจน์เพื่อสืบค้นข้อมูลด้วยภาษา LINQ
บทความ

แผนที่ (Map) ใน Power BI

จากที่ได้ทำโปรเจคเกี่ยวกับ Power BI มาพักหนึ่งอยากจะมาแชร์ให้ฟังเกี่ยวกับการทำงานกับ Map ใน Microsoft Power BI Desktop ว่าใช้แผนที่ตัวใดเหมาะสม
บทความ

ภาษาโปรแกรม Python คืออะไร ?

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

เก่งโค้ดงาน Business Intelligence ตอนที่ 2

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

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 9

เมธอดเสริม (Extension Method) แปลกกว่าเมธอดสมาชิกอื่น ๆ ที่เวลานิยามเราต้องนิยามมันแบบสแตติกเมธอด (static method เมธอดที่เป็นสมาชิกของคลาส ไม่ใช่ของออพเจ็กต์) แต่เวลาเรียกใช้งานเรากลับต้องเรียกใช้งานแบบอินสแตนซ์เมธอด (instance method เมธอดที่เป็นสมาชิกของออพเจ็กต์ ไม่ใช่ของคลาส) พารามิเตอร์ตัวแรกของเมธอดเป็นตัวกำหนดว่าเมธอดนั้นทำงานกับอะไร ในรูปที่ 1 บรรทัดที่ 9 จะเห็นว่ามีคำสั่ง (โมดิไฟเออร์) this ปรากฏอยู่หน้าพารามิเตอร์ คำสั่ง this ทำหน้าที่กำหนดว่าเมธอดนี้ทำงานกับออพเจ็กต์ (ไม่ใช่กับคลาส)
บทความ

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : การ Deconstruct Tuple และ Type อื่น ๆ

ภาษาC# 7.0 ขึ้นไปสนับสนุนการประกาศตัวแปรแบบ discard ซึ่งเป็นตัวแปรแบบเขียนได้เท่านั้น (read-only) โดยที่ท่านจะประกาศตัวแปรแบบนี้กี่ตัวก็ได้ แต่ทุกตัวจะมีชื่อเดียวกันหมดคือ _ (เครื่องหมายขีดเส้นใต้หรือ underscore) ประโยชน์ของตัวแปรแบบ discard คือการนำไปใช้กับTuple (Tuple อ่านรายละเอียดเรื่องTupleได้จากบทความตอนก่อนหน้านี้) เพราะการรับค่าส่งกลับจากmethodที่ส่งค่ากลับเป็นTuple หรือการเรียกใช้methodที่มีพารามิเตอร์แบบ out เราจะต้องประกาศตัวแปรไว้รับค่า ซึ่งบ่อยครั้งที่เราไม่ต้องการใช้ค่าจากตัวแปรเหล่านั้น แต่ก็จำต้องประกาศ ทำให้โค้ดรกรุงรังโดยเปล่าประโยชน์
บทความ

แนะนำการเขียนโปรแกรมด้วยภาษา Python

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

Big Data Ecosystem คืออะไร

Big Data Ecosystem จะเป็นภาพใหญ่ของการทำงานกับ Big Data เริ่มตั้งแต่การเก็บข้อมูล ประมวลผล วิเคราะห์ และ แสดงผลข้อมูล โดยที่เริ่มด้วยโครงสร้างพื้นฐาน (Infrastructure) และการเลือกเครื่องมือที่เหมาะสมในการจัดเก็บ ประมวลผลและวิเคราะห์ (Process/Analytics) ซึ่ง Report/Application ดังกล่าวจะเป็นส่วนสำคัญ ที่จะเป็นส่วนของ Big Data ecosystema
บทความ

มีอะไรใหม่ใน .NET Core 2 และ C# 7 : สนับสนุนการใช้งาน Tuple

ใน.NET Core 2.0 สนับสนุนภาษา C# version 7.0 ที่มีtypeใหม่คือ “Tuple” (Tuple) และใน.NET Core 2.1 สนับสนุน C# 7.1 สนับสนุนการอ้างTupleแบบ Inferred ที่ช่วยให้การเขียนโค้ดทำได้กระชับขึ้น
บทความ

DAX Function แนะนำฟังก์ชัน Related

บทความแนะนำฟังก์ชัน Related ด้วย DAX หรือ Data Analysis Expression เพื่อดึงข้อมูลข้ามตาราง
บทความ

รู้จักกับโครงสร้างข้อมูล แบบ Dimensional Model

Microsoft ได้ออกแบบผลิตภัณฑ์ Microsoft SQL Server Integration Service ให้สามารถสกัดข้อมูลจากหลายแหล่งหลายโครงสร้าง (schema) แล้วมีเครื่องไม้เครื่องมือในการแปลงข้อมูลเหล่านั้นไปสู่โครงสร้าง (schema) แบบ Dimensional Model ของ Ralph Kimball ผู้อ่านสามารถติดตามหนังสือในเครือ Kimball Group ได้จาก http://www.kimballgroup.com
บทความ

การสร้าง Data Model ด้วย Microsoft SQL Server Analysis Service และการเรียกใช้

Microsoft SQL Server Analysis Service เป็นผลิตภัณฑ์สำหรับจัดการ Data Model ระดับ Enterprise ซึ่งแบ่งได้เป็น 2 ประเภทดังนี้ - Multidimensional Data Model ซึ่งเป็น โครงสร้างข้อมูลแบบ OLAP (cubes, dimensions, measures) - Tabular Data Model ซึ่งเป็น โครงสร้างข้อมูลแบบ Relational (model, tables, columns)
บทความ

9 New Features ที่ต้องลองใน Excel 2016 (Infographic)

9 New Features ที่ต้องลองใน Excel 2016 (Infographic) ไม่ว่าจะเป็น Power Pivot, Power Query, Pivot Table, Map, New Chart, Tellme และ Lookup, Forecast เป็นต้น มาดูรายละเอียดใน Infographic และ บทความกันได้เลย
บทความ

เก่งโค้ดงาน Business Intelligence

บทความนี้เกี่ยวกับเทคนิคการเขียนโค้ดด้วยภาษา Microsoft Power Query Formula Language (ต่อไปจะเรียกย่อว่าภาษา M) ภาษา DAX (Data Analysis Expressions) และภาษา R ซึ่งเป็นสามภาษาหลักที่ได้รับการสนับสนุนจากไมโครซอฟท์เพื่อใช้กับงาน “บิซิเนสอินเทลลิเจนซ์” (Business Intelligence)
บทความ

Data Analysis Expression (DAX) คืออะไร

DAX (Data Analysis Expressions) เป็นภาษาคำสั่งที่ใช้ในการคำนวณและวิเคราะห์ข้อมูลใน Power BI และ Excel Power Pivot โดย DAX มีการใช้ฟังก์ชันที่สามารถสร้างสูตรการคำนวณแบบที่ยืดหยุ่นและมีประสิทธิภาพสูง
บทความ

ข้อดีของภาษา C# เมื่อเทียบกับภาษาอื่น ๆ ตอนที่ 8

เนื่องจากพอยน์เตอร์เป็นสิ่งมีประโยชน์และน่าสนใจมาก และเป็นข้อดีของภาษาซีชาร์ปที่ภาษาอื่น ๆ ไม่มี (ยกเว้น ซี ซีพลัสพลัสและโก) จึงขอเสนอตัวอย่างการใช้งานพอยน์เตอร์ในภาษาซีชาร์ปเพิ่มเติมต่อจากตอนที่แล้วอีกเล็กน้อย ปัญหาอย่างหนึ่งของการใช้งานพอยน์เตอร์คือ เราจะกระทำกับพื้นที่ในหน่วยความจำโดยตรง และเป็นพื้นที่ ๆ เราจองไว้โดยการประกาศตัวแปร แต่ ตัวเก็บขยะ (garbage collector) อาจนึกว่าเป็นขยะและอาจโยกย้ายหรือเก็บเอาไปทำลายได้ตามใจชอบ โดยเราไม่สามารถกำหนดกฎเกณฑ์อะไรได้