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

44u64gxh  于 2023-02-25  发布在  其他
关注(0)|答案(3)|浏览(102)

我只想提取每个单元格中的第一行文本。(抱歉,我无法找到其他方法来说明截图)。

我在Company列中使用以下公式来查找换行符并提取其左侧的文本:
=LEFT(G2,Find(Char(10),G2))
如果我手动检查并突出显示Description列中的整个单元格,然后点击enter,它将在第一行文本后添加一个换行符,但否则就没有换行符。因此出现#VALUE错误。有什么想法如何批量插入换行符到每个单元格中,以便现有的函数将工作?打开其他解决方案。谢谢。

t5zmwmid

t5zmwmid1#

您可以:

=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)))}

sqserrrh

sqserrrh2#

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
o8x7eapl

o8x7eapl3#

您需要找到char的位置,它将转到下一行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

相关问题