使用計算結果資料行將商務程序所使用的其他手動計算自動化。
例如,銷售人員可能想要知道商機的加權營收,這是根據商機的估計營收乘以可能性。 或者,如果訂單大於 $500,他們要自動套用折扣。 計算結果資料行可以包含簡單算術運算和條件運算 (例如大於或 If-Else) 及許多其他運算所產生的值。
功能
- 計算結果資料行會使用目前表格或相關上層表格中的資料行。
- 在目前表格以及條件區段和動作區段中的相關上層表格資料行提供運算式支援。 內建函式包括:
ADDHOURS、ADDDAYS、ADDWEEKS、ADDMONTHS、ADDYEARS、SUBTRACTHOURS、SUBTRACTDAYS、SUBTRACTWEEKS、SUBTRACTMONTHS、SUBTRACTYEARS、DIFFINDAYS、DIFFINHOURS、DIFFINMINUTES、DIFFINMONTHS、DIFFINWEEKS、DIFFINYEARS、CONCAT、TRIMLEFT 和 TRIMRIGHT。 如需了解詳細資訊,請參閱函數語法。 - 豐富的條件支援提供分支以及多個條件。 邏輯作業包括 AND 和 OR 運算子。
- 視覺編輯功能包含動作區段中的現代使用者介面和 intellisense。
- 計算結果資料行和表單、檢視表、圖表與報表順暢整合,可即時使用。
- 您可以將計算結果資料行設定為使用自訂控制項。
案例
- 加權營收:估計營收乘以可能性
- 淨值:資產減去特定客戶債務
- 勞動成本:基本工資最多 40 小時,另加更多加班費
- 連絡人號碼:根據客戶或連絡人,商機的電話號碼
- 潛在客戶分數:提供特定潛在客戶品質見解的單一資料行
- 跟進截止日期:根據優先順序,依指定的天數追蹤活動
重要
若要建立計算列,您必須具有欄位安全性設定檔資料表的寫入權限。 如果計算結果資料行使用計算中受保護的資料行,您也應考慮保護計算結果資料行,以防止使用者存取他們沒有充分權限的資料。 如果您建立的計算列在計算中使用了安全性列,則計算列編輯器會向您發出警告,建議您保護該計算列。 更多資訊:資料行級安全性以控制存取權限。
支援計算的資料行類型
- 文字
- 選擇
- 是/否
- 整數
- 十進位數字
- 貨幣
- 日期時間
建立計算結果資料行
登入 Power Apps
從左瀏覽窗格選取解決方案。 如果此項目不在側邊面板窗格中,請選取 ...其他 ,然後選取您想要的項目。
開啟具有所需表格的非受控解決方案。
選取欄區域,然後選取命令列上的新增欄。
提供欄的資訊,包括顯示名稱、名稱和資料類型。
如果資料類型是其中一個支援計算的欄類型,則可以從行為下拉式清單選取已計算將欄設為計算結果欄。
儲存並編輯連結會顯示在下拉式清單底下。 選取該連結。
即會儲存新欄。 在欄清單中,開啟您在上一個步驟中儲存的欄。
在編輯欄窗格的行為下拉式清單中,選取編輯。
在計算欄定義編輯器中,請注意新的計算列已建立,但未設定公式。 計算結果資料行定義包含兩個區段:條件和動作。
- 在條件段落中,選擇新增條件以指定表格、資料列、運算子、類型和數值。 在表格的下拉式方塊,可以選取目前表格或相關表格。 在資料行下拉式方塊中,可以選取表格的所有可用資料行。 根據您選擇的運算子,您可能需要提供類型和值。 使用
AND或OR運算子,您可以指定多個條件。 完成指定條件後,選擇複選標記。
- 指定條件後,在動作部分中,選擇新增動作以提供計算列的公式。 完成指定動作後,選擇複選標記。
注意
您可以從 [動作] 中的 [查詢] 資料列使用資料。 您必須先選取 [查詢] 資料行,然後輸入句點。 之後,您可以在相關表格上選取其中一個可用資料行。 例如,透過
<LookupFieldName>.<RelatedFieldName>,您可以選擇:ParentAccountId.AccountNumber。相關表上的欄級安全性被忽略,因此如果存取的欄中有敏感資料,也要保護計算欄的安全性。
- 在條件段落中,選擇新增條件以指定表格、資料列、運算子、類型和數值。 在表格的下拉式方塊,可以選取目前表格或相關表格。 在資料行下拉式方塊中,可以選取表格的所有可用資料行。 根據您選擇的運算子,您可能需要提供類型和值。 使用
在計算結果資料行編輯器中,選取儲存並關閉。
範例
讓我們深入了解計算結果資料行範例。
商機的加權營收
在此範例中,我們會使用商機表格的資料行,以根據商機的可能性計算加權營收。 在商機表格資料行編輯器中,我們會建立稱為加權營收的資料行,並指定資料行類型為計算,以及資料類型為貨幣。
在計算結果資料行定義編輯器,我們在條件區段中指定商機狀態 = 開啟。 在動作,公式根據商機估計營收乘以商機可能性,來計算加權營收。 以下螢幕擷取畫面顯示如何逐步定義加權營收計算結果資料行。
設定商機的條件:
提供加權營收公式:
總共:
商機跟進日期
在此範例中,我們會使用商機之來源潛在客戶的資料行,以計算追蹤商機的適當日期。
在商機表格資料行編輯器,我們會建立稱為追蹤日期的資料行,並指定資料行類型為計算,以及資料類型為日期及時間。
在計算結果資料行定義編輯器,我們在條件區段中指定兩個條件:購買時間範圍和潛在客戶的估計價值。
在動作中,我們提供兩個公式:
- 在一週後跟進立即商機
- 如果商機不可能立即發生,則在一個月後追蹤。
以下螢幕擷取畫面顯示如何逐步定義追蹤日期計算結果資料行。
在原始潛在客戶上設定兩個條件:
提供在一週後跟進的公式:
提供在一個月後跟進的公式:
總共:
自建立資料列起算的天數
在此範例中,我們會使用 DIFFINDAYS 函式來計算自資料列建立的時間點到目前日期的天數。
建立名為計算以天數為單位的差的整數資料行。
提供計算天數差的公式
總共:
函數語法
下表包含計算結果資料行的動作區段中所提供函數的語法資訊。
提示
函數名稱以大寫字母指定。
| 函數語法 | 描述 | 傳回類型 |
|---|---|---|
| ADDDAYS (整數, 日期及時間) | 傳回等於指定日期和時間加上指定天數的新日期和時間。 | 日期及時間 |
| ADDHOURS (整數, 日期及時間) | 傳回等於指定日期和時間加上指定時數的新日期和時間。 | 日期及時間 |
| ADDMONTHS (整數, 日期及時間) | 傳回等於指定日期和時間加上指定月數的新日期和時間。 | 日期及時間 |
| ADDWEEKS (整數, 日期及時間) | 傳回等於指定日期和時間加上指定週數的新日期和時間。 | 日期及時間 |
| ADDYEARS (整數, 日期及時間) | 傳回等於指定日期和時間加上指定年數的新日期和時間。 | 日期及時間 |
| SUBTRACTDAYS (整數, 日期及時間) | 傳回等於指定日期和時間,扣掉指定天數的新日期和時間。 | 日期及時間 |
| SUBTRACTHOURS (整數, 日期及時間) | 傳回等於指定日期和時間,扣掉指定時數的新日期和時間。 | 日期及時間 |
| SUBTRACTMONTHS (整數, 日期及時間) | 傳回等於指定日期和時間,扣掉指定月數的新日期和時間。 | 日期及時間 |
| SUBTRACTWEEKS (整數, 日期及時間) | 傳回等於指定日期和時間,扣掉指定週數的新日期和時間。 | 日期及時間 |
| SUBTRACTYEARS (整數, 日期及時間) | 傳回等於指定日期和時間,扣掉指定年數的新日期和時間。 | 日期及時間 |
| DIFFINDAYS (日期及時間, 日期及時間) | 傳回兩個日期及時間資料行之間的天數差。 如果這兩個日期和時間為同一天,則差為零。 | 整數 |
| DIFFINHOURS (日期及時間, 日期及時間) | 傳回兩個日期及時間資料行之間的小時數差。 | 整數 |
| DIFFINMINUTES (日期及時間, 日期及時間) | 傳回兩個日期及時間資料行之間的分鐘數差。 | 整數 |
| DIFFINMONTHS (日期及時間, 日期及時間) | 傳回兩個日期及時間資料行之間的月份數差。 如果這兩個日期和時間為同一個月,則差為零。 | 整數 |
| DIFFINWEEKS (日期及時間, 日期及時間) | 傳回兩個日期及時間資料行之間的週數差。 如果這兩個日期和時間為同一週,則差為零。 | 整數 |
| DIFFINYEARS (日期及時間, 日期及時間) | 傳回兩個日期及時間資料行之間的年數差。 如果這兩個日期和時間為同一年,則差為零。 | 整數 |
| CONCAT (單行文字,單行文字,...單行文字) | 傳回字串,串連兩個或多個字串的結果。 | 字串 |
| TRIMLEFT (單行文字, 整數) | 傳回字串,包含指定的字串複本,而不含前 n 個字元。 | 字串 |
| TRIMRIGHT (單行文字, 整數) | 傳回字串,包含指定的字串複本,而不含後 n 個字元。 | 字串 |
注意
所有 DIFF 函數都要求第一個日期和時間欄以及第二個日期和時間欄具有相同的行為:使用者當地時間、僅日期或時區無關。 如果第二個資料行的行為與第一個資料行的行為不相符,則會顯示錯誤訊息,指出第二個資料行無法在目前函式中使用。 其他資訊:日期及時間資料行的行為與格式。
提示
您不能輸入日期 (例如 01/01/2015) 作為計算列中的日期值。 Date 和 DateTime 值僅能使用其他 DateTime 資料行設定或比較。
在 CONCAT 函數中,可以使用常值字串做為單行文字、包含單行文字的表格資料行,或兩者的組合。 例如:CONCAT (FirstName, LastName, "為經理。")。 如果文字字串包含引號,則在每個引號前面加上反斜線 (\) 轉義字元,如下所示:This string contains the \"quotation marks.\"。這可確保字串內的引號不會被視為分隔字串的特殊字元。
下列範例示範如何使用 TRIMLEFT 和 TRIMRIGHT 函數。 它們包含初始字串與結果字串,由 TRIMLEFT 和 TRIMRIGHT 函數傳回:
TRIMLEFT ("RXX10-3456789", 3),傳回字串 10-3456789TRIMRIGHT ("20-3456789RXX", 3),傳回字串 20-3456789
考量因素
使用計算結果資料行時,您必須留意特定情況以及限制:
已儲存的查詢、圖表與視覺效果最多可有 50 個唯一計算結果資料行。
計算結果資料行值不會顯示在 Outlook 用戶端離線模式的圖格檢視表或表格的主要表單上。
鏈結的計算結果資料行最大數量為 5。
計算結果資料行無法參照本身或具有循環鏈結。
如果變更多條件子句中的一個條件運算子,則所有條件運算子都會更新為該條件。 例如,在子句
IF (x > 50) OR (y ==10) OR (z < 5)中,如果將OR運算子變更為AND運算子,則子句中的所有OR運算子都會成為AND運算子。您可以透過查閱列來存取上層資料表的上層,例如:
<LookupFieldName>.<FieldName>。 您無法存取多表查閱資料表 (例如客戶列,可以是帳戶列或連絡人列)。 但是,某些表具有針對特定表的單獨查閱列,例如ParentAccountid.<FieldName>或ParentContactid.<FieldName>。在以下的導出欄位,排序為停用:
- 包含上層資料列資料行的計算結果資料行。
- 包含邏輯資料行 (例如地址資料行) 的計算結果資料行
- 包含其他計算結果資料行的計算結果資料行。
- 包含
Now()函式的計算結果欄。
計算結果資料行只能跨兩個表格。
- 計算結果資料行可以包含來自另一個表格的資料行 (跨兩個表格 – 目前表格和上層資料列)。
- 計算列不能包含來自另一個表的計算列,該計算列還包含來自不同表的另一資料列 (跨越三個資料表):(目前資料表)← 計算欄 (上層列) 計算欄 1← (上層列) 計算欄 2。
您無法在計算結果資料行上觸發工作流程或外掛程式。
您無法將現有簡單資料行變更為計算結果資料行。 如果您目前的應用程式使用 JavaScript 或外掛程式來計算資料行,則必須建立新資料行,才能夠使用計算結果資料行功能。
重複資料偵測規則不會在計算結果資料行上觸發。
彙總無法參照使用其他計算結果資料行的計算結果資料行,即使其他計算結果資料行的所有資料行都在目前表格上。
當貨幣計算結果欄相依於相關資料表的貨幣欄時,系統將使用對應的基礎貨幣欄值執行計算。 這些計算是因為匯率值和貨幣值在不同的資料表記錄之間可能有所不同。 例如,考慮
Account Revenue表上的計算結果欄 -Opportunity,並考慮Account Revenue相依於Annual Revenue表上的Account貨幣欄,則Account Revenue的計算方式如下:[
'Account Revenue' = ['Annual Revenue (Base)' * 'Exchange Rate on Opportunity table record']] 或 ['Account Revenue' = [('Annual Revenue' / 'Exchange Rate on Account table record') * 'Exchange Rate on Opportunity table record']]