定義計算結果資料行以自動化計算
使用計算結果資料行將商務程序所使用的其他手動計算自動化。
例如,銷售人員可能想要知道商機的加權營收,這是根據商機的估計營收乘以可能性。 或者,如果訂單大於 $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>
。在以下的導出欄位,排序為停用:
- 包含上層資料列資料行的計算結果資料行。
- 包含邏輯資料行 (例如地址資料行) 的計算結果資料行
- 包含其他計算結果資料行的計算結果資料行。
- 包含
Now()
函式的計算結果欄。
計算結果資料行只能跨兩個表格。
- 計算結果資料行可以包含來自另一個表格的資料行 (跨兩個表格 – 目前表格和上層資料列)。
- 計算結果資料行不能包含另一個表格的計算結果資料行 (此另一個表格同樣包含來自不同表格的其他資料行-跨三個表格):
(目前表格) 計算結果資料行 ← (上層資料列) 計算結果資料行 1 ← (上層資料列) 計算結果資料行 2。
您無法在計算結果資料行上觸發工作流程或外掛程式。
您無法將現有簡單資料行變更為計算結果資料行。 如果您目前的應用程式使用 JavaScript 或外掛程式來計算資料行,則必須建立新資料行,才能夠使用計算結果資料行功能。
重複資料偵測規則不會在計算結果資料行上觸發。
彙總無法參照使用其他計算結果資料行的計算結果資料行,即使其他計算結果資料行的所有資料行都在目前表格上。
當貨幣計算結果欄相依於相關資料表的貨幣欄時,系統將使用對應的基礎貨幣欄值執行計算。 這是因為不同資料表記錄之間的匯率值和貨幣值可能會有所不同。 例如,考慮
Opportunity
表上的計算結果欄 -Account Revenue
,並考慮Account Revenue
相依於Account
表上的Annual Revenue
貨幣欄,則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']