Làm việc với các cột công thức
Cột công thức là cột hiển thị giá trị được tính toán trong một bảng Microsoft Dataverse. Công thức sử dụng Power Fx, một ngôn ngữ lập trình mạnh mẽ nhưng thân thiện với con người. Xây dựng một công thức trong một cột công thức Dataverse giống như cách bạn xây dựng công thức trong Microsoft Excel. Khi bạn nhập, Intellisense sẽ gợi ý các hàm và cú pháp, thậm chí còn giúp bạn sửa lỗi.
Thêm cột vào công thức
Đăng nhập vào Power Apps tại https://make.powerapps.com.
Chọn Bảng, sau đó chọn bảng mà bạn muốn thêm cột công thức. Nếu không thấy mục này trong ngăn bảng điều khiển bên, hãy chọn …Thêm rồi chọn mục bạn muốn.
Chọn khu vực Cột, sau đó chọn Cột mới.
Nhập các thông tin sau:
- A Tên hiển thị cho cột.
- Nhập Mô tả của cột (không bắt buộc).
Đối với Loại dữ liệu chọn fx Công thức.
Nhập công thức hoặc sử dụng gợi ý công thức:
Nhập công thức vào ô Công thức. Power Fx · Thông tin thêm: Nhập công thức
- Chọn các thuộc tính bổ sung:
- Chọn Có thể tìm kiếm nếu bạn muốn cột này có sẵn trong chế độ xem, biểu đồ, bảng thông tin và Tìm kiếm nâng cao.
- Tùy chọn nâng cao:
- Nếu công thức đánh giá thành giá trị thập phân, hãy mở rộng Tùy chọn nâng cao để thay đổi số điểm chính xác, từ 0 đến 10. Giá trị mặc định là 2.
- Chọn Lưu.
Nhập công thức
Ví dụ sau tạo một cột công thức được gọi là Tổng giá. Cột Số lượng đơn vị là một kiểu dữ liệu số nguyên. Cột Giá là một kiểu dữ liệu thập phân.
Cột công thức hiển thị kết quả của Giá nhân với Số lượng đơn vị.
Công thức bạn nhập xác định loại cột. Bạn không thể thay đổi loại cột sau khi tạo cột. Điều đó có nghĩa là bạn chỉ có thể thay đổi công thức sau khi tạo cột nếu nó không làm thay đổi loại cột.
Ví dụ, công thức giá * chiết khấu tạo loại cột là số. Bạn có thể thay đổi giá * chiết khấu thành giá * (chiết khấu + 10%) vì điều đó không làm thay đổi loại cột. Tuy nhiên, bạn không thể thay đổi giá * chiết khấu thành Văn bản(giá * chiết khấu) vì điều đó sẽ yêu cầu phải thay đổi loại cột thành chuỗi.
Nhận gợi ý công thức (bản xem trước)
[Chủ đề này là tài liệu hướng dẫn trước khi phát hành và có thể thay đổi.]
Mô tả những gì bạn muốn công thức thực hiện và nhận kết quả do AI tạo ra. Gợi ý công thức chấp nhận đầu vào ngôn ngữ tự nhiên của bạn để diễn giải và đề xuất một Power Fx công thức bằng mô hình AI dựa trên GPT.
Quan trọng
Đây là tính năng bản xem trước chỉ khả dụng ở khu vực Hoa Kỳ.
Các tính năng xem trước không được dùng cho sản xuất và có thể có chức năng bị hạn chế. Những tính năng này khả dụng trước khi có bản phát hành chính thức để khách hàng có thể truy cập sớm và cung cấp phản hồi.
Hiện tại, các gợi ý công thức tham chiếu đến một bảng duy nhất được hỗ trợ. Các đề xuất công thức tham chiếu đến một cột trên bảng liên quan không được hỗ trợ.
Điều kiện tiên quyết
Để bật tính năng này, bạn phải bật cài đặt môi trường Gợi ý AI cho các cột công thức . Thông tin thêm: Gợi ý AI cho các cột công thức
Ví dụ đầu vào ngôn ngữ tự nhiên
Hãy tưởng tượng có một cột Xếp hạng của khách hàng hiển thị xếp hạng của họ theo tài khoản.
Trong hộp Nhận gợi ý công thức, hãy nhập công thức bằng ngôn ngữ tự nhiên, chẳng hạn như Nếu xếp hạng trên cột xếp hạng bằng hoặc lớn hơn 5 thì hãy chỉ định là Tốt và nếu nhỏ hơn 5 thì hãy chỉ định là Trung bình và nếu giá trị để trống hoặc bằng 0 thì hãy hiển thị là Kém, sau đó chọn nút mũi tên (enter).
Sau đó sao chép Công thức được đề xuất.
Và dán nó vào hộp Nhập công thức . Chọn Lưu.
Sau đây là cách công thức hiển thị khi được dán.
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"
)
Kiểm tra cột công thức Mô tả xếp hạng đã tính toán, trông như thế này.
AI có trách nhiệm
Để biết thông tin về AI có trách nhiệm, hãy truy cập các nguồn sau:
- Câu hỏi thường gặp về xây dựng ứng dụng và bảng thông qua hội thoại
- Câu hỏi thường gặp về việc sử dụng AI một cách có trách nhiệm trong Power Apps
Toán tử
Bạn có thể sử dụng các toán tử sau trong cột công thức:
+, -, *, /, %, trong, exactin, &
Để biết thêm thông tin, hãy truy cập Toán tử trong Power Apps.
Loại dữ liệu
Bạn có thể hiển thị kiểu dữ liệu sau trong cột công thức:
- Văn bản
- Số thập phân
- Lựa chọn Có/Không (Boolean)
- Ngày giờ
- Số nguyên
Các kiểu dữ liệu tiền tệ và lựa chọn (trước đây là tập hợp tùy chọn) hiện không được hỗ trợ.
Các loại chức năng
Bạn có thể dùng các kiểu dữ liệu sau trong cột công thức:
- Dấu thập phân
- String
- Boolean
- Bộ tùy chọn
- DateTime (TZI)
- DateTime (Cục bộ của người dùng) (giới hạn trong việc so sánh với các giá trị cục bộ khác của người dùng là hàm DateAdd và DateDiff)
- DateTime (Chỉ ngày) (giới hạn trong việc so sánh với các giá trị chỉ ngày khác, các hàm DateAdd và DateDiff)
- Tiền tệ
- Số nguyên, được thăng cấp thành Số thập phân
Hàm
Đối với các hàm vô hướng mà bạn có thể sử dụng trong cột công thức, hãy đi tới Tham chiếu công thức - Dataverse cột công thức.
* Các hàm Văn bản và Giá trị chỉ hoạt động với các số nguyên, trong đó không có dấu phân cách thập phân. Dấu phân tách thập phân khác nhau giữa các ngôn ngữ. Vì các cột công thức được đánh giá mà không có kiến thức về ngôn ngữ, nên không có cách nào để diễn giải hoặc tạo dấu phân tách thập phân một cách chính xác.
* Đối số StartOfWeek không được hỗ trợ cho các hàm WeekNum và Weekday trong các cột công thức.
Ví dụ về hàm
Description | Ví dụ: |
---|---|
Lấy giá trị ngày tháng. | DateAdd(UTCNow(),-1,TimeUnit.Years) |
Tạo một cột công thức thập phân
Tạo một cột công thức trả về số thập phân.
- Khi bạn tạo một cột, hãy nhập thông tin sau:
- A Tên hiển thị cho cột.
- Nhập Mô tả của cột (không bắt buộc).
- Đối với Loại dữ liệu chọn fx Công thức.
- Nhập công thức trả về giá trị số vào thanh Công thức . Ví dụ này tạo một cột công thức có tên là Tổng số tiền. Cột đơn giá có kiểu dữ liệu thập phân.
- Mở rộng Tùy chọn nâng cao, chọn Thập phân làm Kiểu dữ liệu công thức, sau đó đặt số chữ số thập phân cần thiết.
- Chọn Lưu.
Tạo một cột công thức số nguyên
Tạo một cột công thức trả về một số nguyên.
- Khi bạn tạo một cột, hãy nhập thông tin sau:
- A Tên hiển thị cho cột.
- Nhập Mô tả của cột (không bắt buộc).
- Đối với Loại dữ liệu chọn fx Công thức.
- Nhập công thức trả về giá trị số vào thanh Công thức . Ví dụ này tạo ra một cột công thức có tên là Số đơn vị. Tổng giá và đơn giá các cột có kiểu dữ liệu thập phân.
- Mở rộng Tùy chọn nâng cao và chọn Số nguyên làm Kiểu dữ liệu công thức và đặt định dạng bắt buộc cho cột số nguyên.
- Chọn Lưu.
Hướng dẫn và hạn chế
Phần này mô tả các hướng dẫn và những hạn chế đã biết với các cột công thức trong Dataverse.
Xác thực sử dụng trường tiền tệ
- Các cột công thức không hỗ trợ việc sử dụng cột tiền tệ trong bảng liên quan trong công thức, chẳng hạn như trong ví dụ này.
- Hiện tại không hỗ trợ việc sử dụng trực tiếp các cột tiền tệ và tỷ giá hối đoái trong công thức. Việc sử dụng các cột tiền tệ và tỷ giá hối đoái được thực hiện thông qua chức năng
Decimal
chẳng hạn nhưDecimal(currency column)
hoặcDecimal(exchange rate)
. Hàm này đảm bảo đầu ra nằm trong phạm vi được chấp nhận.Decimal
Nếu giá trị cột tiền tệ hoặc tỷ giá hối đoái vượt quá phạm vi được chấp nhận thì công thức trả về giá trị null. - Các cột tiền tệ cơ sở không được hỗ trợ trong biểu thức cột công thức vì chúng là các cột hệ thống được sử dụng cho mục đích báo cáo. Nếu bạn muốn có kết quả tương tự, bạn có thể sử dụng đơn vị tiền tệ loại cột cùng với tổ hợp cột tỷ giá hối đoái như
CurrencyField_Base = (CurrencyField / ExchangeRate)
.
Xác thực sử dụng cột ngày giờ
- Hành vi của các cột công thức ngày giờ chỉ có thể được cập nhật khi chúng không được sử dụng trong cột công thức khác.
- Đối với các cột công thức ngày giờ, khi sử dụng hàm
DateDiff
, hãy đảm bảo rằng:- Cột hành vi cục bộ của người dùng không thể được so sánh hoặc sử dụng với cột hành vi.
DateTime(TZI)/DateOnly
- Cột hành vi cục bộ của người dùng chỉ có thể được so sánh hoặc sử dụng với cột hành vi cục bộ của người dùng khác.
DateTime(TZI)
các cột hành vi có thể được so sánh hoặc sử dụng trongDateDiff
các hàm với mộtDateTime(TZI)/DateOnly
cột hành vi khác.DateOnly
các cột hành vi có thể được so sánh hoặc sử dụng trong hàm DateDiff với một cột hành vi khác.DateTime(TZI)/DateOnly
- Cột hành vi cục bộ của người dùng không thể được so sánh hoặc sử dụng với cột hành vi.
- Các cột ngày giờ và hàm ngày giờ
UTCNow()
,Now()
không thể được truyền làm tham số cho các hàm chuỗi.
Sử dụng cột công thức trong các trường cuộn lên
- Cột công thức đơn giản là nơi công thức sử dụng các cột từ cùng một bản ghi hoặc sử dụng các giá trị được mã hóa cứng. Đối với các cột tổng hợp, các cột công thức phải là các cột công thức đơn giản, chẳng hạn như cột tổng hợp ví dụ này.
- Cột công thức phụ thuộc vào các hàm ràng buộc thời gian
UTCNow()
vàUTCToday()
không thể được sử dụng trong trường tổng hợp.
Power Fx khuyến nghị chức năng văn bản
Các cột công thức không hỗ trợ các hàm có một đối số duy nhất thuộc kiểu Số.
Text()
Số có thể là số nguyên, số thập phân hoặc tiền tệ.Các cột công thức không hỗ trợ sử dụng số trong các cấu hình sau:
- Trong các hàm chuỗi. Đây là các hàm chuỗi được đặt ở bất kỳ nơi nào cần có đối số văn bản: Upper, Lower, Left, Right, Concatenate, Mid, Len, StartsWith, EndsWith, TrimEnds, Trim, Substitute và Replace.
- Trong các công thức ngầm định, chẳng hạn như
12 & "foo"
, hoặc12 & 34
, hoặc"foo" & 12
. - Không hỗ trợ chức năng chuyển đổi số thành văn bản nội bộ. Chúng tôi khuyên bạn nên sử dụng
Text(Number, Format)
để chuyển đổi số thành văn bản. Trong trường hợp đối sốString
được truyền vào hàmText
thì đối sốFormat
đó không được hỗ trợ. - Sau đây là ví dụ sử dụng hàm
Text
để chuyển đổi số thành văn bản và thêm chuỗi vào đó:
Concatenate(Text(123,"#"),"ab") Text(123,"#") & "foo"
Các mã định dạng dành riêng cho ngôn ngữ như "." và "," không được hỗ trợ trong các cột công thức.
Xác thực phạm vi trên các cột công thức
- Bạn không thể đặt thuộc tính Giá trị tối thiểu hoặc Giá trị tối đa của cột công thức.
- Tất cả các phép tính nội bộ phải nằm trong phạm vi Dataverse cho các cột công thức kiểu thập phân (-100000000000 đến 100000000000).
- Giá trị theo nghĩa đen được mã hóa cứng được nhập vào thanh công thức phải nằm trong phạm vi Dataverse .
- Nếu có một cột số là null thì nó được coi là 0 trong phép toán trung gian. Ví dụ,
a+b+c and If a = null, b=2, c=3
thì cột công thức sẽ đưa ra0 + 2 + 3 = 5
.- Hành vi này khác với các cột được tính toán trong trường hợp này vì các cột được tính toán đưa ra
null + 2 + 3 = null
.
- Hành vi này khác với các cột được tính toán trong trường hợp này vì các cột được tính toán đưa ra
Xác thực chung trên các cột công thức
- Các cột công thức có thể tham chiếu đến các cột công thức khác, nhưng một cột công thức không thể tham chiếu đến chính nó.
- Các cột công thức không hỗ trợ chuỗi tuần hoàn, chẳng hạn như
F1 = F2 + 10, F2 = F1 * 2
. - Độ dài biểu thức công thức tối đa trong các cột công thức là 1.000 ký tự.
- Độ sâu tối đa được phép trong các cột công thức là 10. Độ sâu được định nghĩa là chuỗi các cột công thức tham chiếu đến các cột công thức hoặc cột tổng hợp khác.
- Ví dụ:
table E1, F1 = 1*2, table E2, F2 - E1*2
. Trong ví dụ này, độ sâu của F2 là 1.
- Ví dụ:
- Trong các ứng dụng dựa trên mô hình, tính năng sắp xếp bị vô hiệu hóa trên:
- Cột công thức chứa một cột của bảng có liên quan.
- Một cột công thức có chứa một cột logic (ví dụ: cột địa chỉ).
- Một cột công thức chứa một cột tính toán hoặc công thức khác.
- Cột công thức sử dụng hàm giới hạn thời gian
UTCNow()
.
- Các cột kiểu Số nguyên có định dạng Ngôn ngữ, Thời lượng, Múi giờ không được hỗ trợ trong các cột công thức.
- Các cột kiểu Chuỗi có định dạng Email, Vùng văn bản, Ký hiệu chứng khoán, URL không được hỗ trợ trong các cột công thức.
- Các cột công thức không hiển thị giá trị khi ứng dụng ở chế độ ngoại tuyến trên thiết bị di động.
- Bạn không thể kích hoạt quy trình công việc hoặc plug-in trên các cột công thức.
- Chúng tôi không khuyến khích sử dụng các cột được tính toán trong các cột công thức và ngược lại.
- Quy tắc phát hiện sự trùng lặp không được kích hoạt trên các cột công thức.
- Hàm
Now
có thể được sử dụng với các cột công thức.Now()
có hành vi cục bộ của người dùng và có hành vi độc lập với múi giờ.UTCNow()
- Bạn có thể thiết lập thuộc tính độ chính xác cho các cột thập phân.
- Giá trị kiểu dữ liệu công thức mặc định được đặt thành Thập phân cho giá trị số trả về công thức.
- Không hỗ trợ cập nhật định dạng cột công thức số nguyên.
Power Fx chức năng hiện không được hỗ trợ
- Lũy thừa
- Sqrt
- Exp
- Ln
- ^ (toán tử)
Các cột công thức của kiểu dữ liệu không thể tạo được
- Các lựa chọn (trừ lựa chọn Có/Không)
- Tiền tệ