การใช้ For each เพื่ออ่านค่าใน Excel ด้วย Power Automate Desktop

by

จากบทความในครั้งก่อน เรื่อง อ่าน Excel ด้วย Power Automate Desktop ได้สอนคำสั่งต่างๆ ใน Excel ไปแล้ว ได้แก่

  • Launch Excel
  • Get first free column/row from Excel worksheet
  • Read from Excel worksheet
  • Close Excel

โดยในบทความนั้น เราให้โรบอทเอาค่าที่อ่านได้จาก Excel range เก็บในตัวแปรชื่อ ExcelData แล้วใช้คำสั่ง Write text to file เพื่อแสดงค่าที่อ่านได้ในโปรแกรม text editor (Notepad)

ผลลัพธ์ที่ได้จะมีสัญลักษณ์ comma(,) คั่นระหว่างค่าในบรรทัดเดียวกัน และขึ้นบรรทัดใหม่สำหรับค่าที่อยู่บรรทัดถัดไป

ซ้าย-ค่าในไฟล์ Excel ที่ให้โรบอทอ่าน, ขวา-ค่าในไฟล์ Notepad ที่ให้โรบอทเขียน

ในบทความนี้จะสอนการใช้งานคำสั่ง For each เพื่ออ่านค่าทีละบรรทัดในคอลัมน์ที่เราสนใจ โดยจะให้อ่านค่าในคอลัมน์ “Name” ไปทีละค่า

Flow จากครั้งที่แล้ว

ครั้งก่อนเราใช้ Write text to file เพื่อให้เห็นเรื่องการตั้งค่า first line of range contains column names แต่ครั้งนี้เราไม่ได้ใช้แล้วจะ disable action ไว้หรือ delete ก็ได้

กดที่จุด 3 จุดของ action แล้วเลือก disable action หรือ delete

For each

parameter “Value to iterate” ให้ใส่ตัวแปรที่ต้องการทำซ้ำ สามารถใส่ตัวแปรที่เป็น list, data row หรือ data table ก็ได้ ในที่นี้จะให้ทำซ้ำในตัวแปร ExcelData ซึ่งเป็นตัวแปรประเภท data table แล้วกด Save

รับค่า list, data row, หรือ data table เก็บในตัวแปรชื่อ CurrentItem

จะได้โฟลว์ตามรูปด้านล่าง (ลบคำสั่ง Write text to file ออกไปแล้ว)

คำสั่ง For each จะมี End เพื่อบอกว่าจบการทำซ้ำที่ action ไหน

Display Message

ลากคำสั่ง Display message มาอยู่ระหว่าง For each และ End

parameter “Message box title” จะเป็น title bar ของกล่องข้อความที่แสดงขึ้นมาตอนที่รันโรบอท สามารถใส่เป็นข้อความหรือตัวแปรก็ได้

parameter “Message to display” จะเป็น body ของกล่องข้อความที่แสดงขึ้นมาตอนที่รันโรบอท สามารถใส่เป็นข้อความหรือตัวแปรก็ได้

ตอนที่เราใช้คำสั่ง For each วนค่าใน ExcelData เก็บใน CurrentItem ตัวแปร CurrentItem จะมี data type เป็น data row อ่านรายละเอียดเพิ่มที่นี่

การดึง item ใน Data row สามารถทำได้ 2 แบบ คือ

  • บอก index column %VariableName[ItemNumber]%
  • บอกชื่อ column ใน data table %VariableName[‘ColumnName’]%

ใน Message box title, Message box to display สามารถใส่ข้อความและตัวแปรได้

Complete Flow

กด Save แล้วกดรัน

Complete Flow

Example of Result

จะได้กล่องข้อความที่มี Title และ Body ตามที่เราใส่ข้อความและตัวแปรไว้

ตัวอย่างผลลัพธ์
ภาพแสดงการตั้งค่าในคำสั่ง Display message และผลลัพธ์ที่ได้ใน message box ตอนรันโรบอท

การนำไปใช้งาน

จากบทความนี้เพ็ญใช้คำสั่ง Display Message เพื่อแสดงค่าที่อยู่ในแต่ละ Excel cell ออกมาให้เห็นว่าโรบอททำงานยังไง เวลานำไปใช้จริงก็แค่เปลี่ยนจากคำสั่ง Dispaly Message เป็นคำสั่งที่เราต้องการ เช่น

  • ต้องการให้พิมพ์ค่าใน window application ก็ใช้คำสั่ง Populate text field in window
  • ต้องการให้พิมพ์ค่าในเว็บไซต์ ก็ใช้คำสั่ง Populate text field on web page
  • ต้องการเอาค่าไปใช้เป็น subject mail Outlook ก็นำไปใส่ที่ parameter “Subject” ใน Send email message through Outlook
  • etc.

สำหรับใครที่อยากดูโค้ด Power Automate Desktop ของบทความนี้ สามารถเข้าไป copy code ที่ github แล้วนำไปวางที่ Workspace ของ Power Automate Desktop ได้เลย แต่จะต้องไปปรับแก้เองนิดนึงที่ display message นะ (มีคำใบ้ในโค้ดและสอนไปแล้วในบทความนี้❤️‍🔥)

คลิกที่บรรทัดแรกของโค้ด กด Ctrl+A, Ctrl+C, แล้วนำไปวางที่ Workspace Power Automate Desktop

ส่วนใครที่ยังไม่มีไฟล์ Excel ก็สามารถดาวน์โหลดได้ที่นี่

หวังว่าบทความนี้จะเป็นประโยชน์กับเพื่อนๆ ที่เพิ่งเริ่มศึกษา Power Automate Desktop ถ้าหากมีข้อสงสัยตรงไหนเกี่ยวกับบทความนี้ก็สามารถ comment ถามเข้ามาได้เลย

อย่าลืมกด like, share, subscribe สำหรับบทความดีๆ ต่อจากนี้ (กดปุ่ม subscribe แล้วจะได้ mail confirm subscription ให้ยืนยันอีกครั้งด้วยนะคะ)

จนกว่าจะได้พบกันอีกครั้ง Happy Automating!! 😁

Video

Did You Enjoy this Article?

Subscription to get new articles sent to your inbox each week for FREE

Question?

If you have any questions or feedback about this article please leave a message in the comments section below.


Comments

Leave a comment

Subscribe to get new articles sent to your inbox each week for FREE