ใช้นิพจน์ในเงื่อนไขเพื่อตรวจสอบค่าหลายค่า

ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีใช้นิพจน์และ เงื่อนไข เพื่อเปรียบเทียบค่าหลายค่าใน โหมดขั้นสูง

เมื่อคุณสร้างโฟลว์ระบบคลาวด์ คุณสามารถใช้บัตร เงื่อนไข ในโหมดพื้นฐาน เพื่อเปรียบเทียบค่าเดียวกับอีกค่าหนึ่งได้อย่างรวดเร็วได้ แต่บางครั้ง คุณต้องการเปรียบเทียบค่าหลายค่า ตัวอย่างเช่น คุณอาจต้องการตรวจสอบค่าของบางคอลัมน์ในสเปรดชีต หรือบางตารางในฐานข้อมูล

คุณสามารถใช้การรวมของนิพจน์ตรรกะต่อไปนี้ในเงื่อนไขของคุณ

Expression คำอธิบาย ตัว อย่าง เช่น
and รับสองอาร์กิวเมนต์ และส่งกลับค่า จริง ถ้าค่าทั้งสองเป็นจริง
หมายเหตุ: ทั้งสองอาร์กิวเมนต์ต้องเป็นแบบบูลีน
นิพจน์นี้ส่งกลับเป็น เท็จ:
and(greater(1,10),equals(0,0))
or รับสองอาร์กิวเมนต์ และส่งกลับค่า จริง ถ้าอาร์กิวเมนต์ตัวใดตัวหนึ่งเป็นจริง
หมายเหตุ: ทั้งสองอาร์กิวเมนต์ต้องเป็นแบบบูลีน
นิพจน์นี้ส่งกลับ จริง:
or(greater(1,10),equals(0,0))
equals ส่งกลับเป็น จริง ถ้าค่าทั้งสองเท่ากัน ตัวอย่างเช่น ถ้า parameter1 มีค่าเป็น someValue นิพจน์นี้ส่งกลับ จริง:
equals(parameters('parameter1'), 'someValue')
less รับสองอาร์กิวเมนต์ และส่งกลับค่า จริง ถ้าอาร์กิวเมนต์แรกน้อยกว่าอาร์กิวเมนต์ที่สอง
หมายเหตุ: ชนิดที่รองรับคือ จำนวนเต็ม เลขทศนิยม และสตริง
นิพจน์นี้ส่งกลับ จริง:
less(10,100)
lessOrEquals รับสองอาร์กิวเมนต์ และส่งกลับค่า จริง ถ้าอาร์กิวเมนต์แรกน้อยกว่าหรือเท่ากับอาร์กิวเมนต์ที่สอง
หมายเหตุ: ชนิดที่รองรับคือ จำนวนเต็ม เลขทศนิยม และสตริง
นิพจน์นี้ส่งกลับ จริง:
lessOrEquals(10,10)
greater รับสองอาร์กิวเมนต์ และส่งกลับค่า จริง ถ้าอาร์กิวเมนต์แรกมีค่ามากกว่าอาร์กิวเมนต์ที่สอง
หมายเหตุ: ชนิดที่รองรับคือ จำนวนเต็ม เลขทศนิยม และสตริง
นิพจน์นี้ส่งกลับเป็น เท็จ:
greater(10,10)
greaterOrEquals รับสองอาร์กิวเมนต์ และส่งกลับค่า จริง ถ้าอาร์กิวเมนต์แรกมีค่ามากกว่าหรือเท่ากับอาร์กิวเมนต์ที่สอง
หมายเหตุ: ชนิดที่รองรับคือ จำนวนเต็ม เลขทศนิยม และสตริง
นิพจน์นี้ส่งกลับเป็น เท็จ:
greaterOrEquals(10,100)
empty ส่งกลับเป็น จริง ถ้าออบเจ็กต์ อาร์เรย์ หรือสตริงว่างเปล่า นิพจน์นี้ส่งกลับ จริง:
empty('')
not ส่งกลับค่าแบบบูลีนตรงกันข้าม นิพจน์นี้ส่งกลับ จริง:
not(contains('200 Success','Fail'))
if ส่งกลับค่าระบุถ้านิพจน์เป็นค่า จริง หรือ เท็จ นิพจน์นี้ส่งกลับ "ใช่":
if(equals(1, 1), 'yes', 'no')

ข้อกำหนดเบื้องต้น

นี่เป็นสิ่งที่คุณจำเป็นต้องฝึกการปฏิบัตินี้ให้สำเร็จ:

  • การเข้าถึง Power Automate
  • สเปรดชีที่มีตารางของคุณเอง ที่จะอธิบายต่อไปในการฝึกปฏิบัตินี้ ตรวจสอบให้แน่ใจว่า ได้บันทึกสเปรดชีตของคุณในตำแหน่งที่ตั้ง เช่น Dropbox หรือ Microsoft OneDrive เพื่อให้ Power Automate สามารถเข้าถึงได้
  • Microsoft 365 Outlook (ถึงแม้ว่าเราใช้ Outlook ที่นี่ คุณสามารถใช้บริการอีเมลที่ได้รับการสนับสนุนใด ๆ ในโฟลว์ของคุณได้)

ใช้นิพจน์ 'or'

ในบางครั้งเวิร์กโฟลว์ของคุณจำเป็นต้องดำเนินการ ถ้าค่าของรายการคือ valueA หรือ valueB ตัวอย่างเช่น คุณอาจติดตามสถานะของงานในตารางสเปรดชีต สมมติว่า ตารางมีคอลัมน์ที่ชื่อว่า สถานะ และค่าที่เป็นไปได้ในคอลัมน์นี้คือ:

  • เสร็จสมบูรณ์
  • ถูกบล็อก
  • ไม่จำเป็น
  • ยังไม่ได้เริ่มต้น

นี่คือตัวอย่างว่า สเปรดชีตอาจมีลักษณะดังนี้:

ภาพหน้าจอของสเปรดชีตตัวอย่างพร้อมคอลัมน์สถานะ

ตามสเปรดชีตก่อนหน้านี้ คุณต้องการใช้ Power Automate เพื่อนำแถวทั้งหมดที่มีคอลัมน์ สถานะ ที่ตั้งค่าเป็น เสร็จสมบูรณ์ หรือ ไม่จำเป็น ออกไป

เรามาสร้างโฟลว์กัน

เริ่มต้นด้วยโฟลว์ที่ว่างเปล่า

  1. ลงชื่อเข้าใช้ Power Automate

  2. บนบานหน้าต่างด้านซ้าย เลือก โฟลว์ของฉัน

  3. เลือก โฟลว์ใหม่>โฟลว์ระบบคลาวด์ที่จัดกำหนดการ

เพิ่มทริกเกอร์ให้กับโฟลว์ของคุณ

  1. ตั้งชื่อให้โฟลว์ของคุณ

  2. ตั้งค่ากำหนดการเพื่อเรียกใช้โฟลว์วันละครั้ง

  3. เลือกปุ่ม สร้าง เพื่อไปยังขั้นตอนต่อไป

หมายเหตุ

Power Automate ใช้ตัวออกแบบโฟลว์คลาวด์แบบคลาสสิกหรือตัวออกแบบโฟลว์ระบบคลาวด์ที่มี Copilot หากต้องการระบุตัวออกแบบที่คุณกำลังใช้ ให้ไปที่ส่วน บันทึกย่อ ใน ทำความเข้าใจตัวออกแบบโฟลว์ระบบคลาวด์ที่มีความสามารถ Copilot

เลือกสเปรดชีต และรับแถวทั้งหมด

  1. เลือก ขั้นตอนใหม่

  2. ค้นหา แถว แล้วเลือก Excel Online (Business)

    เลือกการดำเนินการ รับแถว ที่สอดคล้องกับสเปรดชีตที่คุณกำลังใช้ ตัวอย่างเช่น ถ้าคุณกำลังใช้ Google Sheets เลือก Google Sheets - รับแถว

  3. เลือกการดำเนินการ แสดงรายการแถวที่มีอยู่ในตาราง

    ภาพหน้าจอของการแสดงรายการแถวในตาราง

  4. เลือก สถานที่ตั้งไลบรารีเอกสารไฟล์ และ ตาราง ที่มีข้อมูลของคุณ

    ภาพหน้าจอของฟิลด์ตำแหน่ง ไลบรารีเอกสาร ไฟล์ และตารางในแถวรายการที่แสดงในบัตรตาราง

ตรวจสอบคอลัมน์สถานะของแต่ละแถว

  1. เลือก ขั้นตอนใหม่

  2. ค้นหา นำไปใช้กับแต่ละรายการ แล้วเลือก นำไปใช้กับแต่ละรายการ - ตัวควบคุม

  3. เพิ่มโทเค็น ค่า ไปยังกล่อง เลือกข้อมูลขาออกจากขั้นตอนก่อนหน้า

    โทเค็น ค่า นี้แสดงถึงตารางสเปรดชีตและข้อมูลทั้งหมด

  4. เลือก เพิ่มการดำเนินการ บนบัตร นำไปใช้กับแต่ละรายการ

  5. ค้นหา เงื่อนไข แล้วเลือกตัวควบคุม เงื่อนไข

  6. เพิ่มนิพจน์ Or ต่อไปนี้ นิพจน์ Or นี้ตรวจสอบค่าของแต่ละแถวในตาราง ถ้าค่าของคอลัมน์ สถานะ คือ เสร็จสมบูรณ์หรือไม่จำเป็น นิพจน์ หรือ จะประเมินเป็น "จริง"

    นี่คือตัวอย่างของบัตร เงื่อนไข

    ภาพหน้าจอของนิพจน์ 'or'

ลบแถวที่ตรงกันออกจากสเปรดชีต

  1. เลือก เพิ่มการดำเนินการ บนสาขา ถ้าใช่ ของเงื่อนไข

    สาขา ถ้าใช่ ทำงานถ้าเงื่อนไข OR ประเมินเป็น จริง

  2. ค้นหา ลบแถว เลือก Excel Online (Business) แล้วเลือก ลบแถว

  3. บนบัตร ลบแถว ตั้งค่ากล่อง สถานที่ตั้งไลบรารีเอกสารไฟล์ และ ตาราง ให้ตรงตามที่คุณกำหนดกล่องเหล่านี้บนบัตร แสดงรายการแถวที่มีอยู่ในตาราง ก่อนหน้านี้ในบทช่วยสอนนี้

  4. ในรายการดรอปดาวน์ คอลัมน์คีย์ เลือก _PowerAppsId_

  5. ในฟิลด์ ค่าคีย์ ให้วางค่าแบบไดนามิก _PowerAppsId_

  6. บันทึกโฟลว์ของคุณ

เรียกใช้โฟลว์ที่มีนิพจน์ 'or'

โฟลว์ทำงานหลังจากที่คุณบันทึก ถ้าคุณสร้างสเปรดชีตที่แสดงไว้ก่อนหน้านี้ในบทช่วยสอน นี่คือหน้าตาของสเปรดชีตหลังจากการทำงานเสร็จสมบูรณ์:

ภาพหน้าจอของสเปรดชีตเมื่อนิพจน์ 'OR' เสร็จสมบูรณ์

สังเกตว่า ข้อมูลทั้งหมดในแถวที่มี เสร็จสมบูรณ์ หรือ ไม่จำเป็น ในคอลัมน์ สถานะ ถูกลบออก

ใช้นิพจน์ 'and'

สมมติว่า คุณมีตารางสเปรดชีตที่มีสองคอลัมน์ ชื่อคอลัมน์คือ สถานะ และ มอบหมายแล้ว และสมมติว่าคุณต้องการลบแถวทั้งหมดถ้าค่าของคอลัมน์ สถานะ เป็น ถูกบล็อก และค่าของคอลัมน์ มอบหมายแล้ว เป็น John Wonder เพื่อให้สำเร็จงานนี้ ทำตามขั้นตอนทั้งหมดก่อนหน้านี้ในบทช่วยสอนนี้ แต่เมื่อคุณแก้ไขบัตร เงื่อนไข ในโหมดขั้นสูง ใช้นิพจน์ and ที่แสดงไว้ที่นี่:

@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))

นี่คือตัวอย่างของบัตร เงื่อนไข

ภาพหน้าจอของนิพจน์ 'and'

เรียกใช้โฟลว์ที่มีนิพจน์ 'and'

หากคุณได้ทำตามขั้นตอนในบทช่วยสอนนี้แล้ว สเปรดชีตของคุณควรมีลักษณะคล้ายกับภาพหน้าจอต่อไปนี้

ภาพหน้าจอของสเปรดชีตก่อนที่โฟลว์ของคุณจะทำงาน

หลังจากที่โฟลว์ทำงานแล้ว สเปรดชีตของคุณควรมีลักษณะคล้ายกับภาพหน้าจอต่อไปนี้

ภาพหน้าจอของสเปรดชีตหลังจากโฟลว์ของคุณทำงาน

ใช้นิพจน์ 'empty'

สังเกตว่า ขณะนี้มีหลายแถวที่ว่างเปล่าในสเปรดชีต เพื่อเอาแถวที่ว่างออก ใช้นิพจน์ empty เพื่อระบุแถวทั้งหมดที่ไม่มีข้อความใด ๆ ในคอลัมน์ มอบหมายแล้ว และ สถานะ

เพื่อให้งานนี้สำเร็จ ให้ทำตามขั้นตอนทั้งหมดที่ระบุไว้ในส่วน ใช้นิพจน์ 'and' ที่อยู่ก่อนหน้าในบทช่วยสอนนี้ เมื่อคุณแก้ไขบัตร เงื่อนไข ในโหมดขั้นสูง ให้ใช้นิพจน์ empty ต่อไปนี้

@and(empty(item()?['Status']), empty(item()?['Assigned']))

บัตร เงื่อนไข ของคุณควรมีลักษณะคล้ายกับภาพหน้าจอต่อไปนี้

ภาพหน้าจอของนิพจน์ 'empty'

หลังจากที่โฟลว์ทำงานแล้ว สเปรดชีตควรมีลักษณะคล้ายกับภาพหน้าจอต่อไปนี้

ภาพหน้าจอของสเปรดชีตหลังจาก 'empty' ทำงาน

สังเกตว่าบรรทัดที่เกินจะถูกเอาออกจากตาราง

ใช้นิพจน์ 'greater'

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

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

นี่คือมุมมองของสเปรดชีต

ภาพหน้าจอของสเปรดชีตของผู้ที่ชำระเงินไม่เต็มจำนวน

นี่คือการใช้งานของนิพจน์ greater ที่หาคนทั้งหมดที่ชำระเงินน้อยกว่ายอดเงินที่ต้องชำระ

@greater(item()?['Due'], item()?['Paid'])

ใช้นิพจน์ 'less'

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

ใช้นิพจน์ and พร้อมกับนิพจน์ less เนื่องจากมีเงื่อนไขสองเงื่อนไขที่ต้องตรวจสอบ:

เงื่อนไขของการตรวจสอบ นิพจน์ที่ใช้ ตัวอย่างเช่น
ได้ชำระยอดเงินเต็มจำนวนแล้วหรือไม่ greater @greater(item()?['Due'], item()?['Paid'])
อีกหนึ่งวันจะถึงวันครบกำหนดหรือไม่ less @less(item()?['DueDate'], addDays(utcNow(),1))

รวมนิพจน์ 'greater' และ 'less' ในนิพจน์ 'and'

ใช้นิพจน์ greater เพื่อหาพนักงานที่ชำระเงินน้อยกว่าจำนวนเงินที่ต้องชำระ และใช้นิพจน์ less เพื่อหาว่าวันครบครบกำหนดอยู่ถัดจากวันที่ปัจจุบันไม่ถึงหนึ่งวันหรือไม่ จากนั้นคุณสามารถใช้การดำเนินการ ส่งอีเมล เพื่ออีเมลแจ้งเตือนอย่างเป็นมิตรให้กับพนักงานที่ยังไม่ได้ชำระเงินเต็มจำนวน และอีกไม่ถึงหนึ่งวันจะเป็นวันครบกำหนดได้

นี่คือมุมมองของตารางสเปรดชีต

ภาพหน้าจอของตารางสเปรดชีต

นี่คือการใช้งานของนิพจน์ and ที่ค้นหาพนักงานทั้งหมดที่ยังชำระเงินไม่ครบ และอีกไม่ถึงหนึ่งวันก็จะครบกำหนด

@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))

ใช้ฟังก์ชันในนิพจน์

นิพจน์บางตัวรับค่าจากการดำเนินการแบบรันไทม์ที่อาจไม่มีอยู่เมื่อโฟลว์ระบบคลาวด์เริ่มต้นเรียกใช้งาน ในการอ้างอิงหรือทำงานกับค่าเหล่านี้ในนิพจน์ คุณสามารถใช้ฟังก์ชันที่มีภาษานิยามเวิร์กโฟลว์ ข้อมูลเพิ่มเติม หากต้องการเรียนรู้เพิ่มเติม ไปที่ คู่มืออ้างอิงฟังก์ชันของนิพจน์เวิร์กโฟลว์ใน Azure Logic Apps และ Power Automate