公式規則
簡介
公式,可以使欄位的值根據函數自動計算出來,不需要再手動填寫。本文將介紹公式編輯中的編寫規則,幫助您更好的設計和使用公式。
使用介面
公式編輯的使用介面如下:
公式的組成
公式通常由欄位、函數、運算符和標點符號組成,以如下公式為例:
ROUND(總價/數量,2)
欄位:公式計算的資料來源,在表單欄位中點擊選擇,如範例公式中的「總價」、「數量」;
- 函數:可以直接輸入函數名稱,或在函數列表中選擇使用,如範例公式中的「ROUND」;
- 運算符:“+、-、*、/”等資料運算符號,直接在公式編輯區手動輸入,如範例公式中的「/」;
- 標點符號:完整的公式常常需要新增標點符號進行完善,如範例公式中的逗號、括號。
公式規則
欄位的新增規則
在公式編輯中,所有的欄位實際上都有一個內置的 ID,而所能看見的欄位名稱,也僅僅是一個名稱。如需在公式中插入欄位,可透過如下三種方式:
- 在欄位列表中選擇:在左下角的欄位列表中點擊欄位,進行新增;
- 直接搜尋欄位名稱:在編輯區輸入當前表單中的欄位名稱,搜尋出對應欄位,並新增至公式中;
- 複製貼上:點擊右上角「複製公式」,在公式編輯中貼上使用。以下場景中,公式均可相互複製使用:
- 表單欄位公式
- 表單送出校驗
- 表單批次編輯
- 流程送出校驗
- 儀錶板計算欄位
- 資料工廠計算欄位
- 彙總表指標
- 彙總表送出校驗
附註:
1. 僅透過「複製公式」貼上的欄位可用,手動輸入名稱或其他位置貼上的欄位不可用;
2. Safari 瀏覽器,複製/剪切公式時暫不支援滑鼠右鍵或鍵盤快速鍵。
在當前/所有表單欄位中選擇欄位
公式所要用到的欄位,絕大多數情況下是從當前表單欄位中選擇。只有 MAPX 函數的最後兩個參數會用到所有表單欄位。
1. 新增當前表單欄位
在當前表單中,選擇需要新增的欄位。
2. 新增所有表單欄位
在欄位列表處切換至所有表單,選擇對應表單中的欄位:
附註:
從當前表單欄位中選擇的欄位是藍色的,從所有表單欄位中選擇的欄位是灰色的。
替換變數
如公式中的欄位變數需要進行替換修改,可透過「替換變數」快速更換欄位,便於批次修改公式內容,提升操作效率。
點擊工具欄的「替換變數」,分別選擇「選擇要替換的變數」和「選擇替換後的變數」,點擊「確定」即可完成替換:
備註
「備註」即對公式新增備註資訊,可用於記錄公式的用途、說明或其他相關資訊,提升公式的可讀性,便於後續對公式進行管理和維護。
點擊「備註」,在文字框中輸入備註內容,點擊「確定」即可新增備註資訊:
偵錯
「偵錯」即預覽公式的執行效果,可用於驗證公式的準確性,以便於快速對公式進行調整改善,效果如下:
運算符號
Jodoo 公式編輯中,支援的運算操作符和比較操作符如下:
運算規則 | 運算符號 |
加 | + |
減 | - |
乘 | * |
除 | / |
大於 | > |
小於 | < |
等於 | ==(註意不是=) |
不等於 | != |
大於等於 | >= |
小於等於 | <= |
標點符號
1. 公式內所有出現的符號,都必須在英文狀態下輸入。
如使用了中文標點,頁面中會提示「字符錯誤」。
2. 如編輯公式時使用了函數,則必須要按照範例使用括號,且保證括號的兩兩匹配。
如缺少括號,或未兩兩匹配,頁面中會提示「語法錯誤,缺少標示符」,如下圖所示:
函數的輸入規則
新增函數時,除了在函數列表選擇,還可以手動輸入。輸入函數時會自動搜尋出相關函數,可以直接點擊使用:
字符數量限制
編輯公式時需要注意,每個公式最多新增 2000 行,且單行不能超過 10000 個字符,單行字符較多時建議使用回車鍵換行,而非超出編輯框自動換行。
當超出每個公式 2000 行或單行 10000 個字符限制時,會導致公式內容儲存不全和無法運行公式的情況。
函數的參數設定
編寫公式使用函數時,需要注意如下參數相關問題:
1. 參數的個數
函數中參數的個數必須按照要求填寫,保證公式的正常運行。
例如,日期函數 DATEDELTA,該函數要求新增兩個參數,分別為「指定日期」和「需要加減的天數」。當函數的參數只新增了一個時,公式將無法正常計算,且頁面中會提示「DATEDELTA:表達式參數的個數不符合要求」。
2. 參數的資料類型
編寫公式時要按照函數的要求,保證參數的資料類型的正確。
例如,日期函數 DAYS,該函數要求所有參數都必須是時間戳類型。當函數的參數使用了文字類型時,公式將無法正常計算,且頁面中會提示「DAYS:表達式的第1個參數不符合類型要求」,如下圖所示:
子表單中公式的使用
子表單中,一個欄位儲存的是一欄資料,即一個子表單欄位對應了多個值;如下圖的「名稱」欄位對應的值為:蘋果、西瓜、荔枝、櫻桃。
由於部分函數的參數是單個欄位值,如 LEFT、LOWER、TEXTDEPT 等,故這些函數不能直接在主表中使用子表單欄位。
如,需要將子表單中某一列的資料都轉化為小寫,並彙總在主表欄位中:
- 如果直接在主表透過 CONCATENATE 函數和 LOWER 函數調用,則會調用失敗;
- 如果先在子表中使用 LOWER 函數,再在主表中透過 CONCATENATE 函數將文字連接起來,則可以調用成功。
返回值資料類型
在對欄位編輯公式時,不同的欄位對公式的返回值的資料類型有不同的要求,不符合要求則可能無法獲得正確的結果。
例如,對數字欄位編寫公式時,數字欄位要求返回值的資料類型必須是數字,那麼如果公式是 TODAY() , 就會導致公式無法計算出結果,因為 TODAY 函數的返回值是日期,不符合數字欄位要求的返回值的資料類型。
支援編輯公式的表單欄位對不同公式的返回值資料類型要求如下:
欄位 | 對公式返回值的資料類型的要求 |
單行文字 | 文字、數字、日期等(日期以日期物件形式展示) |
多行文字 | 正文、數字、日期等(日期以日期物件形式展示) |
數字 | 只能是數字 |
日期時間 | 日期或數字(數字會視為單位為毫秒的時間戳) |
擴展閱讀(建議進階使用者閱讀)
上文「返回值資料類型」中提到了不同欄位對公式返回值的資料類型的要求,會發現單行文字的返回值並不僅限於文字,可以是數字等。
這是因為在 Jodoo 中支援部分資料類型之間的自動轉換,數字「2」可以自動轉換為文字「2」,任何數字都可以這樣輕易轉換。
但是文字就不行了,文字「張三」就沒法轉換成數字,所以數字欄位要求其公式的返回值只能是數字。
編寫公式時,我們可以插入欄位到公式中,插入到公式中的欄位的資料類型和欄位對公式返回值的資料類型並非完全相同。
例如,上文提到了單行文字編寫公式時,公式的返回值可以是數字,但是在公式中插入單行文字欄位時,該單行文字的資料類型只會是文字。
常見欄位插入公式後的資料類型如下表所示:
欄位 | 插入公式時的資料類型 |
單行文字 | 文字 |
數字 | 數字 |
日期時間 | 時間戳 |
下拉單選 | 文字 |
單選 | 正文 |
下拉複選框 | 陣列 |
複選 | 陣列 |