คงปฏิเสธไม่ได้ว่า internet เป็นแหล่งข้อมูลที่ใหญ่ที่สุดในโลกขณะนี้ แล้วในชีวิตประจำวันจะต้องมีการหาข้อมูลจาก internet เพื่อมาประมวลผล เช่นหาข้อมูลแล้วมากรอกใส่ excel เพื่อใช้ทำการเปรียบเทียบ หรือทำ chart ต่อไป แต่งานเหล่านี้หากมานั่งทำ manual คงกินเวลาน่าดู ในบทความนี้เราจะมาดูวิธีการอัพเดตข้อมูลหุ้นใส่ Excel อัตโนมัติด้วย Power Automate Desktop กัน โดยข้อมูลหุ้นก็มาจาก internet นั่นเอง
ในบทความก่อนหน้าเราได้พูดถึงการใช้ power automate มาช่วยในการอ่านข้อมูลจาก PDF เพื่อนำมาใส่ไปที่ Excel ไปแล้ว โดยสามารถกลับไปดูได้ที่นี่
เรามาดูภาพรวมสิ่งที่เราจะทำกันในวันนี้กันก่อนกันก่อน จากรูปด้านล่างจะเห็นว่า Power Automate flow ของเราในวันนี้จะรับ inputs มาสองอย่าง คือ
- ไฟล์ Excel ที่มีรายการหุ้นที่เราสนใจ โดยในตัวอย่างมีอยู่สามตัว แต่เราจะมีมากกว่านี้หรือน้อยกว่านี้ก็ได้
- ข้อมูลหุ้นจากอินเตอร์เน็ต โดยในบทความนี้เราจะดึงข้อมูล stock factsheet จากเว็บไซต์ของตลาดหลักทรัพย์กัน
โดย Power Automate จะวนอ่านรอบรายการหุ้นที่สนใจจาก Excel ทีละตัวจากนั้นก็เข้าไปเว็บไซต์เพื่อดึงข้อมูลออกมาแล้วกรอกข้อมูลที่เราสนใจกลับไปใส่เข้า Excel และทำการบันทึก
หลังจากเห็นภาพกันแล้วว่าเราจะทำอะไรกันมาเริ่มลงมือกันเลยดีกว่า โดยขั้นตอนแรกให้เริ่มจากการสร้างไฟล์ Excel ขึ้นมาแล้วเลือกระบุหุ้นที่เราสนใจใส่เอาไว้ใน column A โดยในตัวอย่างผมเลือกมาแค่สามหุ้นคือ PTT, CPALL, AOT จะได้ไม่ใช้เวลารันนานเกินไป และเพื่อความง่ายเราจะดึงข้อมูลแค่ EV/EBITDA, Price, P/E, P/BV นะครับ ให้สร้างไฟล์และบันทึกเป็นชื่ออะไรก็ได้ตามตัวอย่างข้างล่างนี่เลย
จากนั้นให้เราเปิด Power Automate Desktop ขึ้นมาแล้วเริ่มสร้าง Flow ใหม่ขึ้นมาได้เลย โดยโครงร่างเริ่มต้นของ Flow จะเป็นดังรูปข้างล่าง
เราจะมาดูรายละเอียด Action แต่ละตัวใน Flow ของเรากันเลย
Action #1: Launch Excel – ในขั้นตอนนี้เราจะสั่งให้ Power Automate เปิดไฟล์ Excel ขึ้นมาในโหมด Read/Write โดยกำหนด Parameter ตามตารางข้างล่างเลย
Action # | 1 |
Action | Launch Excel |
Launch Excel | and open the following document |
Document Path | เลือกไฟล์ Excel ที่เราสร้างไว้ก่อนนี้ |
Make instance visible | Checked |
Open as ReadOnly | Unchecked |
Variables Produced | ExcelInstance |
Action #2: Set Variable – ในขั้นตอนนี้เราจะกำหนดตัวแปร CurrentExcelRow ไว้สำหรับทำการกำหนดจุดเริ่มอ่านชื่อหุ้นและยังใช้ในอนาคตสำหรับการระบุบรรทัดที่เราจะให้ Power Automate เขียนข้อมูลกลับเข้ามาอีกด้วย
Action # | 2 |
Action | Set Variable |
Variable | CurrentExcelRow |
Value | 2 |
Action #3: Get first free row on column from Excel worksheet – ในขั้นตอนนี้เราต้องการหาบรรทัดแรกใน Column A ที่ไม่มีข้อมูลหรือว่างๆอยู่นั่นเอง โดยเราจะใช้ข้อมูลนี้ในการกำหนดว่าจะให้ Power Automate อ่านข้อมูลไปถึงบรรทัดไหน ดังนั้นหากเราใส่ข้อมูลหุ้นที่สนใจไว้ 10 รายการ PAD ก็จะอ่านทั้ง 10 รายการ
Action # | 3 |
Action | Get first free row on column from Excel worksheet |
Excel instance | %ExcelInstance% |
Column | A |
Variables produced | FirstFreeRowOnColumn |
Action #4: Read from Excel worksheet – ขั้นตอนนี้เป็นการอ่านข้อมูลหุ้นทั้งหมดที่เราสนใจมาเก็บไว้ โดยจุดสำคัญใน action นี้คือการกำหนด Start row และ End row โดยจะเห็นว่าเรากำหนด Start row ด้วยตัวแปร %CurrentExcelRow% ที่เรากำหนดไว้ในตอนต้น โดยจะมีค่าเป็น 2 ซึ่งก็คือบรรทัดแรกที่มีข้อมูลหุ้นใน excel ของเรา
ส่วน End row นั้นเรากำหนดให้เห็นค่า %FirstFreeRowOnColumn -1% ซึ่งเป็นการบอกว่าให้เอาค่าตัวแปรที่เราได้จากการหาบรรทัดแรกใน column A ที่ว่างอยู่ใน Action #3 มาลบออกด้วยหนึ่ง ซึ่งก็จะได้เป็นบรรทัดสุดท้ายที่มีชื่อหุ้นอยู่นั่นเอง
Action # | 4 |
Action | Read from excel worksheet |
Excel instance | %ExcelInstance% |
Retrieve | Values from a range of cells |
Start column | A |
Start row | %CurrentExcelRow% |
End column | A |
End row | %FirstFreeRowOnColumn – 1% |
Variable produced | ExcelData |
Action #5: For each – ในขั้นตอนนี้ให้เราทำการวนลูปอ่านรายการหุ้นทั้งหมดที่เราได้จากขั้นตอนที่แล้วมาประมวลผลทีละตัว
Action # | 5 |
Action | For each |
Value to iterate | %ExcelData% |
Store into | ExcelRow |
จาก 5 ขั้นตอนแรกเราได้เตรียมการรับ Input รายการหุ้นจาก Excel แล้ว หากเราหยุดแล้วลองรัน Flow จะเห็นว่า Flow ทำการรันอ่านค่าชื่อหุ้นทั้งหมดมารอประมวลผล ซึ่งในบทความตอนต่อไปจากนี้เราจะมาดูวิธีการประมวลผลหุ้นแต่ละตัวกันว่ามีขั้นตอนอย่างไรบ้าง