ทำงานกับคอลัมน์สูตร
คอลัมน์สูตรคือคอลัมน์ที่แสดงค่าจากการคำนวณในตาราง Microsoft Dataverse สูตรต่างๆ ใช้ Power Fx ซึ่งเป็นภาษาการเขียนโปรแกรมที่มีประสิทธิภาพแต่เป็นมิตรต่อมนุษย์ สร้างสูตรในคอลัมน์สูตร Dataverse แบบเดียวกับที่คุณสร้างสูตรใน Microsoft Excel ขณะที่คุณพิมพ์ Intellisense จะแนะนำฟังก์ชันและไวยากรณ์ และยังช่วยคุณแก้ไขข้อผิดพลาดอีกด้วย
เพิ่มคอลัมน์สูตร
ลงชื่อเข้าใช้ Power Apps ที่ https://make.powerapps.com
เลือก ตาราง จากนั้นเลือกตารางที่คุณต้องการจะเพิ่มคอลัมน์สูตร หากรายการไม่อยู่ในบานหน้าต่างแผงด้านข้าง ให้เลือก …เพิ่มเติม แล้วเลือกรายการที่คุณต้องการ
เลือกพื้นที่ คอลัมน์ จากนั้นเลือก คอลัมน์ใหม่
ใส่ข้อมูลต่อไปนี้:
- A ชื่อที่แสดง สำหรับคอลัมน์
- หากต้องการป้อน คำอธิบาย ของคอลัมน์
สำหรับ ชนิดข้อมูล เลือก fx สูตร
พิมพ์สูตรหรือใช้คำแนะนำสูตร:
ป้อนสูตร Power Fx ลงในกล่อง สูตร ข้อมูลเพิ่มเติม: พิมพ์สูตร
- เลือกคุณสมบัติเพิ่มเติม:
- เลือก ค้นหาได้ หากคุณต้องการให้คอลัมน์นี้พร้อมใช้งานในมุมมอง แผนภูมิ แดชบอร์ด และการค้นหาขั้นสูง
- ตัวเลือกขั้นสูง:
- หากสูตรประเมินผลเป็นค่าทศนิยม ให้ขยาย ตัวเลือกขั้นสูง เพื่อเปลี่ยนจำนวนจุดความแม่นยำระหว่าง 0 ถึง 10 ค่าเริ่มต้นคือ 2
- เลือก บันทึก
พิมพ์สูตร
ตัวอย่างต่อไปนี้จะสร้างคอลัมน์สูตรชื่อ ราคารวม คอลัมน์ จำนวนหน่วย เป็นประเภทข้อมูลจำนวนเต็ม คอลัมน์ ราคา เป็นประเภทข้อมูลทศนิยม
คอลัมน์สูตรจะแสดงผลลัพธ์ของ ราคา คูณด้วย จำนวนหน่วย
สูตรที่คุณป้อนจะกำหนดชนิดคอลัมน์ คุณไม่สามารถเปลี่ยนชนิดของคอลัมน์ได้ หลังจากที่คอลัมน์ถูกสร้างแล้ว นั่นหมายความว่าคุณสามารถเปลี่ยนสูตรได้หลังจากสร้างคอลัมน์เมื่อไม่เปลี่ยนแปลง ชนิดคอลัมน์ เท่านั้น
ตัวอย่างเช่น สูตร ราคา * ส่วนลด จะสร้าง ชนิดคอลัมน์ เป็นตัวเลข คุณสามารถเปลี่ยน ราคา * ส่วนลด เป็น ราคา * (ส่วนลด + 10%) ได้เนื่องจากจะไม่เปลี่ยน ชนิดคอลัมน์ อย่างไรก็ตาม คุณไม่สามารถเปลี่ยน price * discount เป็น Text(price * discount) ได้ เพราะจะต้องเปลี่ยน ชนิดคอลัมน์ เป็น string
รับคำแนะนำสูตร (พรีวิว)
[หัวข้อนี้คือเอกสารรุ่นก่อนวางจำหน่าย และอาจจะมีการเปลี่ยนแปลงในอนาคต]
อธิบายสิ่งที่คุณต้องการให้สูตรทำและรับผลลัพธ์ที่สร้างโดย AI คำแนะนำสูตรยอมรับการป้อนข้อมูลภาษาธรรมชาติของคุณเพื่อตีความและแนะนำสูตร Power Fx โดยใช้โมเดล AI ที่ใช้ GPT
สำคัญ
สิ่งนี้เป็นคุณลักษณะพรีวิวและมีให้บริการในภูมิภาคสหรัฐอเมริกาเท่านั้น
คุณลักษณะการแสดงตัวอย่างไม่ได้มีไว้สำหรับการนำไปใช้งานจริง และอาจมีการจำกัดฟังก์ชันการทำงาน คุณลักษณะเหล่านี้สามารถใช้ได้ก่อนการเปิดตัวอย่างเป็นทางการ เพื่อให้ลูกค้าสามารถเข้าใช้งานได้ก่อนเวลาและให้ข้อคิดเห็น
ในปัจจุบัน มีการสนับสนุนคำแนะนำสูตรที่อ้างอิงถึงตารางเดียว ไม่มีการสนับสนุนคำแนะนำสูตรที่อ้างอิงถึงคอลัมน์ในตารางที่เกี่ยวข้อง
ข้อกำหนดเบื้องต้น
หากต้องการเปิดใช้งานฟีเจอร์นี้ คุณต้องเปิดใช้งานการตั้งค่าสภาพแวดล้อม ข้อเสนอแนะ AI สำหรับคอลัมน์สูตร ข้อมูลเพิ่มเติม: ข้อเสนอแนะ AI สำหรับคอลัมน์สูตร
ตัวอย่างการป้อนข้อมูลภาษาธรรมชาติ
ลองนึกภาพว่ามีคอลัมน์ คะแนนลูกค้า ที่แสดงคะแนนของลูกค้าตามบัญชี
ในกล่อง รับข้อเสนอแนะสูตร ให้ป้อนสูตรด้วยภาษาธรรมชาติ เช่น หากคะแนนในคอลัมน์คะแนนเท่ากับหรือมากกว่า 5 ให้ระบุเป็นดี และหากน้อยกว่า 5 ให้ระบุเป็นปานกลาง และหากค่าเป็นช่องว่างหรือเป็นศูนย์ ให้แสดงเป็นแย่ จากนั้นเลือกปุ่มลูกศร (Enter)
จากนั้นคัดลอก สูตรที่แนะนำ
และวางลงในกล่อง พิมพ์สูตร เลือก บันทึก
ต่อไปนี้คือลักษณะที่สูตรปรากฏเมื่อวาง
Switch(
ThisRecord.'Customer Rating',
Blank(), "Bad",
0, "Bad",
1, "Average",
2, "Average",
3, "Average",
4, "Average",
5, "Good",
6, "Good",
7, "Good",
8, "Good",
9, "Good",
10, "Good"
)
ตรวจสอบคอลัมน์สูตร คำอธิบายคะแนน ที่คำนวณ ซึ่งปรากฏขึ้นดังนี้
AI ที่รับผิดชอบ
สำหรับข้อมูลเกี่ยวกับ AI ที่รับผิดชอบ โปรดไปที่แหล่งข้อมูลเหล่านี้:
- คำถามที่พบบ่อยสำหรับการสร้างแอปและตารางผ่านการสนทนา
- คำถามที่พบบ่อยเกี่ยวกับการใช้ AI อย่างมีความรับผิดชอบใน Power Apps
ตัวดำเนินการ
คุณสามารถใช้ตัวดำเนินการต่อไปนี้ในคอลัมน์สูตร:
+, -, *, /, %, ใน, เอ็กแซกติน, &
สำหรับข้อมูลเพิ่มเติม โปรดไปที่ ผู้ดำเนินการใน Power Apps
ชนิดข้อมูล
คุณสามารถแสดงชนิดข้อมูลต่อไปนี้ในคอลัมน์สูตร:
- ข้อความ
- เลขทศนิยม
- จำนวนเต็ม
- ลอย
- แบบบูลีน ตัวเลือก (ใช่/ไม่ใช่)
- ตัวเลือก (เดิมคือชุดตัวเลือก)
- Datetime
ข้อมูลเพิ่มเติม: สร้างคอลัมน์สูตรที่มีประเภทข้อมูลทศนิยม จำนวนเต็ม จำนวนทศนิยม และตัวเลือก\
ประเภทข้อมูลสกุลเงินไม่ได้รับการสนับสนุนในปัจจุบัน
ชนิดฟังก์ชัน
คุณสามารถใช้ชนิดฟังก์ชันในคอลัมน์สูตร:
- Decimal
- สตริง
- Boolean
- ชุดตัวเลือก
- วันที่เวลา (TZI)
- วันที่เวลา (ท้องถิ่นของผู้ใช้) (จำกัดเฉพาะการเปรียบเทียบกับค่าเวลาท้องถิ่นของผู้ใช้อื่น ฟังก์ชัน DateAdd และ DateDiff)
- วันที่เวลา (เฉพาะวันที่) (จำกัดเฉพาะการเปรียบเทียบกับค่าเฉพาะวันที่อื่น ฟังก์ชัน DateAdd และ DateDiff)
- สกุลเงิน
- จำนวนเต็ม
ฟังก์ชัน
สำหรับฟังก์ชันสเกลาร์ที่คุณสามารถใช้ในคอลัมน์สูตร โปรดไปที่ การอ้างอิงสูตร - Dataverse คอลัมน์สูตร
* ฟังก์ชัน ข้อความ และ ค่า ทำงานได้กับตัวเลขจำนวนเต็มเท่านั้น โดยไม่เกี่ยวข้องกับตัวคั่นทศนิยม ตัวคั่นทศนิยมแตกต่างกันไปในแต่ละสถานที่ คอลัมน์สูตรจะได้รับการประเมินโดยปราศจากความรู้เกี่ยวกับสถานที่ เนื่องจากไม่สามารถตีความหรือสร้างตัวคั่นทศนิยมได้อย่างถูกต้อง
* อาร์กิวเมนต์ StartOfWeek ไม่ได้รับการสนับสนุนสำหรับฟังก์ชัน WeekNum และ Weekday ในคอลัมน์สูตร
ตัวอย่างฟังก์ชัน
Description | ตัวอย่างเช่น |
---|---|
ดึงข้อมูลค่าวันที่ | DateAdd(UTCNow(),-1,TimeUnit.Years) |
แนวทางและข้อจำกัด
ส่วนนี้จะอธิบายแนวทางและข้อจำกัดที่ทราบเกี่ยวกับคอลัมน์สูตรใน Dataverse
การตรวจสอบการใช้ฟิลด์สกุลเงิน
- คอลัมน์สูตรไม่รองรับการใช้คอลัมน์สกุลเงินของตารางที่เกี่ยวข้องในสูตรเช่นในตัวอย่างนี้
- ขณะนี้ยังไม่รองรับการใช้คอลัมน์สกุลเงินและอัตราแลกเปลี่ยนโดยตรงในสูตร การใช้คอลัมน์สกุลเงินและอัตราแลกเปลี่ยนทำได้โดยใช้ฟังก์ชัน
Decimal
เช่นDecimal(currency column)
หรือDecimal(exchange rate)
ฟังก์ชันDecimal
จะตรวจสอบให้แน่ใจว่าเอาต์พุตอยู่ในช่วงที่ยอมรับ หากค่าคอลัมน์สกุลเงินหรืออัตราแลกเปลี่ยนเกินช่วงที่ยอมรับ สูตรจะส่งคืนเป็นไม่มีค่า - คอลัมน์สกุลเงินฐานไม่ได้รับการสนับสนุนในนิพจน์คอลัมน์สูตร เนื่องจากเป็นคอลัมน์ของระบบที่ใช้เพื่อวัตถุประสงค์ในการรายงาน หากคุณต้องการผลลัพธ์ที่คล้ายกัน คุณสามารถใช้สกุลเงิน ชนิดคอลัมน์ พร้อมกับการรวมคอลัมน์อัตราแลกเปลี่ยนเป็น
CurrencyField_Base = (CurrencyField / ExchangeRate)
การตรวจสอบการใช้คอลัมน์วันที่และเวลา
- ลักษณะการทำงานของคอลัมน์สูตรวันที่และเวลาสามารถอัปเดตได้เมื่อไม่ได้ใช้ในคอลัมน์สูตรอื่นเท่านั้น
- สำหรับคอลัมน์สูตรวันที่เวลา ขณะใช้ฟังก์ชัน
DateDiff
ตรวจสอบให้แน่ใจว่า:- ไม่สามารถเปรียบเทียบหรือใช้งานคอลัมน์พฤติกรรมในพื้นที่ของผู้ใช้กับคอลัมน์
DateTime(TZI)/DateOnly
พฤติกรรมได้ - คอลัมน์ลักษณะการทำงานเวลาท้องถิ่นของผู้ใช้สามารถเปรียบเทียบหรือใช้กับคอลัมน์ลักษณะการทำงานเวลาท้องถิ่นของผู้ใช้อื่น
DateTime(TZI)
สามารถเปรียบเทียบคอลัมน์พฤติกรรมหรือใช้ในฟังก์ชันDateDiff
กับคอลัมน์พฤติกรรมDateTime(TZI)/DateOnly
อื่นได้DateOnly
สามารถเปรียบเทียบคอลัมน์พฤติกรรมหรือใช้ในฟังก์ชัน DateDiff กับคอลัมน์พฤติกรรมDateTime(TZI)/DateOnly
อื่นได้
- ไม่สามารถเปรียบเทียบหรือใช้งานคอลัมน์พฤติกรรมในพื้นที่ของผู้ใช้กับคอลัมน์
- คอลัมน์วันที่และเวลาและฟังก์ชันวันที่และเวลา
UTCNow()
,Now()
ไม่สามารถส่งเป็นพารามิเตอร์ไปยังฟังก์ชันสตริงได้
การใช้คอลัมน์สูตรในฟิลด์ค่าสะสม
- คอลัมน์สูตรง่าย ๆ คือคอลัมน์ที่สูตรใช้คอลัมน์จากเรกคอร์ดเดียวกันหรือใช้ค่าที่เข้ารหัสแบบตายตัว สำหรับคอลัมน์ค่าสะสม คอลัมน์สูตรต้องเป็นคอลัมน์สูตรอย่างง่าย เช่น คอลัมน์ค่าสะสมตัวอย่างนี้
- คอลัมน์สูตรซึ่งขึ้นอยู่กับฟังก์ชันที่มีขอบเขตเวลา
UTCNow()
และUTCToday()
ไม่สามารถใช้ในฟิลด์สรุปได้
คำแนะนำฟังก์ชันข้อความ Power Fx
คอลัมน์สูตรไม่สนับสนุนฟังก์ชันที่มีอาร์กิวเมนต์ตัวเดียวที่มีชนิดตัวเลข
Text()
ตัวเลขอาจเป็นจำนวนเต็ม ทศนิยม หรือสกุลเงินก็ได้คอลัมน์สูตรไม่รองรับการใช้ตัวเลขในการกำหนดค่าต่อไปนี้:
- ในฟังก์ชันสตริง ฟังก์ชันเหล่านี้เป็นฟังก์ชันสตริงที่วางในตำแหน่งที่คาดว่าจะมีอาร์กิวเมนต์ข้อความ: Upper, Lower, Left, Right, Concatenate, Mid, Len, StartsWith, EndsWith, TrimEnds, Trim, Substitute และ Replace
- ในสูตรโดยนัย เช่น
12 & "foo"
, หรือ12 & 34
, หรือ"foo" & 12
- ไม่รองรับการบังคับหมายเลขภายในเป็นข้อความ เราขอแนะนำให้ใช้
Text(Number, Format)
เพื่อแปลงตัวเลขเป็นข้อความ ในกรณีที่มีการส่งอาร์กิวเมนต์String
ในฟังก์ชันText
อาร์กิวเมนต์Format
นั้นจะไม่รองรับ - นี่คือตัวอย่างการใช้ฟังก์ชัน
Text
เพื่อแปลงตัวเลขเป็นข้อความและผนวกสตริงเข้าไป:
Concatenate(Text(123,"#"),"ab") Text(123,"#") & "foo"
โทเค็นการจัดรูปแบบเฉพาะตำแหน่งที่ตั้ง เช่น "." และ "," ไม่ได้รับการสนับสนุนในคอลัมน์สูตร
การตรวจสอบช่วงในคอลัมน์สูตร
- คุณไม่สามารถตั้งค่าคุณสมบัติ ค่าต่ำสุด หรือ ค่าสูงสุด ของคอลัมน์สูตรได้
- การคำนวณภายในทั้งหมดควรอยู่ภายในช่วง Dataverse สำหรับคอลัมน์สูตรชนิดทศนิยม (-100000000000 ถึง 100000000000)
- ค่าสัญพจน์แบบฮาร์ดโค้ดที่ป้อนในแถบสูตรควรอยู่ภายในช่วง Dataverse
- หากมีคอลัมน์ตัวเลขที่เป็นไม่มีค่า ถือว่าเป็น 0 ในการดำเนินการระดับกลาง ตัวอย่างเช่น
a+b+c and If a = null, b=2, c=3
คอลัมน์สูตรจะให้0 + 2 + 3 = 5
- พฤติกรรมนี้แตกต่างจากคอลัมน์ที่คำนวณในกรณีนี้ เพราะคอลัมน์ที่คำนวณจะให้
null + 2 + 3 = null
- พฤติกรรมนี้แตกต่างจากคอลัมน์ที่คำนวณในกรณีนี้ เพราะคอลัมน์ที่คำนวณจะให้
การตรวจสอบทั่วไปในคอลัมน์สูตร
- คอลัมน์สูตรสามารถอ้างอิงคอลัมน์สูตรอื่นได้ แต่คอลัมน์สูตรไม่สามารถอ้างอิงตัวเองได้
- คอลัมน์สูตรไม่สนับสนุนโซ่แบบวนซ้ำ เช่น
F1 = F2 + 10, F2 = F1 * 2
- ความยาวนิพจน์สูตรสูงสุดในคอลัมน์สูตรคือ 1,000 อักขระ
- ความลึกสูงสุดที่อนุญาตในคอลัมน์สูตรคือ 10 ความลึก ถูกกำหนดให้เป็นสายของคอลัมน์สูตรที่อ้างอิงถึงสูตรอื่นหรือคอลัมน์รวม
- ตัวอย่างเช่น
table E1, F1 = 1*2, table E2, F2 - E1*2
ในตัวอย่างนี้ความลึกของ F2 คือ 1
- ตัวอย่างเช่น
- ในแอปที่ขับเคลื่อนด้วยโมเดล การเรียงลำดับจะถูกปิดใช้งานใน:
- คอลัมน์สูตรประกอบด้วยคอลัมน์ตารางที่เกี่ยวข้อง
- คอลัมน์สูตรที่ประกอบด้วยคอลัมน์ทางตรรกะ (ตัวอย่างเช่น คอลัมน์ที่อยู่)
- คอลัมน์สูตรที่ประกอบด้วยคอลัมน์ที่มีการคำนวณหรือคอลัมน์สูตรอื่น
- คอลัมน์สูตรที่ใช้ฟังก์ชันจำกัดเวลา
UTCNow()
- คอลัมน์ชนิดจำนวนเต็มที่มีรูปแบบภาษา ระยะเวลา โซนเวลาไม่ได้รับการสนับสนุนในคอลัมน์สูตร
- คอลัมน์ชนิดสตริงที่มีรูปแบบอีเมล พื้นที่ข้อความ ชื่อย่อหลักทรัพย์ URL ไม่ได้รับการสนับสนุนในคอลัมน์สูตร
- คอลัมน์สูตรไม่แสดงค่าเมื่อแอปอยู่ในโหมด Mobile Offline
- คุณไม่สามารถทริกเกอร์เวิร์กโฟลว์หรือปลั๊กอินบนคอลัมน์สูตร
- เราไม่แนะนำให้ใช้คอลัมน์จากการคำนวณในคอลัมน์สูตรและในทางกลับกัน
- กฏการตรวจหารายการซ้ำไม่ทริกเกอร์บนคอลัมน์สูตร
- ฟังก์ชัน
Now
สามารถใช้กับคอลัมน์สูตรได้Now()
มีพฤติกรรมตามท้องถิ่นของผู้ใช้และUTCNow()
มีพฤติกรรมที่ไม่ขึ้นอยู่กับเขตเวลา - คุณสามารถตั้งค่าคุณสมบัติความแม่นยำสำหรับคอลัมน์ทศนิยมได้
- ค่าชนิดข้อมูลสูตรเริ่มต้นถูกตั้งเป็น ทศนิยม สำหรับสูตรที่คืนค่าตัวเลข
- การอัปเดตรูปแบบของคอลัมน์สูตรเลขจำนวนเต็มไม่ได้รับการรองรับ
คอลัมน์สูตรของชนิดข้อมูลที่ไม่สามารถสร้างได้
- สกุลเงิน