แชร์ผ่าน


ทำความเข้าใจตารางและเรกคอร์ดในแอปพื้นที่ทำงาน

ใน Power Apps คุณสามารถสร้างแอปพื้นที่ทำงานที่เข้าถึงข้อมูลใน Microsoft Excel SharePoint SQL Server และแหล่งข้อมูลอื่น ๆ ที่จัดเก็บข้อมูลในเรกคอร์ดและตาราง เมื่อต้องการทำงานอย่างมีประสิทธิภาพกับข้อมูลประเภทนี้ ให้ทบทวนหลักการที่เกี่ยวข้องกับโครงสร้างเหล่านี้

  • เรกคอร์ดมีหมวดหมู่ข้อมูลเกี่ยวกับบุคคล สถานที่ หรือสิ่งของอย่างน้อยหนึ่งหมวดหมู่ ตัวอย่างเช่น เรกคอร์ดอาจมีชื่อ ที่อยู่อีเมล และหมายเลขโทรศัพท์ของลูกค้าหนึ่งราย เครื่องมืออื่น ๆ จะอ้างถึงเรกคอร์ดเป็น "แถว" หรือ "รายการ"
  • ตารางจะเก็บเรกคอร์ดอย่างน้อยหนึ่งเรกคอร์ดที่มีข้อมูลประเภทเดียวกัน ตัวอย่างเช่น ตารางอาจมีชื่อ ที่อยู่อีเมล และหมายเลขโทรศัพท์ของลูกค้า 50 คน

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

คุณสามารถสร้างสูตรต่าง ๆ ที่ใช้ชื่อของตารางเป็นอาร์กิวเมนต์ เช่นเดียวกับสูตรใน Excel ที่ใช้การอ้างอิงเซลล์อย่างน้อยหนึ่งเซลล์เป็นอาร์กิวเมนต์ บางสูตรใน Power Apps จะคืนค่าตารางที่แสดงอาร์กิวเมนต์อื่น ๆ ที่คุณระบุ ตัวอย่างเช่น คุณอาจสร้างสูตร:

  • เพื่ออัปเดตเรกคอร์ดในตารางโดยระบุให้ตารางนั้นเป็นหนึ่งในหลายอาร์กิวเมนต์สำหรับฟังก์ชัน Patch
  • เมื่อต้องการเพิ่ม ลบ และตั้งชื่อคอลัมน์ใหม่ในตารางโดยระบุให้ตารางเป็นอาร์กิวเมนต์สำหรับฟังก์ชัน AddColumns, DropColumns หรือ RenameColumns ฟังก์ชันเหล่านั้นจะไม่ปรับเปลี่ยนตารางต้นฉบับ แต่ฟังก์ชันจะคืนค่าตารางอื่นตามอาร์กิวเมนต์อื่น ๆ ที่คุณระบุแทน

องค์ประกอบของตาราง

องค์ประกอบของตาราง

เรกคอร์ด

แต่ละเรกคอร์ดประกอบด้วยข้อมูลของบุคคล สถานที่ หรือสิ่งของ อย่างน้อยหนึ่งประเภท ตัวอย่างด้านบนแสดงเรกคอร์ดสำหรับแต่ละผลิตภัณฑ์ (ช็อกโกแลตขนมปัง และ น้ำ) และคอลัมน์สำหรับข้อมูลแต่ละประเภท (ราคาปริมาณที่ถือครอง และ ปริมาณที่สั่งซื้อ)

ในสูตร คุณสามารถอ้างถึงเรกคอร์ดได้โดยไม่ต้องอยู่ในบริบทของตาราง โดยใช้วงเล็บปีกกา ยกตัวอย่างเช่น เรกคอร์ดนี้ { ชื่อ: "สตรอเบอรี่", ราคา: 7.99 } ไม่ได้เกี่ยวข้องกับตาราง ชื่อเขตข้อมูล เช่น ชื่อ และ ราคา ในตัวอย่างนั้น ไม่ได้อยู่ในเครื่องหมายอัญประกาศคู่

ฟิลด์

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

เช่นเดียวกับตัวควบคุม คุณอ้างถึงฟิลด์ของเรกคอร์ดโดยใช้ .ตัวดำเนินการ บนเรกคอร์ด ตัวอย่างเช่น First(Products).Name จะคืนค่าฟิลด์ ชื่อ ของเรกคอร์ดแรกในตาราง ผลิตภัณฑ์

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

คอลัมน์

คอลัมน์อ้างถึงฟิลด์เดียวกันสำหรับหนึ่งเรกคอร์ดเป็นอย่างต่ำในตาราง ในตัวอย่างก่อนหน้า แต่ละผลิตภัณฑ์มีเขตข้อมูลราคา และผลิตภัณฑ์ทั้งหมดแชร์คอลัมน์เดียวกันสําหรับราคานั้น ตารางก่อนหน้ามีสี่คอลัมน์ แสดงตามแนวนอนด้านบน:

  • ชื่อ
  • ราคา
  • ปริมาณที่ถือครอง
  • ปริมาณในใบสั่ง

ชื่อคอลัมน์แสดงถึงข้อมูลในคอลัมน์

ค่าทั้งหมดภายในคอลัมน์เป็นข้อมูลชนิดเดียวกัน ในตัวอย่างก่อนหน้า คอลัมน์ "ปริมาณที่ถือครอง" มีตัวเลขเสมอและไม่สามารถมีสตริงเช่น "12 หน่วย" สําหรับระเบียนหนึ่งๆ ได้ ค่าของเขตข้อมูลยังสามารถ เป็น ค่าว่าง ได้ด้วย

คุณอาจอ้างถึงคอลัมน์เป็น "เขตข้อมูล" ในเครื่องมืออื่น

หมายเหตุ

สําหรับแหล่งข้อมูลเช่น SharePoint, Excel หรือไทล์ Power BI ที่ประกอบด้วยชื่อคอลัมน์ที่มีช่องว่าง Power Apps จะแทนที่ช่องว่างด้วย "_x0020_" ตัวอย่างเช่น "ชื่อคอลัมน์" ในไทล์ SharePoint, Excel หรือ Power BI จะปรากฏเป็น "Column_x0020_Name" ใน Power Apps เมื่อแสดงในเค้าโครงข้อมูลหรือใช้ในสูตร

Table

ตารางมีอย่างน้อยหนึ่งเรกคอร์ด โดยแต่ละเรกคอร์ดมีหลายฟิลด์ที่มีชื่อที่สอดคล้องกันกับทุกเรกคอร์ด

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

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

Table( { Value: "Strawberry" }, { Value: "Vanilla" } )

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

[ "Strawberry", "Vanilla" ]

สูตรของตาราง

ใน Excel และ Power Apps คุณใช้สูตรเพื่อจัดการตัวเลขและสตริงข้อความด้วยวิธีที่คล้ายกัน:

  • ใน Excel กรอกค่า เช่น 42 ในเซลล์ A1 จากนั้นพิมพ์สูตรเช่น A1+2 ในเซลล์อื่นเพื่อแสดงค่าของ 44
  • ใน Power Apps ตั้งค่าคุณสมบัติ Default ของ Slider1 เป็น 42 และตั้งค่าคุณสมบัติ ข้อความ ของป้ายชื่อเป็น Slider1.Value + 2 เพื่อแสดงค่า 44

ในทั้งสองกรณี ค่าที่คำนวณจะเปลี่ยนแปลงโดยอัตโนมัติถ้าคุณเปลี่ยนค่าของอาร์กิวเมนต์ (ตัวอย่างเช่น ตัวเลขในเซลล์ A1 หรือค่าของ Slider1)

ในทำนองเดียวกัน คุณสามารถใช้สูตรเพื่อเข้าถึงและจัดการกับข้อมูลในตารางและเรกคอร์ดได้ คุณสามารถใช้ชื่อของตารางเป็นอาร์กิวเมนต์ในสูตรบางสูตร เช่น Min(แค็ตตาล็อก, ราคา) เพื่อแสดงค่าต่ำสุดในคอลัมน์ ราคา ของตาราง แค็ตตาล็อก สูตรอื่น ๆ จะคืนค่าทั้งตาราง เช่น RenameColumns(แค็ตตาล็อก, "ราคา", "ต้นทุน") ซึ่งส่งกลับเรกคอร์ดทั้งหมดจากตาราง แค็ตตาล็อก แต่เปลี่ยนชื่อของคอลัมน์ ราคา เป็น ต้นทุน

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

ลองทำตามตัวอย่างง่าย ๆ

  1. สร้างแอปว่างสำหรับโทรศัพท์ และเพิ่มตัวควบคุม แกลเลอรี แนวตั้งที่ประกอบด้วยการควบคุมอื่น ๆ

    ตามค่าเริ่มต้น หน้าจอจะแสดงตัวแทนข้อความจากตารางที่ชื่อ CustomGallerySample คุณสมบัติ รายการ ของตัวควบคุม แกลเลอรี ของหน้าจอจะถูกตั้งค่าให้แก่ตารางดังกล่าวโดยอัตโนมัติ

    แกลเลอรี

    หมายเหตุ

    ตัวควบคุมบางตัวถูกจัดเรียงใหม่และขยายเพื่อวัตถุประสงค์ด้านการแสดงภาพประกอบ

  2. แทนที่จะตั้งค่าคุณสมบัติ รายการ เป็นชื่อของตาราง ตั้งเป็นสูตรที่รวมชื่อของตารางเป็นอาร์กิวเมนต์ ดังตัวอย่างต่อไปนี้:

    Sort(CustomGallerySample, SampleHeading, SortOrder.Descending)

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

    จัดเรียงสำหรับแกลเลอรี่

  3. ตั้งค่าคุณสมบัติ รายการ เป็นสูตรที่นำสูตรจากขั้นตอนที่แล้วมาเป็นอาร์กิวเมนต์และส่งกลับตาราง ดังตัวอย่างต่อไปนี้:

    FirstN(Sort(CustomGallerySample, SampleHeading, SortOrder.Descending), 2)

    ในสูตรนี้ คุณใช้ฟังก์ชัน FirstN เพื่อแสดงจำนวนของเรกคอร์ดที่เฉพาะเจาะจงในตาราง คุณใช้ฟังก์ชัน Sort เป็นอาร์กิวเมนต์แรกกับ FirstN และตัวเลข (ในกรณีนี้คือ 2) เป็นอาร์กิวเมนต์ที่สอง ซึ่งระบุจำนวนเรกคอร์ดที่จะแสดง

    ทั้งสูตรส่งกลับตารางที่มีสองเรกคอร์ดแรกของตาราง CustomGallerySample และจัดเรียงตามคอลัมน์ SampleHeading ในลำดับจากมากไปน้อย

    FirstN สำหรับแกลเลอรี่

คุณสมบัติฟังก์ชันตารางและตัวควบคุม

พิจารณาฟังก์ชัน Lower หากตัวแปร welcome มีสตริงข้อความ "Hello, World" สูตร Lower(welcome) คืนค่า "hello, world" ฟังก์ชันนี้ไม่เปลี่ยนแปลงค่าในตัวแปรนั้น Lower เป็นฟังก์ชันที่บริสุทธิ์เนื่องจากมีกระบวนการป้อนข้อมูลและสร้างเอาต์พุตเท่านั้น ไม่มีผลข้างเคียง ฟังก์ชันทั้งหมดใน Excel และฟังก์ชันส่วนใหญ่ใน Power Apps เป็นฟังก์ชันที่บริสุทธิ์ ซึ่งหมายความว่าเวิร์กบุ๊กหรือแอปจะคํานวณใหม่โดยอัตโนมัติ

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

  • Sort, Filter - เรียงลําดับและกรองระเบียน
  • FirstN, LastN - ส่งกลับ N ระเบียนแรกหรือ N ระเบียนสุดท้ายของตาราง
  • Abs, Sqrt, Round, RoundUp, RoundDown - ดําเนินการทางคณิตศาสตร์ของแต่ละระเบียนของตารางแบบคอลัมน์เดียว แสดงผลเป็นตารางแบบคอลัมน์เดียวของผลลัพธ์
  • Left, Mid, Right, Replace, Substitute, Trim, Lower, Upper, Proper - ดําเนินการจัดการสตริงในแต่ละระเบียนของตารางแบบคอลัมน์เดียว แสดงผลเป็นตารางแบบคอลัมน์เดียวของสตริง
  • Len - สำหรับคอลัมน์ของสตริง ส่งกลับตารางแบบคอลัมน์เดียวที่มีความยาวของแต่ละสตริง
  • Concatenate - เชื่อมหลายคอลัมน์ของสตริงเข้าด้วยกัน แสดงผลเป็นตารางแบบคอลัมน์เดียวของสตริง
  • AddColumns, DropColumns, RenameColumns, ShowColumns - ดําเนินการจัดการคอลัมน์ของตาราง แสดงผลเป็นตารางใหม่ที่มีคอลัมน์ที่แตกต่างกัน
  • Distinct - เอาระเบียนที่ซ้ํากันออก
  • Shuffle – จัดเรียงเรกคอร์ดแบบสุ่ม
  • HashTags – ค้นหาแฮชแท็กในสตริง
  • Errors - แสดงข้อมูลของข้อผิดพลาดเมื่อคุณทำงานกับแหล่งข้อมูล

ฟังก์ชันเหล่านี้จำนวนมากใช้ตารางคอลัมน์เดียวเป็นอินพุต หากทั้งตารางมีเพียงหนึ่งคอลัมน์ คุณสามารถระบุได้ตามชื่อ หากตารางมีหลายคอลัมน์ คุณสามารถระบุหนึ่งในคอลัมน์เหล่านั้นโดยใช้ไวยากรณ์ Table.Column ตัวอย่างเช่น Products.Name คืนค่าตารางคอลัมน์เดียวที่มีเพียงค่า ชื่อ จากตาราง ผลิตภัณฑ์

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

คุณสมบัติของตัวควบคุมสามารถเป็นตารางได้:

  • รายการ – นำไปใช้กับแกลเลอรี กล่องรายการ และกล่องคำสั่งผสม คุณสมบัตินี้กำหนดตารางที่แกลเลอรีหรือรายการแสดง
  • SelectedItems – นำไปใช้กับกล่องรายการ และกล่องคำสั่งผสม คุณสมบัตินี้กําหนดตารางของรายการที่ผู้ใช้เลือกถ้า SelectMultiple ถูกเปิดใช้งาน

สูตรแบบพฤติกรรม

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

  • Collect, Clear, ClearCollect - สร้าง ล้าง และเพิ่มข้อมูลลงในคอลเลกชัน
  • Patch - แก้ไขฟิลด์หนึ่งฟิลด์หรือมากกว่าในเรกคอร์ด
  • UpdateUpdateIf - อัปเดตเรกคอร์ดที่ตรงกับเกณฑ์ที่คุณระบุอย่างน้อยหนึ่งอย่างขึ้นไป
  • RemoveRemoveIf - ลบเรกคอร์ดที่ตรงกับเกณฑ์ที่คุณระบุอย่างน้อยหนึ่งอย่างขึ้นไป

สูตรเรกคอร์ด

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

  1. เพิ่ม ปุ่ม และตั้งค่าคุณสมบัติ OnSelect เป็นสูตรนี้:
    Collect( SelectedRecord, Gallery1.Selected )

  2. เลือกปุ่มขณะที่กดแป้น Alt ค้างไว้

  3. ในเมนู ไฟล์ เลือก คอลเลกชัน

    คอลเลกชัน SelectedRecord

สูตรนี้ส่งกลับเรกคอร์ดที่ไม่เพียงมีข้อมูลจากเรกคอร์ดที่เลือกอยู่ในแกลเลอรีเท่านั้น แต่ยังมีตัวควบคุมแต่ละตัวที่แกลเลอรีนั้นด้วย ตัวอย่างเช่น เรกคอร์ดมีทั้งคอลัมน์ SampleText ซึ่งตรงกับคอลัมน์ SampleText ในตารางต้นฉบับ และคอลัมน์ Subtitle1 ซึ่งแสดงถึงป้ายชื่อที่แสดงข้อมูลดังกล่าวจากคอลัมน์นั้น เลือกไอคอนตารางในคอลัมน์ Subtitle1 เพื่อเจาะลึกลงในข้อมูลดังกล่าว

หมายเหตุ

คอลัมน์ Subtitle1 อาจมีชื่อว่า Subtitle2 หรือคล้ายกันถ้าคุณเพิ่มองค์ประกอบอื่นนอกเหนือจากองค์ประกอบที่หัวข้อนี้ระบุ

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

  1. เพิ่มตัวควบคุม ป้ายชื่อ จากนั้นย้ายไปไว้ภายใต้แกลเลอรีและปุ่ม

  2. ตั้งค่าคุณสมบัติ ข้อความ ของป้ายชื่อให้เป็นนิพจน์นี้:
    "เลือก: " & Gallery1.Selected.SampleHeading

    คุณสมบัติข้อความพร้อมป้ายชื่อที่อัปเดต

คุณรับคุณสมบัติ ที่เลือก ซึ่งเป็นระเบียน และได้แยกคุณสมบัติ SampleHeading ออกมา

คุณยังสามารถใช้เรกคอร์ดเป็นคอนเทนเนอร์อเนกประสงค์สำหรับค่าที่มีชื่อที่เกี่ยวข้องได้

  • ถ้าคุณสร้างสูตรด้วยฟังก์ชัน UpdateContext และ Navigate ให้ใช้เรกคอร์ดเพื่อรวบรวม ตัวแปรบริบท ที่คุณต้องการอัปเดต
  • ใช้คุณสมบัติ อัปเดต ในตัวควบคุม แก้ไขฟอร์ม เพื่อรวบรวมการเปลี่ยนแปลงที่ผู้ใช้ทําในฟอร์ม
  • ใช้ฟังก์ชัน Patch เพื่ออัปเดตแหล่งข้อมูลและผสานเรกคอร์ด

ในกรณีเหล่านี้ เรกคอร์ดจะไม่เป็นส่วนหนึ่งของตาราง

คุณสมบัติฟังก์ชันเรกคอร์ดและตัวควบคุม

ฟังก์ชันที่คืนค่าเป็นเรกคอร์ด:

  • FirstNLastN - ส่งกลับเรกคอร์ดแรกหรือเรกคอร์ดสุดท้ายของตาราง
  • Lookup - ส่งกลับเรกคอร์ดแรกจากตารางที่ตรงกับเกณฑ์อย่างน้อยหนึ่งอย่าง
  • Patch – อัปเดตแหล่งข้อมูลหรือผสานเรกคอร์ด
  • Defaults – ส่งคืนค่าเริ่มต้นสำหรับแหล่งข้อมูล

คุณสมบัติที่คืนค่าเป็นเรกคอร์ด:

  • Selected – ใช้กับแกลเลอรีและกล่องรายการ คืนค่าเรกคอร์ดที่เลือกในปัจจุบัน
  • Updates – ใช้กับแกลเลอรี นำการเปลี่ยนแปลงที่ผู้ใช้ทำทั้งหมดมาไว้รวมกันในฟอร์มรายการข้อมูล
  • Update - ใช้กับตัวควบคุมการป้อนข้อมูล เช่น ตัวควบคุมการป้อนข้อความ และแถบเลื่อน ตั้งค่าแต่ละคุณสมบัติสำหรับแกลเลอรีเพื่อรวมเข้าด้วยกัน

ขอบเขตเรกคอร์ด

ฟังก์ชันบางอย่างทํางานโดยการประเมินสูตรในระเบียนทั้งหมดของตาราง หนึ่งระเบียนในแต่ละครั้ง คุณใช้ผลลัพธ์ของสูตรในวิธีที่แตกต่างกันสําหรับแต่ละฟังก์ชัน:

  • AddColumns - ใช้สูตรเพื่อรับค่าสําหรับเขตข้อมูลใหม่ที่คุณเพิ่ม
  • Average, Max, Min, Sum, StdevP, VarP - ใช้สูตรเพื่อรับค่าที่คุณต้องการรวม
  • Filter, Lookup - ใช้สูตรเพื่อตัดสินใจว่าระเบียนควรเป็นส่วนหนึ่งของผลลัพธ์หรือไม่
  • Concat - ใช้สูตรเพื่อตัดสินใจว่าสตริงใดที่จะรวมเข้าด้วยกัน
  • Distinct - ใช้สูตรเพื่อส่งกลับค่าที่ช่วยในการค้นหาระเบียนที่ซ้ํากัน
  • ForAll - ใช้สูตรเพื่อส่งกลับค่าใด ๆ อาจมีผลข้างเคียง
  • Sort - ใช้สูตรเพื่อรับค่าเพื่อเรียงลําดับระเบียน
  • With - ใช้สูตรเพื่อส่งกลับค่าใด ๆ อาจมีผลข้างเคียง

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

ตัวอย่างเช่น พิจารณาตาราง ผลิตภัณฑ์:

ตัวอย่างผลิตภัณฑ์

หากต้องการสร้างตารางตัวอย่างนี้ในแอปของคุณ ให้ใส่ปุ่ม และตั้งค่าคุณสมบัติ OnSelect ในสูตรนี้ จากนั้นเลือกปุ่ม (คลิกในขณะที่คุณกดปุ่ม Alt ค้างไว้ใน Power Apps Studio):

Set( Products,
    Table(
        { Product: "Widget",    'Quantity Requested': 6,  'Quantity Available': 3 },
        { Product: "Gadget",    'Quantity Requested': 10, 'Quantity Available': 20 },
        { Product: "Gizmo",     'Quantity Requested': 4,  'Quantity Available': 11 },
        { Product: "Apparatus", 'Quantity Requested': 7,  'Quantity Available': 6 }
    )
)

หากต้องการตรวจสอบว่าผลิตภัณฑ์เหล่านี้ได้รับการร้องขอมากกว่าที่มีหรือไม่ ให้ใช้สูตรนี้:

Filter( Products, 'Quantity Requested' > 'Quantity Available' )

อาร์กิวเมนต์แรกของ Filter คือตารางของระเบียนที่จะทํางาน อาร์กิวเมนต์ที่สองคือสูตร ตัวกรอง สร้างขอบเขตระเบียนสําหรับการประเมินสูตรนี้ เขตข้อมูลของแต่ละระเบียนจะพร้อมใช้งาน เช่น ผลิตภัณฑ์ปริมาณที่ร้องขอ และ ปริมาณที่พร้อมใช้งาน ผลลัพธ์ของการเปรียบเทียบตัดสินใจว่าแต่ละระเบียนควรเป็นส่วนหนึ่งของผลลัพธ์ของฟังก์ชันหรือไม่:

ตารางที่กรอง

คุณสามารถเพิ่มผลิตภัณฑ์ที่จะสั่งซื้อได้ตามตัวอย่างนี้โดยการคํานวณจํานวนของผลิตภัณฑ์ที่จะสั่งซื้อ:

AddColumns( 
    Filter( Products, 'Quantity Requested' > 'Quantity Available' ), 
    "Quantity To Order", 'Quantity Requested' - 'Quantity Available'
)

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

คอลัมน์ที่เพิ่ม

สุดท้าย คุณสามารถลดตารางผลลัพธ์ให้เหลือเพียงคอลัมน์ที่คุณต้องการได้:

ShowColumns(
    AddColumns(
        Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
        "Quantity To Order", 'Quantity Requested' - 'Quantity Available'
    ),
    "Product",
    "Quantity To Order"
)

ตารางที่อัปเดต

ในตัวอย่างก่อนหน้า คุณใช้เครื่องหมายอัญประกาศคู่ (") ในบางตําแหน่งและอัญประกาศเดี่ยว (') ในที่อื่น คุณจําเป็นต้องมีเครื่องหมายอัญประกาศเดี่ยวเมื่อคุณอ้างอิงค่าของวัตถุ เช่น เขตข้อมูลหรือตาราง และชื่อของวัตถุมีช่องว่าง ใช้เครื่องหมายอัญประกาศคู่เมื่อคุณไม่ได้อ้างอิงถึงค่าของวัตถุโดยตรงแต่พูดถึงวัตถุนั้นแทน ใช้เครื่องหมายอัญประกาศโดยเฉพาะอย่างยิ่งในสถานการณ์ที่ยังไม่มีวัตถุ เช่นในกรณีของ AddColumns

การแก้ไขความคลุมเครือ

ชื่อเขตข้อมูลที่คุณเพิ่มในขอบเขตระเบียนจะเขียนทับชื่อเดียวกันที่มีอยู่แล้วในแอปจากที่อื่น เมื่อเกิดสิ่งนี้ขึ้น คุณยังสามารถเข้าถึงค่าจากภายนอกขอบเขตระเบียนได้โดยใช้ตัว @ ดําเนินการขยายความ :

  • เมื่อต้องการเข้าถึงค่าจากขอบเขตของระเบียนที่ซ้อนกัน ให้ใช้ตัว @ ดําเนินการ ที่มีชื่อของตารางที่คุณกําลังดําเนินการ โดยใช้รูปแบบนี้:
    ตาราง[@FieldName]
  • เมื่อต้องการเข้าถึงค่าส่วนกลาง เช่น แหล่งข้อมูล คอลเลกชัน และตัวแปรบริบท ให้ใช้รูปแบบ [@ObjectName] (โดยไม่ต้องกำหนดตาราง)

ถ้าตารางที่คุณกําลังดําเนินการเป็นนิพจน์ เช่น Filter(Table, ... ), คุณไม่สามารถใช้ตัวดําเนินการแก้ความกํากวมได้ เฉพาะขอบเขตเรกคอร์ดด้านในสุดเท่านั้นที่สามารถเข้าถึงฟิลด์จากนิพจน์ตารางนี้ได้ โดยไม่ใช้ตัวดำเนินการการแก้ไขความคลุมเครือ

ตัวอย่างเช่น ลองนึกว่าคุณมีคอลเลกชัน X:

คอลเลกชัน X

คุณสร้างคอลเลกชันนี้โดยใช้ ClearCollect( X, [1, 2] )

และคอลเลกชัน Y:

คอลเลกชัน Y

คุณสร้างคอลเลกชันนี้โดยใช้ ClearCollect( Y, ["A", "B"] )

นอกจากนี้ กำหนดตัวแปรบริบทที่ชื่อว่า ค่า ด้วยสูตรนี้: UpdateContext( {Value: "!"} )

มารวมข้อมูลเข้าด้วยกัน ในบริบทนี้ สูตรต่อไปนี้:

Ungroup(
    ForAll( X,
        ForAll( Y,
            Y[@Value] & Text( X[@Value] ) & [@Value]
        )
    ),
    "Value"
)

สร้างตารางนี้:

ตาราง XY

เกิดอะไรขึ้นที่นี่ ฟังก์ชัน ForAll ด้านนอกสุดกําหนดขอบเขตระเบียนสําหรับ X ซึ่งอนุญาตให้เข้าถึงเขตข้อมูล ค่า ของแต่ละระเบียนขณะที่ประมวลผล คุณสามารถเข้าถึงได้เพียงการใช้คําว่า ค่า หรือโดยใช้ X[@Value]

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

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

Ungroup(
    ForAll( X,
        ForAll( Y,
            Value & Text( X[@Value] ) & [@Value]
        )
    ),
    "Value"
)

ขอบเขตเรกคอร์ด ForAll ทั้งหมดจะแทนที่ขอบเขตส่วนกลาง ตัวแปรบริบท ค่า ที่คุณกําหนดจะไม่พร้อมใช้งานด้วยชื่อโดยไม่มีตัวดําเนินการขยายความ ในการเข้าถึงค่านี้ใช้ [@Value]

Ungroup ลดจำนวนผลลัพธ์ลง เพราะฟังก์ชัน ForAll ที่ซ้อนอยู่จะแสดงผลเป็นตารางผลลัพฑ์ที่ซ้อนกัน

ตารางแบบคอลัมน์เดียว

ในการใช้งานคอลัมน์เดียวจากตารางให้ใช้ฟังก์ชั่น ShowColumns ดังในตัวอย่างนี้:

ShowColumns( Products, "Product" )

สูตรนี้สร้างตารางคอลัมน์เดียวนี้:

ตารางคอลัมน์เดียว

สำหรับทางเลือกที่สั้นกว่า ระบุ Table.Column ซึ่งแยกตารางคอลัมน์เดียวของแค่ คอลัมน์ จาก Table ตัวอย่างเช่น สูตรนี้ให้ผลลัพธ์เหมือนกับการใช้ ShowColumns

Products.Product

เรกคอร์ดแบบในบรรทัด

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

{ Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 }

คุณยังสามารถฝังสูตรลงในสูตรอื่นได้ ดังที่ตัวอย่างนี้แสดง:

{ Name: First(Products).Name, Price: First(Products).Price * 1.095 }

คุณสามารถซ้อนเรกคอร์ดโดยซ้อนวงเล็บปีกกา ดังที่ตัวอย่างนี้แสดง:

{ 'Quantity': { 'OnHand': ThisItem.QuantOnHand, 'OnOrder': ThisItem.QuantOnOrder } }

ล้อมรอบแต่ละชื่อคอลัมน์ที่มีอักขระพิเศษ เช่น ช่องว่างหรือทวิภาค ด้วยเครื่องหมายอัญประกาศเดี่ยว เมื่อต้องการใช้เครื่องหมายอัญประกาศเดี่ยวภายในชื่อคอลัมน์ ให้พิมพ์สองครั้ง

สังเกตว่าค่าในคอลัมน์ ราคา ไม่มีสัญลักษณ์ค่าเงิน เช่น เครื่องหมายดอลลาร์ การจัดรูปแบบดังกล่าวจะถูกนําไปใช้เมื่อแสดงค่า

ตารางแบบในบรรทัด

สร้างตารางโดยใช้ฟังก์ชัน Table และชุดของระเบียน คุณสามารถแสดงตารางแรกในตอนแรกของหัวข้อนี้ได้โดยใช้สูตรนี้:

Table( 
	{ Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 },
	{ Name: "Bread", Price: 4.95, 'Quantity on Hand': 34, 'Quantity on Order': 0 },
	{ Name: "Water", Price: 4.95, 'Quantity on Hand': 10, 'Quantity on Order': 0 } 
)

คุณยังสามารถซ้อนตารางได้:

Table( 
	{ Name: "Chocolate", 
	  'Quantity History': Table( { Quarter: "Q1", OnHand: 10, OnOrder: 10 },
	                             { Quarter: "Q2", OnHand: 18, OnOrder: 0 } ) 
	}
)

ตารางแบบค่าในบรรทัด

สร้างตารางแบบคอลัมน์เดียวโดยระบุค่าในวงเล็บสี่เหลี่ยม ตารางผลลัพธ์มีคอลัมน์เดียว ที่ชื่อว่า ค่า

ตัวอย่างเช่น [ 1, 2, 3, 4 ] เทียบเท่ากับ Table( { Value: 1 }, { Value: 2 }, { Value: 3 }, { Value: 4 } ) และคืนค่าเป็นตารางนี้:

ตารางอินไลน์