อัพเดตข้อมูลหุ้นใส่ Excel อัตโนมัติด้วย Power Automate Desktop ตอนที่ 2

ในบทความที่แล้วเราได้ทำการอ่านรายชื่อหุ้นออกมาจาก Excel กันแล้ว ในบทความนี้เราจะมาดูกันต่อว่าเราจะประมวลผลหุ้นแต่ละตัวยังไงกันบ้าง โดยรูปข้างล่างจะแสดงว่าขั้นตอนการประมวลผลหุ้นแต่ละตัว

Power Automate Desktop stock to excel step 2
Power Automate Desktop stock to excel step 2

Action #6: Set variable – ในขั้นตอนนี้เราทำการกำหนดตัวแปรชื่อ Symbol เพื่อให้เราไม่สับสนว่ามันคือค่าอะไรเท่านั้น ในความเป็นจริงเราสามารถตัดขั้นตอนนี้ทิ้งไปได้เลยแล้วอ้างอิงชื่อตัวแปร ExcelRow แทน หรือจะให้ดีไปกว่านั้นในขั้นตอนที่ 5 เราสามารถกำหนดพารามิเตอร์ Store into เป็น Symbol ไปเลยก็ได้

Action #6
ActionSet variable
VariableSymbol
Value%ExcelRow%

Action #7: Launch new Microsoft Edge – ในขั้นตอนนี้ให้ทำการเปิด browser ขึ้นมาโดยเราใช้ Microsoft Edge ในตัวอย่างนี้เพราะคิดว่าทุกเครื่องที่มี Power Automate Desktop น่าจะมี Microsoft Edge อยู่แล้ว แต่หากท่านจะใช้ Google Chrome ก็ได้เหมือนกัน

จุดสำคัญของขั้นตอนนี้คือการกำหนดเว็บไซต์และแทรกตัวแปร Symbol เข้าไปเพื่อให้การเปิดเว็บไซต์ในการวนลูปแต่ละรอบนั้นอ้างอิงถึงหุ้นที่เราสนใจได้ถูกต้อง โดยเราจะดึงข้อมูล factsheet ของหุ้นจากเว็บไซต์ของตลาดหลักทรัพย์ตัวอย่างเช่น PTT – Factsheet – The Stock Exchange of Thailand (set.or.th)

Action #7
ActionLaunch new Microsoft Edge
Launch modeLaunch new Instance
Initial URLhttps://www.set.or.th/en/market/product/stock/quote/%Symbol%/factsheet
Window stateMaximized
Variables producedBrowser

Action #8: Extract data from web page – ขั้นตอนนี้จะมีความแตกต่างจากขั้นตอนอื่นๆเล็กน้อยเพราะเราจะไม่ได้ทำการเลือกค่าพารามิเตอร์บนฟอร์มเท่านั้นแต่เราจะทำการเลือกค่าที่สนใจจากหน้าเว็บ โดยอันดับแรกให้เลือกแอคชั่น Extract data from web page มาใส่ใน Flow ของเรา

Power Automate Desktop stock to excel action 8
Power Automate Desktop stock to excel action 8

จากนั้นเปิด action ขึ้นมาจะเห็นมันเขียนระบุให้เราทำ live web helper ได้ โดยให้เราเปิดหน้าเว็บเป้าหมายขึ้นมาอยู่บน foreground จากนั้นจะเห็นว่าหากเราเลื่อนเมาส์ไปตรงไหนก็ตามจะมีกรอบสีแดงระบุเอาไว้ให้รู้ว่าข้อมูลที่ได้จะเป็นอะไรบ้าง เมื่อเราได้จุดที่เราสนใจแล้วก็ให้เราคลิกขวา แล้วเลือก Extract element value แล้วเลือก Text จากนั้นกด Finish

Power Automate Desktop stock to excel action 8.2
Power Automate Desktop stock to excel action 8.2

ถึงขั้นตอนนี้หากเราลองรัน Flow ดูจะได้ผลลัพธ์ของ DataFromWebPage ดังรูปด้านล่าง

Power Automate Desktop stock to excel action 8 result
Power Automate Desktop stock to excel action 8 result

Action #9: Set variable – ขั้นตอนนี้ก็คล้ายๆกับขั้นตอนที่ 6 คือ การกำหนดชื่อตัวแปรเพื่อให้ Flow ของเราอ่านง่ายขึ้นเท่านั้น โดยเราจะนำค่าที่ได้จากการอ่านค่าใน web มาใส่ลงตัวแปรชื่อ StockSummary แต่ค่าที่อ่านมาและเก็บอยู่ใน DataFromWebPage จะมีข้อมูลเป็นประเภทตาราง ดังนั้นเราต้องอ่านค่าจาก DataFromWebPage[0][0]

Action #9
ActionSet variable
VariableStockSummary
Value%DataFromWebPage[0][0]%

Action #10: Split text – จากนั้นเราจะทำการแยกค่าของ StockSummary ออกมาเป็น list โดยการตัดด้วย New line character (ตัวขึ้นบรรทัดใหม่)

Action #10
ActionSplit text
Text to split%StockSummary%
Delimiter typeStandard
Standard delimiterNew line
Times1
Variables producedTextList

Action 11: For each – ให้เราวนลูปรอบ TextList เพื่อจะมาอ่านค่าที่เราสนใจกรอกใส่ Excel

Action #11
ActionFor each
Value to iterate%TextList%
Store intoCurrentItem

รูปด้านล่างแสดง flow ที่เราจะทำการวนอ่านค่ามาแล้วเขียนกลับเข้า Excel

Power Automate Desktop stock to excel extract numbers
Power Automate Desktop stock to excel extract numbers

Action #12: Parse text – ในขั้นตอนนี้เราจะใช้ Regular Expression เพื่อเลือกอ่านค่าจาก text ที่ได้มาโดยเราจะสนใจแค่ค่าที่เป็นตัวเลขในรูปแบบ ###.## เท่านั้น โดยจะมีจำนวนตัวเลขกี่ตัวก็ได้

Action #12
ActionParse text
Text to parse%CurrentItem%
Text to find[0-9]+.[0-9]+$
Is regular expressionChecked
Start parsing at position0
First occurrence onlyChecked
Ignore caseChecked
Variables producedPosition, Match

ตัวแปร Position ซึ่งเป็นผลลัพธ์จากการ Parse text ซึ่งถ้าหาก Parse text เจอค่าที่เป็นตัวเลขจะได้ Position ออกมาเป็นตำแหน่งที่เจอซึ่งจะมีค่ามากกว่าหรือเท่ากับศูนย์ หากว่าไม่เจอจะได้ผลลัพธ์มาเป็น -1 ในกรณีนี้เราสนใจแค่กรณีที่เจอตัวเลขเท่านั้นดังนั้น ใน Action ที่ 13 เราจึงใช้ condition ให้ทำงานเมื่อ Position >= 0 เท่านั้น

Action #14: เราทำการเปลี่ยน Match ให้เป็นตัวเลขเพื่อให้เขียนค่าตัวเลขไปบน excel โดย Match คือผลลัพธ์ที่ได้จากการ Parse text ซึ่งจะเป็นแค่ตัวเลขที่เราสนใจเท่านั้นและตัดตัวอักษรออกทั้งหมด

Action #15: เราใช้คำสั่ง Switch เพื่อเลือกว่าค่าปัจจุบันในลูปเป็นค่าอะไร จากในตัวอย่างของเรา เราสนใจค่า EV/EBITDA, Price, P/E และ P/BV ดังนั้นเราจะเช็คดูว่าค่าที่วนลูปอยู่ปัจจุบันคืออะไรแล้วเลือกใส่ข้อมูลลงใน Excel ตามค่าที่เป็น ตัวอย่างเช่น การใส่ค่า EV/EBITDA จะใช้ Action Case ตัวตัวอย่างข้างล่าง

Action #16
ActionCase
OperatorContains
Value to compareEV/EBITDA
Ignore caseChecked
Action #17
ActionWrite to Excel worksheet
Excel instance%ExcelInstance%
Value to write%NumberValue%
Write modeOn specified cell
ColumnB
Row%CurrentExcelRow%

จากตัวอย่างของ Switch/case สำหรับ EV/EBITDA เราจะหาข้อมูลบรรทัดที่มีคำว่า EV/EBITDA ถ้าหากใช่ เราก็จะทำการเขียนค่าตัวเลขที่เรา parse เอาไว้ลง Excel คอลัมน์ B ซึ่งเป็นคอลัมน์ที่เราระบุไว้ก่อนนี้สำหรับ EV/EBITDA จากนั้นให้เราทำแบบเดียวกันกับ Price, P/E และ P/BV

เมื่อประมวลผลหุ้นจบไปหนึ่งตัวก็ให้เราปิด Browser ไปโดยใช้แอคชั่น Close web browser และจากนั้นอย่าลืมเพิ่มค่า CurrentExcelRow เพื่อที่เราจะได้ขยับ cursor ของเรามาเขียน excel ในบรรทัดถัดไปโดยใช้แอคชั่น Increase variable

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

Power Automate Desktop final result
Power Automate Desktop final result

ก็จบกันไปแล้วสำหรับบทความสอนการใช้ Power Automate Desktop ช่วยไรอ่านข้อมูลจากเว็บมาใส่ลง Excel หวังว่าบทความนี้จะเป็นประโยชน์กับหลายๆคนนะครับ หากมีคำถามหรือข้อชี้แนะอะไรก็ใส่มาใน comment ได้เลยนะครับ

Leave a Comment