只提取谷歌表格中每个单元格的第一行

问题描述 投票:0回答:3

我只想提取每个单元格中的第一行文本。 (抱歉,我想不出另一种方式来说明屏幕截图)。

我在

Company
列中使用这个公式来查找换行符并提取其左侧的文本:

=LEFT(G2,Find(Char(10),G2))

如果我手动浏览并突出显示

Description
列中的整个单元格,然后点击
enter
它将在第一行的文本之后添加一个换行符,否则不存在换行符。因此
#VALUE
错误。任何想法如何将换行符批量插入每个单元格以便现有功能起作用?也对其他解决方案开放。谢谢。

arrays regex google-sheets newline text-extraction
3个回答
3
投票

你可以这样做:

=LEFT(G2&CHAR(10), FIND(CHAR(10), G2&CHAR(10)))

更新1:

删除 A 列中的所有内容并在 A1 中使用它:

={"Company"; INDEX(IFNA(REGEXEXTRACT(B2:B, "(.+)\n"), B2:B))}


更新2:

={"Company"; INDEX(TRIM(IFNA(REGEXEXTRACT(
 REGEXREPLACE(B2:B, "(\d+)", CHAR(10)&"$1"), "(.+)\n"), B2:B)))}


1
投票
IF(REGEXMATCH(A1, Char(10)),LEFT(A1,Find(Char(10),A1)-1),A1)

伪代码:

if \newline_char is found in A1:    # REGEXMATCH(A1, Char(10)):
    return first line of cell excluding \newline_char # LEFT(A1,Find(Char(10),A1)-1)
else:
    return A1

0
投票

您需要使用公式

CHAR(10)
找到下一行
FIND()
的字符位置。

然后用

Mid()
,你选择你需要得到line1和line2的子串。

这里有完整的例子

=find(CHAR(10) ; A2)   // Position of the char that goes to the next line
=mid(A2 ; 1 ; C2 -1)   // First Line
=mid(A2 ; C2 ; 999999) // Second Line
© www.soinside.com 2019 - 2024. All rights reserved.