如果我使用这个论坛:
=TEXTJOIN(CHAR(13), 1, FILTER(F2:F, F2:F <> ""))
我会得到这个输出:
52048663606
52010984909
62194569546
但是,使用这个公式:
=TEXTJOIN(CHAR(13), 1, FILTER("1" & CHAR(9) & "1" & CHAR(9) & F2:F, F2:F <> ""))
将其复制并粘贴到其他地方时,我得到带有双引号的输出:
"1 1 52048663606
1 1 52010984909
1 1 62194569546"
请注意,这些引号并不出现在单元格本身中,而是仅在复制(并粘贴到其他地方)时出现。
如何避免这种情况?
\r
)和Unicode 10/换行(\n
)用作行分隔符,Unicode 9/水平制表符(\t
)用作列分隔符,在剪贴板中存储数据时。您应该注意,在剪贴板中,所有数据都是原始存储的,没有实际的视觉中断。例如,如果 A1:A3 有
52048663606
52010984909
62194569546
仅存储为
52048663606\n52010984909\n62194569546
。如果将此数据粘贴到另一个单元格中,Google 表格知道使用 \n
将此数据分成 3 行。水平选项卡也是如此 \t
。
但是,如果
\n
和 \t
不应该被解释为分隔的行或列怎么办?如果 52048663606\n52010984909\n62194569546
不是 3 行,而是 1 个单元格怎么办? Google 使用双引号 "
来指定这些引号之间的任何内容都不应分隔,即在本例中为 "52048663606\n52010984909\n62194569546"
。
Google 似乎使用它自己专有的 mime 类型格式
application/x-vnd.google-docs-spreadsheet-table+json
(还有替代的 text/html
和 text/plain
),它也可能有其他分离算法。分隔符似乎也存在浏览器/设备的变化。但以上内容几乎适用于所有情况。
我不相信你能避免它。使用任何其他空白字符
=LET(
sp, UNICHAR(8192),
lf, UNICHAR(11),
TEXTJOIN(lf, 1, FILTER("1" & sp & "1" & sp & F2:F, F2:F <> ""))
)
在最终复制粘贴的文本中,在最终应用程序中,使用 regex 将文本更改回来。