วิธีทำรายงาน Excel อัตโนมัติ 100% แบบ Step-by-Step 1

วิธีทำรายงาน Excel อัตโนมัติ 100% แบบ Step-by-Step

คุณเคยเจอปัญหาแบบนี้ไหม?

  • ทุกวันต้องดาวน์โหลดไฟล์แนบจากอีเมล หรือดึงข้อมูลจากระบบที่ทำงาน แล้วก็อปลง Excel ด้วยตัวเอง
  • ไฟล์ที่ได้มาก็มักจะไม่สะอาด ต้องมานั่งลบแถวหัวตารางที่ไม่จำเป็น แก้ไขฟอร์แมตวันที่ รวมข้อมูลจากหลายไฟล์ กว่าจะได้ข้อมูลที่พร้อมใช้ก็เสียเวลาไปเพียบ…
  • ถ้าต้องมีการคำนวณเพิ่มเติม เช่น คำนวณยอดขายสะสม เปรียบเทียบยอดขายปีที่แล้ว หรือคำนวณเปอร์เซ็นต์เติบโต เวลาจะเปลี่ยนหน้าตารายงาน ก็ต้องมานั่งแก้สูตรทำใหม่ตลอด
  • เมื่อข้อมูลพร้อมแล้ว ยังต้องกด Refresh Pivot Table อัปเดต Dashboard เองทุกครั้ง
  • พอทำรายงานเสร็จก็แทบตายแล้ว ยังไม่มีเวลาวิเคราะห์ผลจากมันเลย เดี๋ยวก็ต้องส่งไฟล์แนบไปให้หัวหน้า หรือแจ้งทีมงานทางอีเมลหรือ Line ด้วยตัวเอง

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

👉 บทความนี้จะพาคุณไปเรียนรู้ วิธีทำให้ทุกขั้นตอนในกระบวนการทำรายงาน Excel เป็นระบบอัตโนมัติ 100% ตั้งแต่การดึงข้อมูล การ Clean ข้อมูล การคำนวณขั้นสูง การ Refresh ข้อมูล ไปจนถึงการแจ้งเตือนและส่งรายงานให้ทีมงาน โดยใช้ Power Query, Power Pivot, Pivot Table, VBA, Task Scheduler และเครื่องมือ Automation อื่นๆ

ถ้าคุณอยากลดเวลาทำงานจาก 1 ชั่วโมงเหลือไม่กี่นาที และทำให้รายงานอัปเดตได้เองแบบไม่มี Human Error—มาลองทำไปพร้อมกัน!


สารบัญ

1️⃣ ดึงไฟล์รายงานใหม่อัตโนมัติ

ก่อนที่เราจะทำรายงานได้ สิ่งที่ขาดไม่ได้เลยก็คือ “ข้อมูล” ซึ่งโดยปกติแล้ว ข้อมูลที่ใช้ทำรายงานมักจะถูกส่งมาในรูปแบบต่างๆ เช่น ไฟล์ Excel, CSV, Google Sheets หรือดึงจาก Database โดยตรง ซึ่งถ้าเราต้องมากดโหลดไฟล์เองทุกครั้งก็เสียเวลามาก 🕒

ดังนั้น การตั้งระบบให้ดึงไฟล์รายงานใหม่แบบ อัตโนมัติ จะช่วยให้เราประหยัดเวลา และลดข้อผิดพลาดจากการทำงานแบบ Manual ได้เยอะ


Option A: Power Query ดึงข้อมูลได้โดยตรง

ใช้ในกรณีที่แหล่งข้อมูลของเรา สามารถเข้าถึงได้โดยตรง ผ่าน Power Query เช่น

  • ไฟล์ Excel หรือ CSV ในโฟลเดอร์ (ไม่ว่าจะอยู่ในเครื่องเรา หรือ บนพวก OneDrive/ SharePoint)
  • Google Sheets (ผ่าน Web)
  • ฐานข้อมูล SQL Server, MySQL, หรืออื่นๆ

วิธีการใช้งาน Power Query

  1. เปิด Excel → เข้า Power Query (Get & Transform Data)
  2. เลือก Get Data → เลือกแหล่งข้อมูลที่ต้องการ
  3. หากเป็นไฟล์หลายไฟล์ สามารถใช้ Get data From Folder หรือ SharePoint Folder เพื่อรวมไฟล์อัตโนมัติได้ (แต่ถ้าเอาจากแหล่งออนไลน์ เช่น SharePoint มี Trick นิดนึง ดูได้ที่นี่)

📌 จุดเด่นของวิธีนี้

  • ง่ายและสะดวก ใช้ Power Query ดึงข้อมูลได้โดยตรง
  • อัปเดตอัตโนมัติ แค่ Refresh ก็ได้ข้อมูลล่าสุด

Option B: Power Query ดึงข้อมูลโดยตรงไม่ได้ ทำยังไงดี?

กรณีที่ Power Query ไม่สามารถเข้าถึงแหล่งข้อมูลได้โดยตรง เช่น

  • ไฟล์แนบที่ถูกส่งมาทางอีเมล หรือ Line
  • ไฟล์ที่อยู่บน Google Drive ที่ Power Query ดึงลำบาก ต้องไปกดโหลดเอง

👉 วิธีแก้ปัญหาคือ ใช้ Automation Tool เช่น

  • Power Automate (ของ Microsoft)
  • Make.com
  • n8n (สามารถโหลดมาใช้ฟรีได้)

ตัวอย่าง

  • ตั้งค่าให้ดึงไฟล์แนบจาก อีเมล หรือ Line แบบอัตโนมัติ
  • เก็บไว้ในโฟลเดอร์ที่กำหนด
  • เมื่อไฟล์ถูกดาวน์โหลดมาเก็บในที่ที่กำหนด → จากนั้น Power Query ก็สามารถใช้ Get Data ดึงไฟล์ หรือทั้ง Folder นั้นเข้า Excel ได้เลย 🎉

เมื่อเราสามารถดึงไฟล์ใหม่อัตโนมัติได้แล้ว งานทำรายงานของเราจะ เร็วขึ้น และ สะดวกขึ้น มาก 🚀


2️⃣ ใช้ Power Query Clean ข้อมูล

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

Power Query เป็นเครื่องมือที่ช่วยให้เราทำ Data Cleaning ได้ง่ายและอัตโนมัติ ด้วยการกำหนดขั้นตอนการทำงานไว้ใน Applied Steps (ซึ่งจริงๆ คือ M Code) ซึ่งสามารถสั่งทำซ้ำได้ง่ายๆ ด้วยการ Refresh

การ Transform data ที่หลากหลาย

  • จัดโครงสร้างข้อมูลให้ถูกต้อง
    • Pivot, Unpivot, Split, Merge Columns และอื่นๆ อีกมากมาย
  • จัดรูปแบบข้อมูลให้เป็นมาตรฐาน
    • เราสามารถใช้ M Code แก้ชื่อคอลัมน์แบบอัตโนมัติด้วย Table.TransformColumnNames ก็ได้นะ
  • ลบค่าที่ไม่ต้องการ (Error หรือค่าซ้ำซ้อน)
    • Remove Rows/Columns, Choose Columns, Filter
    • Remove Errors, Remove Duplicates
  • เพิ่มคอลัมน์ให้ครบถ้วน
    • Add Custom Column, Column From Example, Extract Data
  • รวมข้อมูลจากหลายตาราง (ถ้าจำเป็น)
    • 📌 Append Queries → รวมข้อมูลโดยเอามาต่อตูดกันในแนวตั้ง (ชื่อคอลัมน์เหมือนกัน) ใช้เมื่อเราต้องการรวมข้อมูลจากหลายไฟล์ / หลายชีต
    • 📌 Merge Queries → รวมข้อมูลที่มีคีย์ร่วมกันคล้ายๆ VLOOKUP (เลือกคอลัมเชื่อมเอง) ใช้เมื่อเราต้องการรวมข้อมูลจาก 2 ตารางที่มี รหัสสินค้า หรือ รหัสลูกค้า เหมือนกัน
  • เทคนิคเมื่อรวมหลายไฟล์เข้าด้วยกัน
    • หลังจาก Get Data From Folder แล้วกด Combine แล้วอาจต้องไปแก้ใน Transform Sample File ด้วย (เป้นตัวกำหนดว่าจะทำอะไรกับแต่ละไฟล์ก่อนจะจับรวมกัน)

ซึ่งรายละเอียดของการสั่งงาน Power Query ผมมีสอนอยู่เยอะแล้ว ยังไงลองดูใน 2 คลิปนี้ก่อนก็ได้ครับ


สุดท้าย: โหลดข้อมูลกลับไปใช้ใน Excel หรือ Data Model

  • ถ้าเป็นรายงานทั่วไป
    • กด Close & Load To… → เลือก Table/PivotTable ใน Excel
  • ถ้าข้อมูลมีโครงสร้างซับซ้อน
    • เลือก Only Create Connection แต่ให้ติ๊ก Add this Data to Data Model ต่อ

3️⃣ ใช้ Power Pivot คำนวณข้อมูลขั้นสูง ด้วย DAX (ถ้างานซับซ้อน)

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

🔴 1. ข้อมูลมีหลายตาราง และแต่ละตารางมีความละเอียด (Granularity) ไม่เท่ากัน

เวลาทำ รายงานวิเคราะห์ข้อมูล เรามักต้องรวมข้อมูลจากหลายแหล่ง เช่น

  • ข้อมูล ยอดขายจริง (Actual Sales)
  • ข้อมูล เป้าหมายยอดขาย (Sales Target)
  • ข้อมูล ลูกค้า, สินค้า, ภูมิภาค

หลายคนอาจคิดว่า “ก็ใช้ VLOOKUP รวมข้อมูลทั้งหมดเข้าไว้ในตารางเดียวสิ!” แต่ปัญหาคือ ถ้าข้อมูลแต่ละตารางมีความละเอียด (Granularity) ไม่เท่ากัน เช่น

  • Actual Sales → มีข้อมูล รายวัน / รายสินค้า
  • Target Sales → มีข้อมูล รายเดือน / รายภูมิภาค

ถ้าใช้ VLOOKUP จะเกิดปัญหา เช่น

  • จะเอาข้อมูล Target รายเดือนมาวางใน Actual รายวันยังไง? 🤔
  • จะเฉลี่ยเป้าหมายเป็นรายวัน หรือเอาไปจับคู่ยังไง?

การใช้ Data Model ช่วยแก้ปัญหานี้ได้ เพราะมันสามารถสร้าง Relationship และใช้ DAX คำนวณข้อมูลข้ามตารางได้


🔴 2. ไม่ต้องใช้ VLOOKUP ซ้อนกันหลายชั้น (ลดความช้า & ไฟล์ไม่พัง!)

  • ถ้ามีข้อมูล 5 ตาราง แล้วต้องใช้ VLOOKUP ซ้อนกัน ไฟล์จะ ช้า และอาจมีปัญหาได้
  • Power Pivot สามารถ สร้างความสัมพันธ์ระหว่างตาราง โดยไม่ต้องใช้ VLOOKUP

ซึ่งมีข้อดีหลายอย่าง เช่น

  • ดึงข้อมูลจากหลายตารางมารวมกันได้อัตโนมัติ
  • ลดขนาดไฟล์ เพราะไม่ต้อง Copy ข้อมูลซ้ำไปมา
  • คำนวณเร็วขึ้น เพราะใช้ Data Model แทนการคำนวณแบบ Cell-by-Cell

🔴 3. การคำนวณขั้นสูง (เช่น CALCULATE, Running Total, YTD, MTD) ทำไม่ได้ใน Pivot Table ธรรมดา
ถ้าเราใช้ Pivot Table ปกติ จะเจอปัญหา แม้ว่ามันจะมีฟีเจอร์ชื่อว่า Calculated Field มาให้เราสร้าง Field คำนวณขึ้นมาเองได้ แต่ว่าการคำนวณสรุปที่ใช้ได้ถูกจำกัดแค่การ SUM ซึ่งต่างจากเวลาเราใช้ Power Pivot ที่สามารถเขียน Measure ที่สามารถใช้สูตร DAX อะไรก็ได้

นอกจากนี้ใน PivotTable ปกติ แม้จะมี Show Value as มาช่วยคำนวณที่คล้ายกับว่าจะทำ Running Total ได้ แต่จริงๆ แล้วมีข้อจำกัดเยอะ เพราะเครื่องมือไม่ได้เข้าใจความเป็น ปี ไตรมาศ เดือน จริงๆ ซึ่งต่างจาก Time Intelligence ของ DAX ซึ่งสามารถคำนวณเกี่ยวกับเวลาได้อย่างถูกต้องจริงๆ


ตัวอย่างการใช้สูตร DAX ใน Measure ของ Power Pivot

Total Sales = SUM(Sales[Amount])
Target Sales = SUM(SalesTarget[TargetAmount])
Sales vs Target % = [Total Sales] / [Target Sales]

เราสามารถใช้ CALCULATE เปลี่ยน Filter Context ในรายงานได้อย่างอิสระ

📌 คำนวณยอดขายเฉพาะสินค้าหมวดหมู่ “Electronics”

Sales Electronics = 
CALCULATE(
    [Total Sales], 
    Products[Category] = "Electronics"
)

📌 นับจำนวนลูกค้าที่ซื้อสินค้ามากกว่า 3 ชิ้น

Customers Buying More Than 3 Items = 
CALCULATE(
    DISTINCTCOUNT(Sales[CustomerID]), 
    Sales[Quantity] > 3
)

📌 คำนวณยอดขาย Year-to-Date (YTD Sales)

YTD Sales = 
CALCULATE(
    [Total Sales], 
    DATESYTD(Sales[Date])
)

📌 Running Total (ยอดขายสะสม)

Running Total = 
CALCULATE(
    [Total Sales],
    FILTER(
        ALL(Sales[Date]),
        Sales[Date] <= MAX(Sales[Date])
    )
)

📌 เปรียบเทียบยอดขายกับปีที่แล้ว (YoY Growth)

เวลาเขียน DAX เราสามารถประกาศตัวแปรด้วย VAR ได้ด้วย ซึ่งดีมากๆ เลย

YoY Growth = 
VAR CurrentYearSales = [Total Sales]  
VAR PreviousYearSales = CALCULATE([Total Sales], SAMEPERIODLASTYEAR(Sales[Date]))  
RETURN  
    (CurrentYearSales - PreviousYearSales) / PreviousYearSales

DAX ช่วยให้เราสามารถคำนวณข้อมูลซับซ้อนแบบ Dynamic ได้ ไม่ต้อง Copy Formula ทับไปมาเหมือน Excel ปกติ

4️⃣ สร้าง Pivot Table / Dashboard ให้พร้อมใช้

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

✅ ใช้ Pivot Table สรุปข้อมูล / ปรับ Show Value as ได้ตามความเหมาะสม
✅ ใช้ Pivot Chart แสดงผลให้ดูเข้าใจง่าย
✅ อาจใช้ Conditional Formatting เพื่อให้ตัวเลขสำคัญดูโดดเด่นขึ้น
✅ เพิ่ม Slicers / Timeline ให้สามารถเลือก Filter บน Table/PivotTable/Pivot Chart ได้แบบ Interactive เลย (แต่ก็สู้ Power BI ไม่ได้นะ)


5️⃣ตั้งให้ Excel Refresh ข้อมูล + ปิดอัตโนมัติ 🔄

💡 ถ้าคุณต้อง Refresh Power Query ทุกวัน โดยไม่ต้องกดเอง และ ให้ Excel ปิดเองอัตโนมัติ นี่คือวิธีทำให้ Excel ทำงานเอง 100% ตั้งแต่เปิดไฟล์ → Refresh → ปิดไฟล์

ซึ่งวิธีที่ผมจำนำเสนอคือ ใช้ Task Scheduler + VBS ซึ่ง เหมาะกับ ไฟล์ที่อยู่ บนเครื่องตัวเอง หรือเซิร์ฟเวอร์ และใช้ได้กับ Excel Desktop โดยที่เราไม่ต้องเสียค่าใช้จ่าย (แต่มีข้อจำกัดคือต้องเปิดเครื่องคอมพ์เราไว้ด้วย)


📌 แนวคิดของ Workflow ที่เราจะทำให้ Excel ทำงานเอง:

  • Task Scheduler สั่งรัน VBS ตามเวลาที่กำหนดเพื่อเปิด Excel
  • ใน VBS จะมีสั่งให้เปิด Excel ที่กำหนดแล้วรัน VBA Macro บนนั้น
  • VBA Macro ใน Excel จะสั่ง Refresh Power Query อัตโนมัติ
  • Excel จะปิดตัวเองอัตโนมัติหลังจาก Refresh เสร็จ

หลายคนสงสัยว่า “ทำไมไม่ใช้แค่ Macro (VBA) ใน Excel อย่างเดียว?”
👉 เหตุผลก็คือ VBA ทำงานได้แค่ใน Excel เท่านั้น 🚀 แต่ VBS (VBScript) สามารถสั่งให้ Windows ควบคุม Excel (ในระดับพื้นฐาน) ได้จากภายนอกเลย โดยที่เราจะแบ่งหน้าที่กันทำงาน คือ

  • VBS (VBScript) เป็นตัวสั่งให้ Excel เปิดขึ้นมาอัตโนมัติ แล้วเรียก Macro ทำงาน ✅
  • VBA (Macro) สั่งงานละเอียด สามารถสั่ง Excel Refresh All (Queries และ Pivot ทั้งหมด) และปิดตัวเองได้

🔥 วิธีที่ดีที่สุด = ใช้ VBS เปิด Excel แล้วให้ VBA ทำงานใน Excel! ซึ่งระบบอัตโนมัติทำงานได้เสถียรกว่าใช้ Task Scheduler สั่งเปิดไฟล์ Excel แล้วรัน Macro ตรงๆ

ทีนี้ขั้นตอนการสร้างไฟล์และ Code ทั้งหมดจะเป็นแบบนี้ครับ

สร้างไฟล์ VBS (AutoRefresh.vbs)

📌 VBS มีหน้าที่:
✔ เปิด Excel อัตโนมัติ
✔ เรียกใช้ Macro ใน Excel

' AutoRefresh.vbs - Improved version
On Error Resume Next

Dim objExcel, objWorkbook
Set objExcel = CreateObject("Excel.Application")
If Err.Number <> 0 Then
    WScript.Echo "Error: ไม่สามารถสร้าง Excel application ได้"
    WScript.Quit 1
End If

objExcel.Visible = False

Set objWorkbook = objExcel.Workbooks.Open("C:\Reports\DailyReport.xlsm")
If Err.Number <> 0 Then
    WScript.Echo "Error: ไม่สามารถเปิดไฟล์ DailyReport.xlsm ได้"
    objExcel.Quit
    WScript.Quit 1
End If

' เรียก Macro AutoRefreshAndClose
objExcel.Run "AutoRefreshAndClose"
If Err.Number <> 0 Then
    WScript.Echo "Error: ไม่สามารถเรียกใช้ Macro AutoRefreshAndClose ได้"
    objWorkbook.Close False
    objExcel.Quit
    WScript.Quit 1
End If

' ปิด Workbook (ถ้า Macro ยังไม่ได้ปิด Excel)
objWorkbook.Close True
objExcel.Quit

Set objWorkbook = Nothing
Set objExcel = Nothing
On Error GoTo 0

📌 บันทึกไฟล์เป็น "C:\Scripts\AutoRefresh.vbs"


สร้าง Macro VBA (AutoRefreshAndClose) ใน Excel

📌 VBA มีหน้าที่:

  • Refresh Power Query อัตโนมัติ
  • รอให้ Refresh เสร็จก่อนทำงานต่อ
  • บันทึกไฟล์
  • ปิด Excel อัตโนมัติ

กด Alt+F11 เข้า Visual Basic Editor แล้ว Insert Module ใหม่ แล้วแปะ code นี้ลงไป

ป.ล. คำสั่ง Application.CalculateUntilAsyncQueriesDone จะใช้ได้ใน Excel 2016 ขึ้นไป นะครับ

Sub AutoRefreshAndClose()
    On Error GoTo ErrHandler
    
    Dim FilePath As String
    
    ' รีเฟรชข้อมูลทั้งหมด
    ThisWorkbook.RefreshAll
    ' รอให้ asynchronous queries ทำงานจนเสร็จ
    Application.CalculateUntilAsyncQueriesDone
    
    ' ปิดการแจ้งเตือนก่อนบันทึกไฟล์ เพื่อป้องกัน prompt ยืนยันการบันทึกทับ
    Application.DisplayAlerts = False
    ThisWorkbook.Save
    Application.DisplayAlerts = True
    
    ' ปิด Excel
    Application.Quit
    Exit Sub
    
ErrHandler:
    MsgBox "AutoRefreshAndClose Error " & Err.Number & ": " & Err.Description, vbCritical, "Error"
    Application.Quit
End Sub

📌 ที่สำคัญ ต้อง บันทึกไฟล์เป็น "Excel Macro-Enabled Workbook (*.xlsm)" ด้วยนะ ไม่งั้น VBA หาย!!


ตั้ง Task Scheduler ให้รัน VBS อัตโนมัติ

📌 Task Scheduler มีหน้าที่:
✔ เรียก VBS ตามเวลาที่กำหนด
✔ ทำให้ Excel เปิด – Refresh – ปิดเอง

วิธีตั้งค่า Task Scheduler

1️⃣ กด Windows + R → พิมพ์ taskschd.msc → กด Enter
2️⃣ กด Action -> Create Basic Task
3️⃣ ตั้งชื่อ Task เช่น "Auto Refresh Excel"
4️⃣ เลือก Daily → ตั้งเวลาเป็น 09:00 AM
5️⃣ เลือก Action → Start a program
6️⃣ ในช่อง Program/script ใส่ Path เพื่อเรียกใช้ wscript.exe ดังนี้

C:\Windows\System32\wscript.exe

7️⃣ ในช่อง Add arguments ให้ใส่ Path ของไฟล์ VBS ที่เราสร้างไว้

"C:\Scripts\AutoRefresh.vbs"

8️⃣ กด Finish → ทดสอบ Run Task

Windows จะเรียกใช้ VBS ตามเวลาที่กำหนด และ VBS จะสั่งให้ Excel เปิด – Refresh – ปิดเอง! (แต่ต้องเปิดคอมพ์ไว้ก่อน 9 โมงเช้านะ ไม่งั้น Task Scheduler ก็รันไม่ได้)


สรุป Workflow อัตโนมัติ 100%

📌 Task Scheduler → สั่งรัน VBS อัตโนมัติตามเวลาที่กำหนด
📌 VBS → เปิด Excel และรัน Macro (VBA)
📌 VBA Macro → สั่ง Refresh Power Query แล้วรอให้เสร็จ
📌 VBA Macro → บันทึกไฟล์และปิด Excel อัตโนมัติ

ป.ล. นอกจากวิธีนี้ เรายังอาจสามารถใช้ Power Automate Desktop สั่งเปิดไฟล์ Excel ขึ้นมา แล้วกดปุ่ม Refresh ก็ได้นะครับ มันอาจมีหลายท่าที่ทำได้

แต่เท่าที่เช็ค ณ ตอนนี้ Power Automate Cloud ไม่สามารถเขียน Office Script ให้ Refresh Power Query ปกติได้ เพราะ Office Scripts ไม่สามารถ Refresh ข้อมูลใน Excel Online ผ่าน Power Automate ได้อย่างสมบูรณ์

  • คำสั่ง PivotTable.refresh ใช้ไม่ได้ใน Flow ของ Power Automate
  • คำสั่ง Workbook.refreshAllDataConnections ใช้ได้แค่กับข้อมูลที่มาจาก Power BI
  • Power Automate ไม่สามารถ Trigger การ Refresh ของสูตรที่ใช้ Workbook Links ได้

ซึ่งตรงนี้ไม่แน่ใจว่าอนาคตจะเปลี่ยนไหมนะครับ


6️⃣ตรวจสอบ+วิเคราะห์ผลจากรายงาน

แม้ว่าเราจะทำให้ Excel อัตโนมัติ 100% แล้ว แต่นั่นไม่ได้หมายความว่าทุกอย่างจะถูกต้องเสมอไป! ✅

การตั้งค่า Automation ช่วยลดเวลาทำงานซ้ำๆ ได้ก็จริง แต่ ข้อผิดพลาด ก็ยังสามารถเกิดขึ้นได้จากหลายปัจจัย เช่น:

  • ข้อมูลต้นทางผิดพลาด → เช่น มีคนกรอกข้อมูลผิด หรือใช้ฟอร์แมตไม่ตรงกับที่ระบบรองรับ
  • ไฟล์ต้นทางมีการเปลี่ยนแปลง → เช่น มีการเพิ่ม/ลบคอลัมน์ ทำให้ Power Query ทำงานผิดพลาด
  • ระบบ Automation มีปัญหา → อาจเกิดจากไฟล์ต้นทางไม่อัปเดต หรือระบบติดขัดจากข้อจำกัดของซอฟต์แวร์
  • สูตรคำนวณหรือ Model มีบั๊ก → เช่น เงื่อนไขใน DAX หรือ Power Pivot ที่ออกแบบไว้แต่เดิมไม่ครอบคลุมทุกกรณี

ทำไมต้องตรวจสอบก่อนส่งรายงาน?

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

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

สิ่งที่ควรทำในขั้นตอนนี้

  • ตรวจสอบความถูกต้องของข้อมูล
    • เช็คว่า Power Query โหลดข้อมูลมาครบหรือไม่ (เรื่องพวกนี้สร้าง Query ที่ช่วยตรวจสอบปัญหาได้ เช่น นับจำนวน, Keep Errors, Keep Duplicates เพื่อให้เห็นปัญหาชัดๆ)
    • ตรวจสอบว่าสูตรคำนวณใน Power Pivot หรือ DAX ให้ผลลัพธ์ที่ถูกต้อง
    • เช็คว่ากราฟ, Pivot Table, และ Dashboard อัปเดตตรงตามที่ควรจะเป็น (ซึ่งใช้ Sense ทางธุรกิจดูได้ว่าเลขน่าจะถูกหรือผิด)
  • วิเคราะห์และสรุปข้อมูล
    • ใช้เวลาที่ประหยัดจากการทำรายงาน มาโฟกัสที่ การสรุป Insight ที่สำคัญ
    • ตั้งคำถามสำคัญ: มีอะไรเปลี่ยนแปลงผิดปกติ? ตัวเลขไหนต้องจับตา?
    • หาแนวทางในการพัฒนาองค์กรจากข้อมูลที่ได้
  • ใช้ AI เป็นเครื่องมือช่วย แต่ต้องคิดเอง
    • ใช้ AI เช่น ChatGPT ใช้ AI เป็น ที่ปรึกษา หรือช่วยเขียนรายงานเกลาภาษาให้สวยและเข้าใจง่ายขึ้นได้
    • แต่ AI ไม่สามารถเข้าใจบริบทธุรกิจของคุณได้ดีเท่าคุณเอง อย่าใช้มันตัดสินใจแทนคุณ
  • บันทึกไฟล์ที่ผ่านการตรวจสอบแล้ว
    • หากรายงานผ่านการตรวจสอบและวิเคราะห์แล้ว ให้บันทึกลงโฟลเดอร์ใหม่ เช่น "ReportsReady"
    • โฟลเดอร์นี้จะเป็นตัวบอกว่า รายงาน พร้อมสำหรับการส่งต่อให้ผู้บริหารหรือทีมงาน

7️⃣แจ้งเตือนหรือส่งรายงานอัตโนมัติ

หลังจากที่เราทำการวิเคราะห์ผลรายงาน แล้วใส่รายงานพร้อมผลการวิเคราะห์ลงใน Folder ReportsReady แล้ว
👉 ขั้นตอนสุดท้ายก็คือ แจ้งเตือนหรือส่งรายงานให้ทีมงาน เพื่อให้แน่ใจว่าทุกคนได้รับข้อมูลล่าสุด โดยเราสามารถทำให้ระบบแจ้งเตือนและส่งรายงานอัตโนมัติได้ 2 วิธี


Option A: ใช้ Automation Tool เช่น Power Automate, n8n, Make

📌 เหมาะกับ:
✅ ไฟล์ที่อยู่บน Cloud (OneDrive, SharePoint, Google Drive, Dropbox)
✅ ต้องการแจ้งเตือนผ่าน Email, Microsoft Teams, Line
✅ ไม่ต้องเปิดเครื่องเอง → Cloud ทำงานให้

💡 พวกโปรแกรม Automate สามารถตั้งค่าให้ “จับตาดูไฟล์” ใน Folder ที่กำหนดว่ามีการเพิ่ม/อัปเดตหรือไม่ (เป็น Trigger แบบหนึ่ง) ถ้ามี Workflow ก็จะทำงาน แล้วส่งแจ้งเตือนไปให้ทีมงานอัตโนมัติ

ซึ่งสามารถแจ้งเตือนผ่านช่างทางต่างๆ ได้หลายช่องทาง เช่น

  • Line Messaging API
  • Microsoft Teams
  • Email
  • App Notification
  • อื่นๆ

ทำให้ทีมงานได้รับการแจ้งเตือนแบบ Real-time ทุกครั้งที่ไฟล์อัปเดต ! 🚀 ซึ่งรายละเอียดต้องไปดูที่เครื่องมือ Automation แต่ละตัวอีกทีนะครับ


Option B: ใช้ Task Scheduler + VBS + VBA ส่งอีเมลผ่าน Outlook

📌 เหมาะกับ:
✅ ไฟล์ที่อยู่บน เครื่องตัวเอง หรือเซิร์ฟเวอร์
✅ ใช้ MS Outlook เป็นตัวส่งอีเมล
✅ ต้องการแนบไฟล์ Excel ไปในอีเมลโดยตรง


วิธีใช้ Task Scheduler + VBS + VBA ส่งอีเมล

📌 Workflow ที่เราจะทำ:
1️⃣ Task Scheduler → เรียกใช้ VBS ตามเวลาที่กำหนด
2️⃣ VBS → เปิด Excel และรัน Macro ที่ส่งอีเมล
3️⃣ VBA ใน Excel → ใช้ MS Outlook สร้างอีเมลและแนบไฟล์รายงาน


โค้ด VBS (AutoSendEmail.vbs)

📌 VBS มีหน้าที่:
✔ เปิด Excel อัตโนมัติ
✔ รัน Macro ที่ส่งอีเมล

On Error Resume Next

Dim objExcel, objWorkbook
Set objExcel = CreateObject("Excel.Application")
If Err.Number <> 0 Then
    WScript.Echo "Error: ไม่สามารถสร้าง Excel application ได้"
    WScript.Quit 1
End If

objExcel.Visible = False

Set objWorkbook = objExcel.Workbooks.Open("C:\ReportsReady\DailyReport.xlsm")
If Err.Number <> 0 Then
    WScript.Echo "Error: ไม่สามารถเปิดไฟล์ DailyReport.xlsm ได้"
    objExcel.Quit
    WScript.Quit 1
End If

' เรียก Macro SendReport
objExcel.Run "SendReport"
If Err.Number <> 0 Then
    WScript.Echo "Error: ไม่สามารถเรียกใช้ Macro SendReport ได้"
    objWorkbook.Close False
    objExcel.Quit
    WScript.Quit 1
End If

' ปิด Workbook และ Excel
objWorkbook.Close True
objExcel.Quit

Set objWorkbook = Nothing
Set objExcel = Nothing
On Error GoTo 0

📌 บันทึกไฟล์เป็น "C:\Scripts\AutoSendEmail.vbs"


โค้ด VBA (SendReport) ใน Excel

📌 VBA มีหน้าที่:
✔ สร้าง Email ใน MS Outlook
✔ แนบไฟล์รายงาน
✔ ส่งอีเมลอัตโนมัติ

Sub SendReport()
    On Error GoTo ErrHandler
    
    Dim OutApp As Object
    Dim OutMail As Object
    Dim AttachmentPath As String
    
    AttachmentPath = "C:\ReportsReady\DailyReport.xlsm"
    
    ' ตรวจสอบว่าไฟล์แนบมีอยู่จริงหรือไม่
    If Dir(AttachmentPath) = "" Then
        MsgBox "ไม่พบไฟล์แนบ: " & AttachmentPath, vbExclamation, "SendReport Error"
        Exit Sub
    End If
    
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
    
    With OutMail
        .To = "your_team@example.com"
        .CC = "manager@example.com"
        .Subject = "Daily Report"
        .Body = "แนบไฟล์รายงานประจำวันที่ " & Format(Date, "dd/mm/yyyy") & " ตามที่อัปเดตไว้"
        .Attachments.Add AttachmentPath
        .Send ' หรือเปลี่ยนเป็น .Display เพื่อเช็คก่อนส่ง
    End With
    
    ' ล้างตัวแปร
    Set OutMail = Nothing
    Set OutApp = Nothing
    Exit Sub
    
ErrHandler:
    MsgBox "SendReport Error " & Err.Number & ": " & Err.Description, vbCritical, "Error"
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

📌 บันทึกไฟล์เป็น "Excel Macro-Enabled Workbook (*.xlsm)"


ตั้ง Task Scheduler ให้รัน VBS อัตโนมัติ

📌 ให้ Task Scheduler เรียกใช้ VBS เพื่อให้ Excel เปิดขึ้นมาแล้วส่งอีเมล

1️⃣ เปิด Task Scheduler (taskschd.msc)
2️⃣ กด Create Basic Task
3️⃣ ตั้งชื่อ Task เช่น "Auto Send Report"
4️⃣ เลือก Daily → ตั้งเวลาเป็น 10:00 AM
5️⃣ เลือก Action → Start a program
6️⃣ ในช่อง Program/script ใส่ Path ของ wscript.exe

C:\Windows\System32\wscript.exe

7️⃣ ในช่อง Add arguments ให้ใส่ Path ของ VBS

"C:\Scripts\AutoSendEmail.vbs"

8️⃣ กด Finish → ทดสอบ Run Task

ทุกวัน เวลา 10:00 AM → ระบบจะเปิด Excel → ส่งอีเมลแนบไฟล์ให้ทีมโดยอัตโนมัติ!


🎯 สรุป: วิธีไหนเหมาะกับคุณ?

วิธีใช้กับไฟล์แบบไหน?ส่งแจ้งเตือนไปที่ไหน?ความซับซ้อน
Power Automate / n8n / Makeไฟล์บน CloudEmail, Teams, Line, App⭐⭐⭐
(ง่ายกว่า แต่อาจมีค่าใช้จ่าย)
Task Scheduler + VBS + VBA (Outlook)ไฟล์บนเครื่องตัวเองEmail (Outlook)⭐⭐⭐⭐
(ต้องตั้งค่ามากกว่า และต้องเปิดเครื่องทิ้งไว้)

📢 แล้วคุณใช้วิธีไหนส่งรายงานอัตโนมัติ? มีปัญหาตรงไหน ลองแชร์กันดูครับ!


🔥 สรุป: เปลี่ยน Excel Manual ให้เป็นระบบอัตโนมัติ 100%! 🔥

หลังจากที่เราเดินทางกันมาตั้งแต่ ดึงข้อมูล → Clean ข้อมูล → คำนวณ → Refresh → แจ้งเตือน
ตอนนี้คุณสามารถทำให้ Excel ทำงานอัตโนมัติได้ครบทุกขั้นตอน


🤖 ทำให้ Excel ทำงานเอง 100% ตาม Workflow นี้

1. ดึงข้อมูลอัตโนมัติ

  • ใช้ Power Query ดึงข้อมูลจากแหล่งต่างๆ
  • ใช้ Automation Tool (Power Automate, n8n, Make) ถ้าต้องดาวน์โหลดไฟล์แนบจาก Email หรือ Cloud

2. Clean ข้อมูลให้อัตโนมัติ

  • ใช้ Power Query ลบแถวหัวตาราง, รวมไฟล์, แปลงฟอร์แมตข้อมูล
  • ใช้ Data Model (Power Pivot) ถ้าต้องคำนวณหลายตาราง

3. ใช้ Power Pivot คำนวณขั้นสูง

  • ใช้ DAX คำนวณ Running Total, Moving Average, YTD, MTD
  • ใช้ Relationship แทน VLOOKUP เมื่อข้อมูล Granularity ไม่เท่ากัน

4. ตั้งให้ Excel Refresh ข้อมูลอัตโนมัติ

  • ใช้ Task Scheduler + VBS + VBA เหมาะมากกับไฟล์ที่อยู่บนเครื่องตัวเอง

5. ตรวจสอบ+วิเคราะห์ผลจากรายงาน

  • ตรวจความถูกต้อง
  • วิเคราะห์ผลเพื่อพัฒนาธุรกิจและองค์กร

6. แจ้งเตือนหรือส่งรายงานอัตโนมัติ

  • ใช้ Power Automate / n8n / Make ส่งแจ้งเตือน Email, Teams, Line
  • ใช้ Task Scheduler + VBS + VBA ส่งอีเมลแนบรายงานผ่าน Outlook

เริ่มใช้ระบบอัตโนมัติกับงานของคุณเลย

  • ไม่ต้องเสียเวลาทำงานซ้ำๆ ทุกวัน Excel จัดการให้เอง
  • ลดความผิดพลาด ข้อมูลอัปเดตตรงเวลาเสมอ
  • มีเวลาไปทำอย่างอื่นที่สำคัญกว่า ไม่ต้องกด Refresh หรือส่งอีเมลเอง

ลองนำไปปรับใช้ดู แล้วอย่าลืมแชร์ว่าลองแล้วเป็นไงบ้างนะ! 🚀


ใครสนใจอยากปูพื้นฐาน Excel ให้แน่นๆ และได้เรียนรู้ Power Query ด้วยนิดหน่อย ลองดู Workshop นี้ได้เลย ตอนนี้กำลังจะอบรมแล้ว

แนะนำ EXCEL LEVEL UP WORKSHOP 2025 🚀

โดย เทพเอ็กเซล พร้อมยกระดับทักษะการใช้ Excel ให้คุณทำงานได้เร็วและแม่นยำยิ่งขึ้น!

✅ ปูพื้นฐานแน่น ๆ + Intro Power Query
อยากทำงานให้เร็วขึ้น แค่ใช้ Excel ให้ถูกวิธี! เลือกรูปแบบการเรียนที่สะดวกสำหรับคุณ:

1️⃣ ONSITE (2 วันเต็ม) – ได้เจอวิทยากรตัวจริง!

  • 📍 15-16 มี.ค. 68 | ⏰ 9:00 – 17:00 น. | 🏨 Sindhorn Midtown Hotel
  • 💰 ราคาพิเศษ 7,500 บาท/ท่าน (รวม VAT) (ปกติ 8,500 บาท)
  • ⭐ Early Bird ชำระก่อน 28 ก.พ. / มา 2 ท่านขึ้นไป / ลูกค้าเก่า Workshop

2️⃣ LIVE ONLINE (6 วัน วันละ 2 ชม.) – เรียนจากที่ไหนก็ได้!

  • 📅 11-13 & 18-20 มี.ค. 68 | ⏰ 20:00 – 22:00 น. | 💻 ผ่าน Zoom
  • 💰 ราคาพิเศษ 4,500 บาท/ท่าน (รวม VAT) (ปกติ 5,500 บาท)
  • ⭐ Early Bird ชำระก่อน 28 ก.พ. / มา 2 ท่านขึ้นไป / ลูกค้าเก่า Workshop

👉 สมัครเลย! ดูรายละเอียดเพิ่มเติมที่นี่ https://www.thepexcel.com/thepexcel-public-workshop-2025/

สอบถามเพิ่มเติม: LINE: @ThepExcelWorkshop ได้เลย


Leave a Reply

Your email address will not be published. Required fields are marked *

Public Training Workshop 2025
อบรม In-House Training

Feedback การใช้งาน AI Chatbot