
เป็นเวลาหลายทศวรรษ เมื่อใดก็ตามที่ผู้ใช้ Excel ต้องการสร้างระบบอัตโนมัติสำหรับงานที่ต้องทำซ้ำๆ คำตอบมักจะเป็นคำตอบเดียวกันเสมอ นั่นคือ Visual Basic for Applications (VBA) แม้ว่าจะมีประสิทธิภาพสูงมาก แต่ VBA ก็จำเป็นต้องมีความรู้ด้านการเขียนโปรแกรม โดยจะทำงานเฉพาะภายในอีโคซิสเต็มของเดสก์ท็อป Microsoft Office เท่านั้น และอาจเป็นเรื่องยากสำหรับผู้เริ่มต้นใช้งาน ปัจจุบันมีทางเลือกใหม่ที่ทันสมัยและทำงานบนคลาวด์ นั่นคือ Microsoft Power Automate
Power Automate (หรือชื่อเดิมคือ Microsoft Flow) ช่วยให้คุณสร้างเวิร์กโฟลว์อัตโนมัติระหว่างแอปและบริการที่คุณชื่นชอบเพื่อซิงค์ไฟล์ รับการแจ้งเตือน รวบรวมข้อมูล และอื่นๆ อีกมากมาย ที่ดีที่สุดคือคุณไม่จำเป็นต้องมีความรู้เรื่องการเขียนโค้ดก็สามารถเริ่มต้นใช้งานได้ ในคู่มือฉบับสมบูรณ์นี้ เราจะมาสำรวจวิธีที่คุณสามารถใช้ Power Automate เพื่อสร้างระบบอัตโนมัติใน Excel ได้อย่างราบรื่นโดยไม่ต้องเขียน VBA เลยแม้แต่บรรทัดเดียว
ก่อนที่จะเจาะลึกถึง "วิธีการ" สิ่งสำคัญคือต้องเข้าใจ "เหตุผล" ก่อน แม้ว่าการเรียนรู้ พื้นฐาน VBA: โปรแกรม Excel แรกของคุณ จะยังคงเป็นทักษะที่มีค่าสำหรับการจัดการสเปรดชีตที่ซับซ้อนบนเดสก์ท็อป แต่ Power Automate นั้นโดดเด่นกว่าในโลกการทำงานยุคใหม่ที่เชื่อมต่อถึงกัน
นี่คือตารางเปรียบเทียบสั้นๆ ว่าควรใช้เครื่องมือใดในสถานการณ์ใด:
| คุณสมบัติ | Excel VBA | Power Automate |
|---|---|---|
| สภาพแวดล้อม | เดสก์ท็อป (ออฟไลน์เป็นหลัก) | คลาวด์ (ต้องใช้อินเทอร์เน็ต) |
| ความยากในการเรียนรู้ | สูง (ต้องมีความรู้ด้านการเขียนโค้ด) | ต่ำ (อินเทอร์เฟซแบบลากแล้ววางที่เข้าใจง่าย) |
| การเชื่อมต่อภายนอก | ยาก (ต้องใช้ API ที่ซับซ้อน) | รองรับการเชื่อมต่อกับแอปพลิเคชันนับร้อยโดยตรง |
| ประเภทของทริกเกอร์ | เหตุการณ์ในเวิร์กบุ๊ก (เปิด, คลิก, เปลี่ยนแปลงข้อมูล) | เหตุการณ์ภายนอก (อีเมล, การส่งฟอร์ม, Webhook) |
หากเป้าหมายของคุณคือการทำระบบป้อนข้อมูลอัตโนมัติจากแหล่งที่มาภายนอก, ส่งอีเมลอัตโนมัติตามข้อมูลในสเปรดชีต หรือเชื่อมต่อ Excel กับซอฟต์แวร์เช่น Salesforce, SharePoint หรือ Outlook แล้วล่ะก็ Power Automate คือตัวเลือกที่ดีที่สุดของคุณ อย่างไรก็ตาม หากคุณเน้นไปที่ การทำรายงานอัตโนมัติด้วย Excel VBA เพื่อจัดรูปแบบไฟล์ในเครื่องคอมพิวเตอร์นับร้อยไฟล์ VBA ก็ยังคงเป็นแชมป์ในด้านนี้
ใน Power Automate ลำดับการทำงานอัตโนมัติจะเรียกว่า Flow โดยทุกๆ Flow จะประกอบด้วยองค์ประกอบหลัก 3 ส่วน ได้แก่:
เพื่อให้การสร้างระบบอัตโนมัติสำหรับ Excel ด้วย Power Automate สำเร็จลุล่วง การตั้งค่าของคุณต้องตรงตามข้อกำหนดที่สำคัญสองประการ:
เนื่องจาก Power Automate เป็นบริการบนคลาวด์ จึงไม่สามารถทำงานร่วมกับไฟล์ Excel ที่บันทึกไว้ในไดรฟ์ `C:` บนคอมพิวเตอร์ของคุณได้อย่างเสถียร เวิร์กบุ๊กของคุณจะต้องถูกบันทึกไว้ใน OneDrive for Business หรือ SharePoint Document Library
Power Automate ไม่สามารถวางข้อมูลลงในเวิร์กชีตที่ว่างเปล่าเฉยๆ ได้ มันต้องการขอบเขตที่ชัดเจน คุณต้องจัดรูปแบบช่วงข้อมูลเป้าหมายของคุณให้เป็นตาราง Excel (Excel Table) อย่างเป็นทางการเสียก่อน โดยทำตามนี้:
มาดูสถานการณ์จำลองที่ใช้งานได้จริงกัน: การบันทึกข้อมูลติดต่อที่เข้ามาทางอีเมลลงในสเปรดชีต Excel โดยอัตโนมัติ นี่คือตัวอย่างที่สมบูรณ์แบบของ วิธีที่สตาร์ทอัพประหยัดเวลาได้ถึง 20 ชั่วโมงต่อสัปดาห์ด้วยระบบอัตโนมัติของ Excel โดยการลดขั้นตอนการป้อนข้อมูลแบบแมนนวล
สร้างไฟล์ Excel ใหม่ใน OneDrive โดยตั้งชื่อว่า "Email_Log.xlsx" สร้างตารางพร้อมส่วนหัว (Header) ดังต่อไปนี้:
จัดรูปแบบช่วงข้อมูลนี้ให้เป็นตารางและตั้งชื่อว่า "EmailLogTable" จากนั้นบันทึกและปิดไฟล์
เข้าสู่ระบบ Power Automate (make.powerautomate.com) ที่แถบด้านซ้ายมือ ให้คลิก Create จากนั้นเลือก Automated cloud flow
ตั้งชื่อ Flow ของคุณว่า "Log Incoming Emails" ในกล่องค้นหา "Choose your flow's trigger" ให้พิมพ์คำว่า "Outlook" เลือก When a new email arrives (V3) - Office 365 Outlook แล้วคลิก Create
ในหน้าการออกแบบ Flow ให้คลิกที่กล่อง Trigger คุณสามารถระบุพารามิเตอร์ต่างๆ ได้ที่นี่ เช่น ให้ทริกเกอร์ทำงานเฉพาะกับอีเมลที่มีตัวกรองหัวข้อที่กำหนด (เช่น "Inquiry") สำหรับตัวอย่างนี้ เราจะปล่อยให้ทริกเกอร์ทำงานกับทุกอีเมลที่เข้ามาในกล่องจดหมาย (Inbox)
คลิกที่ปุ่ม + New step ค้นหาคำว่า "Excel" แล้วเลือกคอนเนกเตอร์ Excel Online (Business) จากรายการ Action ให้เลือก Add a row into a table
จากนั้น ให้ระบุตำแหน่งที่ตั้งของไฟล์:
เมื่อคุณเลือกตารางแล้ว Power Automate จะแสดงส่วนหัวของคอลัมน์ที่คุณสร้างขึ้นในขั้นตอนที่ 1 โดยอัตโนมัติ ให้คลิกที่แต่ละช่องเพื่อกำหนดเนื้อหาแบบไดนามิกหรือ "Dynamic content" (ข้อมูลที่ดึงมาจากทริกเกอร์อีเมล):
คลิก Save เพียงเท่านี้คุณก็สร้างระบบอัตโนมัติที่ใช้งานได้จริงอย่างสมบูรณ์โดยไม่ต้องใช้ VBA เลยแม้แต่บรรทัดเดียว! ลองส่งอีเมลทดสอบไปยังบัญชีของคุณ แล้วดูตาราง Excel ที่มีข้อมูลเพิ่มขึ้นมาโดยอัตโนมัติ
ข้อควรระวังประการหนึ่งของ Power Automate คือ ข้อมูลที่ดึงเข้ามาอาจไม่ได้มีรูปแบบตามที่คุณต้องการเป๊ะๆ ตัวอย่างเช่น Received Time จากตัวอย่างอีเมลของเรา จะนำเข้ามาในรูปแบบ Timestamp ของ ISO 8601 ที่ดูยุ่งเหยิง (เช่น 2023-11-28T14:32:00Z)
แทนที่จะพยายามแปลงค่าโดยใช้ Expression ที่ซับซ้อนใน Power Automate คุณสามารถพึ่งพาสูตร Excel มาตรฐานในตารางของคุณได้เลย ให้เพิ่มคอลัมน์ใหม่ในตาราง Excel ของคุณโดยตั้งชื่อว่า "Clean Date" เนื่องจากคุณกำลังใช้งานรูปแบบ Excel Table อย่างเป็นทางการ คุณจึงสามารถเขียนสูตรในแถวแรก แล้วมันจะคัดลอกลงมาให้โดยอัตโนมัติทุกครั้งที่ Power Automate เพิ่มแถวใหม่
หากต้องการแยกเฉพาะวันที่ออกจาก Timestamp คุณสามารถใช้ฟังก์ชัน LEFT และ VALUE ร่วมกัน โดยครอบไว้ภายใต้การจัดรูปแบบมาตรฐาน:
=VALUE(LEFT([@[Date Received]], 10))
จัดรูปแบบคอลัมน์ใหม่นี้ให้เป็น Short Date ใน Excel ตอนนี้ ทุกครั้งที่ Flow ทำงาน Excel จะทำหน้าที่จัดการและแปลงข้อมูลให้ทันที
คุณยังสามารถใช้โอกาสนี้ในการอ้างอิงข้อมูลที่เข้ามาแบบไขว้กันได้อีกด้วย ตัวอย่างเช่น หากคุณต้องการตรวจสอบว่าอีเมลของผู้ส่งเป็นของลูกค้าที่มีอยู่แล้วในเวิร์กชีตอื่นหรือไม่ คุณสามารถใช้ INDEX MATCH: สุดยอดวิธีการค้นหาข้อมูล ลงในตารางอัตโนมัติของคุณได้โดยตรง:
=IFERROR(INDEX(Clients!B:B, MATCH([@[Sender Email]], Clients!A:A, 0)), "New Lead")
ด้วยการตั้งค่าเช่นนี้ สเปรดชีตของคุณจะกลายเป็นฐานข้อมูลที่มีชีวิต ซึ่งสามารถจัดหมวดหมู่ข้อมูลได้โดยอัตโนมัติ
การเพิ่มแถวลงในตารางเป็นเพียงแค่จุดเริ่มต้นเท่านั้น Power Automate ยังมี Action สำหรับ Excel ที่ทรงพลังอีกหลายตัว:
ลองจินตนาการว่าคุณต้องส่งสรุปข้อมูลยอดขายทุกวันศุกร์เวลา 17.00 น. คุณสามารถสร้าง Scheduled cloud flow ที่ตั้งเวลาให้ทำงานทุกสัปดาห์ได้ Flow นี้สามารถใช้ Action "List rows present in a table" เพื่อดึงข้อมูลของสัปดาห์นั้น ใช้ Operation "Create HTML table" เพื่อจัดรูปแบบข้อมูล และใช้คอนเนกเตอร์ Outlook เพื่อส่งข้อมูลออกไป สิ่งนี้ทำหน้าที่เป็นทางเลือกที่ยอดเยี่ยมในการหลีกเลี่ยงการทำรายงานด้วยมาโคร (Macro) ที่ซับซ้อน
สำหรับการจัดการข้อมูลขั้นสูงยิ่งขึ้นก่อนที่ข้อมูลจะถูกส่งมายัง Excel คุณอาจต้องการศึกษา Power Query: นำเข้าและแปลงข้อมูลอย่างมือโปร ซึ่งถือเป็นเพื่อนคู่คิดที่ยอดเยี่ยมสำหรับ Power Automate
เมื่อคุณสร้าง Flow ที่ซับซ้อนขึ้น คุณอาจเจออุปสรรคที่พบบ่อยบางอย่าง และนี่คือวิธีแก้ไข:
หากมีคนเปิดไฟล์ Excel อยู่ในแอปเดสก์ท็อปและไฟล์นั้นไม่ได้ซิงค์กับ OneDrive อย่างถูกต้อง Power Automate อาจไม่สามารถเพิ่มแถวได้ ตรวจสอบให้แน่ใจเสมอว่าไฟล์ของคุณได้เปิด AutoSave ไว้และบันทึกอยู่ในพื้นที่คลาวด์ที่แชร์ร่วมกันเพื่อป้องกันปัญหาการล็อกไฟล์
หากคุณลบตาราง Excel และสร้างใหม่ Power Automate จะสูญเสียการเชื่อมต่อ แม้ว่าคุณจะตั้งชื่อตารางใหม่เหมือนเดิมเป๊ะๆ ก็ตาม นั่นเป็นเพราะ Excel จะกำหนดรหัสตัวระบุเฉพาะ (Unique Identifier) ที่ซ่อนไว้ให้กับทุกตาราง หากคุณสร้างตารางใหม่ คุณจะต้องกลับไปที่ Flow ของคุณ เลือกตารางใหม่จากเมนูแบบเลื่อนลง และจับคู่ Dynamic content ใหม่อีกครั้ง
เมื่อใช้ Action "List rows present in a table" ค่าเริ่มต้นของ Power Automate จะจำกัดจำนวนแถวที่ดึงกลับมาได้ที่ 256 แถว หากตารางของคุณมี 1,000 แถว คุณจะไม่ได้ข้อมูลทั้งหมด วิธีแก้ไขคือให้คลิกจุดสามจุด (...) ที่ตัว Action จากนั้นเลือก Settings เปิดใช้งาน Pagination และกำหนดขีดจำกัด (Threshold) เป็นตัวเลขที่คุณต้องการ (สูงสุด 100,000 แถว)
การเปลี่ยนจากการป้อนข้อมูลด้วยตนเองมาเป็น Power Automate ต้องใช้การปรับเปลี่ยนวิธีคิดที่คุณมีต่อสเปรดชีต คุณไม่ได้เป็นเพียงแค่คนกรอกข้อมูลลงเซลล์อีกต่อไป แต่คุณกำลังออกแบบระบบข้อมูล และเพื่อให้ระบบเหล่านี้ทำงานได้อย่างไร้ที่ติ คุณจำเป็นต้องมีสูตร Excel ที่ทรงพลังในตารางของคุณเพื่อจัดการกับข้อมูลอัตโนมัติที่ถูกส่งเข้ามา
หากคุณเคยประสบปัญหาในการนำฟังก์ชันอย่าง VLOOKUP, INDEX, MATCH หรือคำสั่ง IF ซ้อนกันมาประยุกต์ใช้เพื่อประมวลผลข้อมูลที่รับมาจาก Power Automate แล้วล่ะก็ GPTExcel สามารถช่วยคุณได้ เพียงแค่อธิบายความต้องการของคุณเป็นภาษาพูดธรรมดา เช่น "ฉันต้องการสูตรที่ตรวจสอบคอลัมน์วันที่แบบอัตโนมัติ และแสดงคำว่า 'Overdue' หากมีอายุเกิน 30 วัน" และ GPTExcel ก็จะสร้างสูตรที่ถูกต้องพร้อมนำไปวางให้คุณได้ทันที
Power Automate เวอร์ชันพื้นฐานนั้นรวมอยู่ในบริการ Microsoft 365 สำหรับธุรกิจและการศึกษาส่วนใหญ่แล้ว ซึ่งครอบคลุมถึงคอนเนกเตอร์มาตรฐาน เช่น Excel Online, Outlook และ SharePoint แต่สำหรับคอนเนกเตอร์ระดับพรีเมียม (เช่น Salesforce หรือ Custom API) จะต้องใช้สิทธิ์การใช้งาน (License) แบบพรีเมียมของ Power Automate แยกต่างหาก
ทำได้ แต่มีข้อควรระวัง คุณสามารถใช้ Action "Run script" ใน Power Automate เพื่อเรียกใช้ Office Scripts (ซึ่งเป็นทางเลือกใหม่บนคลาวด์ของ Microsoft ที่ใช้แทน VBA โดยเขียนด้วยภาษา TypeScript) อย่างไรก็ตาม มันไม่สามารถเรียกใช้งานมาโคร VBA แบบดั้งเดิมในไฟล์ `.xlsm` จากบนคลาวด์ได้โดยตรงหากไม่ได้ใช้ Data Gateway ในเครื่อง (On-premises) ซึ่งมีความซับซ้อน
ทริกเกอร์แต่ละประเภทมีช่วงเวลาในการตรวจสอบ (Polling interval) ที่แตกต่างกัน แม้ว่าทริกเกอร์บางประเภท (เช่น การกดปุ่ม หรือ HTTP request) จะทำงานทันที แต่ทริกเกอร์แบบ Polling (เช่น "When a new file is created" หรือ "When an email arrives") อาจใช้เวลาสักครู่ในการตรวจจับเหตุการณ์ ทั้งนี้ขึ้นอยู่กับระดับสิทธิ์การใช้งาน Microsoft 365 ของคุณ
ได้แน่นอน! Power Automate ไม่ได้ถูกจำกัดอยู่เพียงแค่ระบบนิเวศของ Microsoft เท่านั้น มีคอนเนกเตอร์ Google Sheets ที่รองรับการทำงานอย่างสมบูรณ์แบบ ซึ่งช่วยให้คุณเพิ่มแถว ดึงข้อมูล และอัปเดตข้อมูลใน Google Workspace ได้เหมือนกับที่คุณทำใน Excel Online
ค้นพบวิธีทำระบบอัตโนมัติสำหรับงาน Excel โดยไม่ต้องใช้ VBA ด้วย Power Automate เรียนรู้วิธีสร้าง Flow ที่ทำงานตาม Event, ประมวลผลข้อมูล และเชื่อมต่อกับแอปอื่นๆ
ค้นพบวิธีสร้างระบบรายงานอัตโนมัติใน Excel ด้วย VBA เรียนรู้วิธีดึงข้อมูล แทรกสูตร จัดรูปแบบเซลล์ และส่งออกรายงานพร้อมโค้ดแบบทีละขั้นตอน
เริ่มต้นเขียนโปรแกรมใน Excel ด้วย VBA เรียนรู้แท็บ Developer, ตัวแปร, ลูป, เงื่อนไข และวิธีเขียนมาโครแรกของคุณให้ใช้งานได้จริงตั้งแต่เริ่มต้น