定義導出資料行以自動化計算
使用計算結果資料行將商務程序所使用的其他手動計算自動化。
例如,銷售人員可能想要知道商機的加權營收,這是根據商機的估計營收乘以可能性。 或者,如果訂單大於 $500,他們要自動套用折扣。 計算結果資料行可以包含簡單算術運算和條件運算 (例如大於或 If-Else) 及許多其他運算所產生的值。 您可以使用 Power Apps 完成所有運算,不需要撰寫程式碼。
功能
- 計算結果資料行會使用目前資料表或相關上層資料表中的資料行。
- 在目前資料表以及 條件 區段和 動作 區段中的相關上層資料表資料行提供運算式支援。 內建函式包括:
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 個字元。 | String |
備註
所有 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-3456789
TRIMRIGHT ("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>。 - 在以下的導出欄位,排序為停用:
- 包含上層資料列資料行的計算結果資料行。
- 包含邏輯資料行 (例如地址資料行) 的計算結果資料行
- 包含其他計算結果資料行的計算結果資料行。
- 計算結果資料行只能跨兩個資料表。
- 計算結果資料行可以包含來自另一個資料表的資料行 (跨兩個資料表 – 目前資料表和上層資料列)。
- 計算結果資料行不能包含其他資料表中同樣包含不同資料表其他資料行的計算結果資料行 (跨三個資料表):
(目前資料表) 計算結果資料行 ← (上層資料列) 計算結果資料行 1 ← (上層資料列) 計算結果資料行 2。
- 您無法在計算結果資料行上觸發工作流程或外掛程式。
- 您無法將現有簡單資料行變更為計算結果資料行。 如果您目前的應用程式使用 JavaScript 或外掛程式來計算結果資料行,必須建立新資料行,才能夠使用計算結果資料行功能。
- 重複資料偵測規則不會在計算結果資料行中觸發。
- 彙總無法參照使用其他計算結果資料行的計算結果資料行,即使其他計算結果資料行的所有資料行都在目前資料表上。
請參閱
意見反映
提交及檢視以下的意見反映: