我从热线呼叫站点获取数据并将其传输到 Linux Libreoffice Calc (LC)。C 列单元格有 2 组数据 - 两个电话号码 - 1 是呼叫者,1 是呼叫者被转接到的转接号码。(“1 (4xx) 8xx-3xx2 1 (5xx) 4xx-9xx1”)
D 列也有两组数据——通话日期和时间”。
在栏上的 LC 单元内容框中仅显示一个数字,即第一个数字“1 (4xx) 8xx-3xx2”。
我需要删除 C 列所有单元格中的第二个数字,这样我才能对数据进行排序,但无法分开这两个数字或在栏上看到第二个数字。
需要知道某个电话号码打入热线的次数。
有任何想法吗?
答案1
有两种方法可以使换行符可访问LibreOffice Calc 文本函数:
使用常用表达:
"\n"
如果在公式中启用了正则表达式,则将匹配换行符(菜单“Tools
” -> “Options
” -> “LibreOffice Calc
” -> “Calculate
” -> “Enable regular expressions in formulas
”);没有正则表达式,使用
CHAR()
功能:“CHAR(10)
” 也匹配换行符。
基于此,可以C1
使用以下方法在换行符处拆分单元格内容(在中)LEFT()
和RIGHT()
以两种方式发挥作用:
使用正则表达式,您可以使用
SEARCH()
功能:=LEFT(C1;SEARCH("\n";C1)-1)
=RIGHT(C1;(LEN(C1)-SEARCH("\n";C1;1))+1)
不使用正则表达式,您可以使用
FIND()
功能:=LEFT(C1;FIND(CHAR(10);C1)-1)
=RIGHT(C1;(LEN(C1)-FIND(CHAR(10);C1;1))+1)
注意:准确地说,也SEARCH()
可以与 一起使用CHAR(10)
,但反之则不行——FIND()
尝试匹配文字“ \n
”而不是换行符。
NB2:+1
和-1
分别确保结果字符串不包含换行符。
答案2
假设数据从第 2 行开始,且 E 是第一个空闲列(如果不是,则适当移动),执行以下操作:
在单元格 F2 中,按 Ctrl-Enter 输入换行符。- 在单元格 E2 中输入公式
=LEFT(C2, FIND(CHAR(10), C2))
- 将 E2 复制到 E2..En,其中 n 是最后一行。
这将为您提供每个值的第一行。
获取第二行有点棘手,因为您需要计算字符数。我认为公式是=RIGHT(C2, LENGTH(C2) - FIND(CHAR(10), C2) - 1)
。
CHAR(10)
注:已更新以按照 tohuwawohu 的建议使用。