从openoffice calc中的单元格中提取数字

Vin*_*nay 7 openoffice.org openoffice-calc libreoffice

我在开放式办公室有一个这样的专栏:

abc-23

abc-32

abc-1

现在,我只需要使用 calc 中的公式和正则表达式来获得数字 23、32 和 1 的总和。我怎么做?

我试过

=SUMIF(F7:F16,"([:digit:].)$")
Run Code Online (Sandbox Code Playgroud)

但不知何故,这不起作用。

Fel*_*ert 7

从 LibreOffice 6.4 开始,您可以使用新添加的REGEX 函数使用正则表达式从单元格/文本中提取所有数字:

=REGEX(A1;"[^[:digit:]]";"";"g")
Run Code Online (Sandbox Code Playgroud)

替换A1为您要从中提取数字的单元格引用。

REGEX函数参数说明:

参数之间用分号分隔;

  1. A1:从中提取数字的值。可以是单元格引用(如A1)或带引号的文本值(如"123abc")。以下正则表达式将应用于此单元格/文本。
  2. "[^[:digit:]]":匹配所有非十进制数字的字符。另请参阅LibreOffice 中的正则表达式列表
    • 外部方括号[]封装了要搜索的字符列表
    • ^添加NOT,表示匹配搜索列表中未包含的每个字符
    • [:digit:]代表任何十进制数字
  3. "":将匹配的字符(每个非数字)替换为空=删除它们
  4. "g":替换所有匹配项(在第一个非数字字符后不要停止)