文字函數
CONCATENATE
CONCATENATE(text1,text2, …)
將多個文字字串合併成一個文字字元串。
例如,函數 CONCATENATE(A,B,C),回傳值為 ABC。
附註:
欄位或者函數之間,用逗號隔開;如果是字元串,需要用引號包裹起來。
例如,將時間、姓名和學號連起來成為一個新的字元串:
CONCATENATE(TEXT(DATE(時間),"yyyyMMdd"),"-","姓名","-","學號")
CHAR
CHAR(number)
CHAR 函數可將電腦其他類型的數字程式碼轉換為字元。
Number:用於指定字元的數字。
範例:CHAR(10),即回傳值為換行字元"\n"。
目前 Jodoo 僅支援以下數字程式碼:
Number | 字元 | 含義 |
9 | \t | 製錄符 tab |
10 | \n | 換行字元 |
34 | " | 雙引號 |
39 | ’ | 單引號 |
92 | \ | 反斜槓 |
EXACT
EXACT(text1,text2)
比較兩個字元串是否完全相同(區分大小寫)。完全相同則回傳 true,否則回傳 false。範例:
IP
IP()
取得當前使用者的 ip 位址。
ISEMPTY
ISEMPTY(text)
判斷值是否為空字元串、空對象或者空陣列。
以下三種方式,均表示該單選欄位為空值。
ISEMPTY(文字欄位);
ISEMPTY(文字欄位)==TRUE();
ISEMPTY(文字欄位)==1。
附註:
判斷的是該單選欄位被編輯後是否為空值。
ISEMPTY 函數也可用於表單提送出校驗。
JOIN
JOIN 函數可透過連接符將陣列的值連成文字。
函數用法:
JOIN(陣列, "連接符")
函數範例:如需將複選框中勾選的選項透過”-“組合在一起,則可設定公式為JOIN(複選,"-")。
LEFT
LEFT(text,[num_chars])
從一個文字字元串的第一個字元開始回傳指定個數的字元。
LEN
LEN(text)
回傳文字字元串中的字元個數。(空格也將作為字元進行計數)
LOWER
LOWER(text)
將一個文字字元串中的所有大寫字母轉換為小寫字母。
MID
MID(text, start_num, num_chars)
返回文字字元串中從指定位置開始的特定數目的字元,該數目由使用者指定。
- text: 必需。 包含要提取字符的文字字元串。
- start_num: 必需。 文字中要提取的第一個字元的位置。 文字中第一個字元的 start_num 為 1,以此類推。
- num_chars: 必需。 指定希望從字元中回傳字元的個數。
以身份證號中提取生日為例:透過 MID 函數提取身份證號的第 7 到 10 位,後面接“-”,提取身份證號的 11、12 位,接“-”,最後提取身份證號的 13、14 位。最後,採用 CONCATENATE 函數將提取出來數字和“-”連接符相連。
REPLACE
REPLACE(old_text, start_num, num_chars, new_text)
根據指定的字元數,將部分文字字元串替換為不同的文字字元串。
- old_text: 必需。要替換其部分字元的文字。
- start_num: 必需。old_text 中要替換為 new_text 的字元位置。
- num_chars: 必需。old_text 中希望使用 new_text 來進行替換的字元數。
- new_text: 必需。將替換 old_text 中字元的文字。
REPLACE(字元串1,2,4,字元串2),即將字元串 1 中的第 2 位之後的 4 位(即 2,3,4,5 位),用字元串 2 來替換。
REPT
REPT(text, number_times)
將文字重複一定次數。
- text: 必需。需要重複顯示的文字。
- Number_times: 必需。用於指定文字重複次數的正數。
RIGHT
RIGHT(text,[num_chars])
回傳文字值中最右邊的字元。
- text: 必需。包含要提取字元的文字字元串。
- num_chars: 可選。指定希望提取的字元數。
如下圖,可以取得文字內容中最右側四個字元。
RMBCAP
函數可以將金額小寫轉換為人民幣大寫金額形式。
函數用法:
RMBCAP(数字)
函數範例:如,在財務結算、報銷管理、對公付款等場景中,可以利用 RMBCAP 函數將金額轉換為大寫,避免被篡改產生的負面影響。
附註:
人民幣大寫只到分位(小數點後兩位),從釐(小數點後三位)開始捨棄,捨棄部分不進行四捨五入。
SEARCH
SEARCH(find_text,within_text,[start_num])
回傳第一個文字字元串在第二個文字字元串中第一次出現的位置序號,從左到右查找,忽略英文字母的大小寫;回傳0則表示未查找到。
- find_text: 必需。要查找的文字。
- within_text: 必需。字元所在文字。
- start_num: 可選。within_text 中從第幾個字符開始查找;未填寫則預設從第一個開始查找。
SPLIT
SPLIT(text, text_separator)
將文字按指定字元串分割成陣列。
TRIM
TRIM(text)
- 刪除字元串首尾的空格。
- 如果字元串內部存在連續多個空格,還會刪除至僅剩一個空格。
TEXT
TEXT(num,text_format)
將數字轉換成特定格式的文字。
其中 text_format 的含義如下:
- #:數字佔位符。只顯有意義的資料而不顯示無意義的資料。小數點後數字如大於”#”的數量,則按”#”的位數四捨五入。小數點後數字如小於”#”的數量,則顯示實際值。例:在文字框中輸入:###.##,23.1 顯示為 23.1,23.1578 顯示為 23.16。
- 0:數字佔位補位符。如果小數點前的資料的長度大於佔位符,則顯示實際資料,如果小於佔位符的數量,則用0補足。小數點後的資料的長度大於佔位符,則按“0”的位數四捨五入。小數點後數字如小於“0”的數量,則用“0”補足。例:在文字框中輸入:000.00,23.1 顯示為 023.10,23.1578 顯示為 023.16。
- ,:千位分隔符號號。可插入“#”或“0”中使用,數字中插入千位分隔符號號。合法使用形式:
- 需要在小數點前使用。
- 需要在“#”或“0”之間。
- %:百分比。放在數字佔位符或補位符之後。資料以百分比形式顯示。例:程式碼:#%,23.1 顯示為 2310%。
- [Num0] 顯示原始資料。
- [Num1] 將數字轉為中文小寫。123 顯示為一百二十三。
- [Num2] 將數字轉為中文大寫。123 顯示為壹佰貳拾叄。
- 直接在 [Num0] 或 # 或 0 的之前加字符即是前綴,支援中文字符、英文大小寫、¥、$ 及空格。
可根據自己需要自由組合。
範例:TEXT(123.7895,“#.##”)=123.79
TEXT(date, text_format)
將日期轉換成特定格式的文字。
其中 text_format 的含義如下:
- yy 表示年,顯示為 15
- yyyy 表示年,顯示為 2015
- M 表示月,顯示為 6
- MM 表示月,顯示為 06
- MMM 表示月,顯示為六月
- d 表示日,顯示為 9
- dd 表示日,顯示為 09
- HH 表示 24 小時制的時(0 點 10 分將顯示為 0:10)
- hh 表示 12 小時制的時(0 點 10 分將顯示為 12:10)
- mm 表示分
- ss 表示秒
- E 表示星期,結果為 0~6,分別表示星期日~星期六
- EE 表示星期,例如:日、一、二等
- EEE 表示星期,例如:星期日、星期一、星期二等
使用舉例:將日期轉換為文字。
UPPER
UPPER(text)
將一個文字字元串中的所有小寫字母轉換為大寫字母。
UNION
UNION(文字1,文字2,文字3,文字4) 或 UNION([陣列])
透過 UNION() 函數可以將重複資料自動剔除。
例:UNION(Alex,Bella,Cindy,Bella,Alex) 回傳值為 [Alex,Bella,Cindy]。
VALUE
VALUE(text)
將內容為數字的文字轉化為數字格式。
文字函數綜合運用範例
這裡給出一個,根據身份證號碼自動算性別的函數,用一個典型的函數來給大家啟發。
在表單裡輸入身份證號碼,自動生成性別。
需要解釋的是,身份證號碼第17位為性別位,奇數為男性,偶數為女性。所以此處我們用兩種方式來判斷性別。
1. 身份證的第17位數為奇數的時候,返回“男”,否則返回“女”。
IF(MOD(VALUE(MID(身份證號,17,1)),2)==1,"男","女")
2. 身份證的第17位數為1,3,5,7,9的時候,返回“男”,否則返回“女”。
IF(OR(MID(身份證號,17,1)==1,MID(身份證號,17,1)==3,MID(身份證號,17,1)==5,
MID(身份證號,17,1)==7,MID(身份證號,17,1)==9),"男","女")