輸出1:抓取左側英文部分
=LEFT(RC[-1],LEN(RC[-1])*2-LENB(RC[-1]))
語法
LEFT(text, [num_chars])
- 從左邊往右邊擷取字串。
- Text 你想從中擷取的字串。
- Num_chars 必須大於或等於零,指定要用 LEFT 擷取的字元數。
RC[-1]
指向正左邊的儲存格。
LEN(text)LENB(text)
- Text 要取得其長度的文字, 空白會當做字元計算。
- LEN 函數傳回字串中的字元數,中英文都算1個字元。
- LENB 函數傳回字串中字元的位元組數,中文字為2位元組,英文字為1位元組。
解析
這個函數式是藉由英文與中文的位元組差異,計算出左邊的英文字數量,並使用LEFT函數從左側擷取正確數量的字元。
LEN(RC[-1])*2-LENB(RC[-1])
LEN(RC[-1])
字串字元長度(中英文皆算1位元)也就是:
英文字數量*1+中文字數量*1
LENB(RC[-1])
字串位元組長度(英文算1位元、中文算2位元)也就是:
英文字數量*1+中文字數量*2
LEN(RC[-1])*2-LENB(RC[-1])
(英*1+中*1)*2-(英*1+中*2)=英文字數量*1
得出英文字數量後再放入LEFT函數的[num_chars]變數即可。
=LEFT(RC[-1],LEN(RC[-1])*2-LENB(RC[-1]))
輸出2:抓取右側中文部分
=RIGHT(RC[-2],LENB(RC[-2])-LEN(RC[-2]))
語法
RIGHT(text, [num_chars])
- 從右邊往左邊擷取字串。
其他都跟LEFT函數差不多。
RC[-2]
因為我們的輸出是第三直行,所以要指向左邊第二個儲存格。
LEN(text)LENB(text)
這兩個函數也跟上面一樣。
解析
與取英文字的方式差不多,只是改為從右邊取中文字數量,先得出中文字數量就好。
LENB(RC[-2])-LEN(RC[-2])
LENB(RC[-2])
英文字數量*1+中文字數量*2
LEN(RC[-2])
英文字數量*1+中文字數量*1
LENB(RC[-2])-LEN(RC[-2])
(英*1+中*2)-(英*1+中*1)=中文字數量*1
一樣得出中文字數量後再放入RIGHT函數的[num_chars]變數即可。
=RIGHT(RC[-2],LENB(RC[-2])-LEN(RC[-2]))