文本函数

本节介绍「文本」函数。

要访问此命令...

插入 - 函数 - 类别「文字


REGEX

使用正则表达式匹配、提取或选择性地替换文本。

WEBSERVICE

从 URI 获取一些 web 内容。

FILTERXML

对 XML 文档应用 XPath 表达式。

ENCODEURL

返回 URL 编码的字符串。

ARABIC

计算罗马数字的值。值的范围必须介于 0 和 3999 之间。

语法

ARABIC("文本")

文本」是表示罗马数字的文本。

示例

=ARABIC("MXIV")」返回 1014

=ARABIC("MMII")」返回 2002

ASC

ASC 函数将全角转换为半角 ASCII 码和片假名字符。返回字符串。

转换映射表参见 https://wiki.documentfoundation.org/Calc/Features/JIS_and_ASC_functions

语法

ASC("文本")

文本」是包含要转换的字符的文本。

另请参见 JIS 函数。

BAHTTEXT

将数字转换为泰语文本,包括泰国货币名称。

语法

BAHTTEXT(数字)

数字」为任意数字。"Baht" 将被附加到该数字的整数部分,而 "Satang" 将被附加到该数字的小数部分。

示例

=BAHTTEXT(12.65)」返回一个以泰语字符表示的字符串,该字符串的含义为「12 铢和 65 萨当」。

BASE

将以指定基数为底数的正整数通过编号系统转换成文本。 可以使用数字 0-9 和字母 A-Z。

语法

BASE(Number; Radix [; MinimumLength])

数字」是要转换的正整数。

Radix」指数字系统的基数,是一个介于 2 和 36 之间的正整数。

MinimumLength」 (可选) 用于确定已创建的字符序列的最小长度。如果文字长度小于设置的最小长度,则会在字符串左边加零。

示例

=BASE(17;10;4)」返回十进制系统中的 0017。

=BASE(17;2)」返回二进制系统中的 10001。

=BASE(255;16;4)」返回十六进制系统中的 00FF。

CHAR

根据当前代码表将数字转换成字符。数字可以是两位或三位的整数。

大于 127 的代码会依赖于您系统的字符映射 (例如 iso-8859-1、iso-8859-2、Windows-1252、Windows-1250),因此可能不能移植。

语法

CHAR(数字)

数字」是一个表示字符代码值的介于 1 和 255 之间的数字。

示例

=CHAR(100)」返回字符 d。

="abc" & CHAR(10) & "def" 在字符串中插入换行符。

CLEAN

所有非打印字符都被从字符串中删除。

语法

CLEAN("Text")

Text」要从中删除所有不能打印的字符的文本。

示例

=LEN(CLEAN(CHAR(7) & "LibreOffice Calc" & CHAR(8))) returns 16, showing that the CLEAN function removes the non-printable Unicode U+0007 ("BEL") and U+0008 ("BS") characters at the beginning and end of the string argument. CLEAN does not remove spaces.

CODE

返回文本字符串中第一个字符的数字代码。

语法

CODE("Text")

Text」要获得第一个字符编码的文字。

大于 127 的代码会依赖于您系统的字符映射 (例如 iso-8859-1、iso-8859-2、Windows-1252、Windows-1250),因此可能不能移植。

示例

=CODE("Hieronymus")」返回 72,「=CODE("hieroglyphic")」返回 104。

note

在这里使用的编码并不是ASCII编码,而是当前编码表的编码。


CONCATENATE

将多个文本字符串合并为一个字符串。

语法

CONCATENATE(String 1 [; String 2 [; … [; String 255]]])

String 1[; String 2][; … ;[String 255]] are strings or references to cells containing strings.

示例

=CONCATENATE("Good ";"Morning ";"Mrs. ";"Doe")」返回: Good Morning Mrs. Doe。

DECIMAL

数字系统中将带有字符的文本按给定的基数转换为正整数。基数必须介于 2 到 36 之间。空格和制表符会被忽略。「Text」字段不区分大小写。

如果 Radix 为 16,则开头的 x、X、0x 或 0X,以及结尾的 h 或 H 会被忽略。如果 Radix 为 2,则结尾的 b 或 B 会被忽略。采用其他不属于数字系统的字符将产生错误。

语法

DECIMAL("Text"; Radix)

Text」是要转换的文字。为了将十六进制数与单元格引用 (如 A1 与引用的单元格 A1) 区分开来,必须在数字前后加上引号,例如 "A1" 或 "FACE"。

Radix」指数字系统的基数,是一个介于 2 和 36 之间的正整数。

示例

=DECIMAL("17";10)」返回 17。

=DECIMAL("FACE";16)」返回 64206。

=DECIMAL("0101";2)」返回 5。

DOLLAR

将数字转换为货币格式,舍入到指定的小数位。在「数值」字段输入要转换为货币的数字。也可在「小数」字段输入小数位数。如果没有指定数值,则所有货币格式的数字都显示两位小数。

在系统设置中设置货币格式。

语法

DOLLAR(Value [; Decimals])

」是一个数值,一个含有数值的单元格引用,或一个返回数值的公式。

Decimals」是小数的可选位数。

示例

=DOLLAR(255) returns $255.00 for the English (USA) locale and USD (dollar) currency; ¥255.00 for the Japanese locale and JPY (yen) currency; or 255,00 € for the German (Germany) locale and EUR (euro) currency.

=DOLLAR(367.456;2)」返回 $367.46。请使用与当前区域设置相对应的小数点分隔符。

EXACT

比较两个文本字符串,如果二者相同,则返回 TRUE。此函数区分大小写。

语法

EXACT("Text1"; "Text2")

Text1」是要比较的第一个文本。

Text2」是要比较的第二个文本。

示例

=EXACT("microsystems";"Microsystems")」返回 FALSE。

FIND

返回一个文本字符串在另一个字符串中的位置。您也可以指定查找的开始位置。查找的项可以是数字或任意字符的字符串。查找区分大小写。

语法

FIND("FindText"; "Text" [; Position])

FindText」是要查找的文字。

Text」是要进行搜索的文本。

Position」 (可选) 是文字中开始搜索的位置。

示例

=FIND(76;998877665544)」返回 6。

FIXED

Returns a number as text with a specified number of decimal places and optional thousands separators.

语法

FIXED(Number; [Decimals = 2 [; NoThousandsSeparators = FALSE]])

Number is rounded to Decimals places (after the decimal separator) and the result formatted as text, using locale-specific settings.

Decimals (optional) refers to the number of decimal places to be displayed. If Decimals is negative, Number is rounded to ABS(Decimals) places to the left from the decimal point. If Decimals is a fraction, it is truncated actually ignoring what is the closest integer.

NoThousandsSeparators (optional) determines whether the thousands separator is used. If it is TRUE or non-zero, then group separators are omitted from the resulting string. If the parameter is equal to 0 or if it is missing altogether, the thousands separators of your current locale setting are displayed.

示例

=FIXED(1234567.89;3)」将 1,234,567.890 作为文本字符串返回。

=FIXED(123456.789;;TRUE) returns 123456.79 as a text string.

=FIXED(12345.6789;-2) returns 12,300 as a text string.

=FIXED(12134567.89;-3;1) returns 12135000 as a text string.

=FIXED(12345.789;3/4) returns 12,346 as a text string.

=FIXED(12345.789;8/5) returns 12,345.8 as a text string.

JIS

JIS 函数将半角转换为全角 ASCII 码和片假名字符。返回字符串。

转换映射表参见 https://wiki.documentfoundation.org/Calc/Features/JIS_and_ASC_functions

语法

JIS("文本")

文本」是包含要转换的字符的文本。

另请参见 ASC 函数。

LEFT

返回文本中第一个或前几个字符。

语法

LEFT("Text" [; Number])

文本」是确定初始部分字符的文本。

数字」 (可选) 指定开始文字的字符数。如果不定义此参数,则返回一个字符。

示例

=LEFT("output";3)」返回「out」。

LEFTB

返回 DBCS 文本的第一个字符。

tip

This function is available since LibreOffice 4.2.


语法

LEFTB("Text" [; Number_bytes])

文本」是需要确定其部分字节的原始文本,。

字节数」 (可选) 指定您需要用LEFTB截取的字符长度,单位为字节。如果该参数未指定,则返回1个字节。

示例

LEFTB("中国";1)」返回「」 (1 个字节只是半个 DBCS 字符,因此返回一个空格字符)。

LEFTB("中国";2)」返回「中」 (2 个字节构成一个完整的 DBCS 字符)。

LEFTB("中国";3)」返回「中」 (3 个字节构成一个半 DBCS 字符; 因此最后一个字符返回空格字符)。

LEFTB("中国";4)」返回「中国」 (4 个字节构成两个完整的 DBCS 字符)。

LEFTB("office";3)」返回「off」(3 个非 DBCS 字符,每个字符分别由一个字节构成)。

LEN

返回字符串的长度 (包括空格)。

语法

LEN("Text")

Text」是需要确定长度的文本。

示例

=LEN("Good Afternoon")」返回 14。

=LEN(12345.67)」返回 8。

LENB

对于双字节字符集 (DBCS) 语言,返回用于表示文本字符串中的字符所使用的字节数。

tip

This function is available since LibreOffice 4.2.


语法

LENB("文本")

Text」是需要确定长度的文本。

示例

LENB("中")」返回 2 (1 个 DBCS 字符为 2 字节)。

LENB("中国")」返回 4 (2 个 DBCS 字符,每个字符由 2 个字节构成)。

LENB("office")」返回 6 (6 个非-DBCS 字符串,每个均为 1 字节)。

=LENB("Good Afternoon")」返回 14。

=LENB(12345.67)」返回 8。

LOWER

将文本字符串中的所有大写字母转换为小写字母。

语法

LOWER("Text")

Text」是要转换的文字。

示例

=LOWER("Sun")」返回 sun。

MID

返回文本的文本字符串。参数用于指定起始位置和字符数。

语法

MID("Text"; Start; Number)

Text」是包含要提取的字符的文本。

Start」是要从文字字符串中提取字符的起始位置。

数字」指定文字中字符的数目。

示例

=MID("office",2,2)」返回 ff。

MIDB

返回DBCS文本的一个文本字符串。参数用于指定起始位置以及要返回的字节数。

tip

This function is available since LibreOffice 4.2.


语法

MIDB("文本", 起始, 字节数)

文本」是包含有要提取的字符的文本。

起始」要提取的文本中第一个字符的位置。

字节数」指定了 MIDB 将要返回的字符数,以字节为单位。

示例

MIDB("中国";1;0)」返回「」 (0 字节总是空字符串)。

MIDB("中国";1;1)」返回「」(1 字节只是半个 DBCS 字符,因此结果为空格字符)。

MIDB("中国";1;2)」返回「中」 (2 个字节构成一个完整的 DBCS 字符)。

MIDB("中国";1;3)」返回「中」 (3 个字节构成一个半 DBCS 字符; 最后一个字节结果为空格字符)。

MIDB("中国";1;4)」返回「中国」 (4 个字节构成两个完整的 DBCS 字符)。

MIDB("中国";2;1)」返回「」 (字节位置 2 不是 DBCS 字符串字符的开头; 因此返回 1 个空格字符)。

MIDB("中国";2;2)」返回「」 (字节位置 2 指向 DBCS 字符串第一个字符的后半部分; 因此请求的 2 个字节分别构成字符串中第一个字符的后半部分和第二个字符的前半部分; 因此返回 2 个空格字符)。

MIDB("中国";2;3)」返回「国」 (字节位置 2 不在 DBCS 字符串中字符的开头; 因此字节位置 2 返回空格字符)。

MIDB("中国";3;1)」返回 " " (字节位置3处于DBCS字符串中每个字符的开始位置,但是1字节只代表了DBCS字符的一半,因此返回一个空格字符)。

MIDB("中国";3;2)」返回「国」 (字节位置 3 不在 DBCS 字符串中字符的开头, 2 个字节构成一个 DBCS 字符)。

MIDB("office";2;3)」返回「ffi」 (字节位置 2 位于非 DBCS 字符串的开头, 非 DBCS 字符串的 3 字节构成 3 个字符)。

PROPER

将文本字符串的所有单词的首字母转换成大写。

语法

PROPER("文本")

文本」要转换的文字。

示例

=PROPER("the document foundation") returns The Document Foundation.

REPLACE

将文本字符串的一部分用其他文本字符串替换。 此函数可用于替换字符和数字 (将自动转换为文本)。函数的结果将始终显示为文本类型。如果想对已经替换成文本的数字执行进一步的计算,必须使用VALUE 函数将其转换回数字。

输入含有数字的文字时,如果您希望输入的信息不被解释为数字并自动转换成文字,则需要在文字前后加上引号。

语法

REPLACE("文本", 位置, 长度, "新文本")

文本」要将其部分内容替换掉的文本。

位置」是要替换的文本的起始位置。

长度」是要在「文本」中替换掉的字符数目。

新文本 是用来替换文本」的文字。

示例

=REPLACE("1234567",1,1,"444")」返回 "444234567"。位于位置1的一个字符整个被「新文本」替代。

REPT

按指定的重复「次数」重复字符串。

语法

REPT("文本", 次数)

文本」是要重复的文字。

次数」是重复的次数。

函数 REPT 的结果不能多于 255 个字符。

示例

=REPT("Good morning",2)」返回 Good morningGood morning。

RIGHT

返回文本中最后一个或多个字符。

语法

RIGHT("Text" [; Number])

文本」是指要确定其右侧部分字符的文字。

字符数」 (可选) 是文本右侧的字符数。

示例

=RIGHT("Sun",2)」返回 un。

RIGHTB

返回双字节字符集 (DBCS) 文本的最后一个或几个字符。

tip

This function is available since LibreOffice 4.2.


语法

RIGHTB("Text" [; Number_bytes])

文本」是需要确定其右侧字符的文本。

字节数」(可选) 指定RIGHTB函数需要提取多少个字符,以「字节」为单位。

示例

RIGHTB("中国";1)」返回「」 (1 个字节只是半个 DBCS 字符,因此返回空格字符作为代替)。

RIGHTB("中国";2)」返回「国」 (2 个字节构成一个完整的 DBCS 字符)。

RIGHTB("中国";3)」返回「国」 (3 个字节构成半个 DBCS 字符,和一个完整的 DBCS 字符; 第一个半字符返回空格)。

RIGHTB("中国";4)」返回「中国」 (4 个字节构成两个完整的 DBCS 字符)。

RIGHTB("office";3)」返回「ice」(3 个非 DBCS 字符,每个字符分别由一个字节构成)。

ROMAN

将数字转换成罗马数字。数字必须介于 0 到 3999 之间,Mode 的值可以是 0 到 4 之间的整数。

语法

ROMAN(Number [; Mode])

数字」是要转换成罗马数字的数字。

Mode」 (可选) 指示简化的级别。值越高,转换成的罗马数字就越简单。

示例

=ROMAN(999)」返回 CMXCIX

=ROMAN(999;0)」返回 CMXCIX

=ROMAN (999;1)」返回 LMVLIV

=ROMAN(999;2)」返回 XMIX

=ROMAN(999;3)」返回 VMIV

=ROMAN(999;4)」返回 IM

SEARCH

返回字符串中某个文本段的位置。您可以设置搜索的起始位置。搜索的文字可以是数字或任意的字符序列。搜索不区分大小写。如果文字未找到,则返回错误 519 (#VALUE)。

The search supports wildcards or regular expressions. With regular expressions enabled, you can enter "all.*", for example to find the first location of "all" followed by any characters. If you want to search for a text that is also a regular expression, you must either precede every character with a "\" character, or enclose the text into \Q...\E. You can switch the automatic evaluation of wildcards or regular expression on and off in - LibreOffice Calc - Calculate.

warning

When using functions where one or more arguments are search criteria strings that represents a regular expression, the first attempt is to convert the string criteria to numbers. For example, ".0" will convert to 0.0 and so on. If successful, the match will not be a regular expression match but a numeric match. However, when switching to a locale where the decimal separator is not the dot makes the regular expression conversion work. To force the evaluation of the regular expression instead of a numeric expression, use some expression that can not be misread as numeric, such as ".[0]" or ".\0" or "(?i).0".


语法

SEARCH("FindText"; "Text" [; Position])

FindText」是要搜索的文本。

Text」是要在其中进行搜索的文本。

Position」 (可选) 是开始搜索的起始字符位置。

示例

=SEARCH(54;998877665544)」返回 10。

SUBSTITUTE

用新文字替换字符串中的旧文字。

语法

SUBSTITUTE("Text"; "SearchText"; "NewText" [; Occurrence])

Text」是需要交换部分文字的文本。

SearchText」是要 (多次) 替换的文本段。

NewText」是用于替换文本段的文本。

次数」 (可选) 指出要替换第几次出现的搜索文本。如果不指定此参数,则所有搜索文本都将被替换。

示例

=SUBSTITUTE("123123123";"3";"abc")」返回 12abc12abc12abc。

=SUBSTITUTE("123123123";"3";"abc";2)」返回 12312abc123。

T

此函数返回目标文本,或者在目标不是文本时返回空白文本字符串。

语法

T(值)

如果「」是 (或表示) 文本字符串,则 T 返回文本字符串;否则返回空文本字符串。

示例

=T(12345)」返回空字符串。

=T("12345")」返回字符串 12345。

TEXT

Converts a value into text according to a given format.

语法

TEXT(Value; Format)

Value is the value (numerical or textual) to be converted.

Format」是定义格式的文字。根据单元格格式中的语言设置来使用小数点和千位分隔符。

示例

=TEXT(12.34567;"###.##")」返回文本 12.35

=TEXT(12.34567;"000.00")」返回文本 012.35

=TEXT("xyz";"=== @ ===") returns the text === xyz ===

tip

参见 数字格式代码: 用户定义的自定义格式代码。


TRIM

删除字符串中的空格,在字词之间只留一个空格。

语法

TRIM("Text")

文本」是指想要去除其中空格的文本。

示例

=TRIM(" hello world ")」返回「hello world」, 不包含开头和结尾的空格,但是包含单词之间的空格。

UNICHAR

将代码数字转换为 Unicode 字符或字母。

语法

UNICHAR(数字)

示例

=UNICHAR(169) 返回版权字符「©」。

tip

参见 UNICODE() 函数。


UNICODE

返回文本字符串中第一个 Unicode 字符的数字代码。

语法

UNICODE("文本")

示例

=UNICODE("©") 返回版权字符的 Unicode 数字 169。

tip

参见 UNICHAR() 函数。


UPPER

将「文本」字段中指定的字符串转换为大写形式。

语法

UPPER("Text")

Text」是要将其转换为大写的小写字母。

示例

=UPPER("Good Morning")」返回 GOOD MORNING。

VALUE

将文本字符串转换为数字。

语法

VALUE("Text")

Text」是被转换为数字的文本。

示例

=VALUE("4321")」返回 4321。

请支持我们!