使用数组公式,如何将每个字符划分到一个单元格中。
Input Output
cat c a t
dog d o g
horse h o r s e
tiger t i g e r
在 regex 中,
\B
不是单词 b
oundary。它在字符串之间匹配,其中字符串不包含空格或连字符 -
等单词边界。 由于 SPLIT
不支持正则表达式 或 ,所以我们需要使用正则表达式来添加分隔符。
=ARRAYFORMULA(SPLIT(REGEXREPLACE("cat","\B","🍨"),"🍨"))
但是您也可以忽略
\B
并使用空字符串:
=ARRAYFORMULA(SPLIT(REGEXREPLACE("cat","","🍨"),"🍨"))
如果忽略它,在
SPLIT
之前,它会看起来像🍨c🍨a🍨t🍨
,而在\B
之后,它会看起来像c🍨a🍨t
。空字符串匹配 [\b\B]
。
要将其与数组一起使用,
=ARRAYFORMULA(SPLIT(REGEXREPLACE(A2:INDEX(A2:A,COUNTA(A2:A)),"","🍨"),"🍨"))
这是另一种可能的解决方案。
=ArrayFormula(
Iferror(split(regexreplace(A2:A,
"(.)","$1❄️"),"❄️"),""))
此公式使用 REGEXREPLACE 在每个字符后面插入一个占位符字符,并通过它进行分割。
ARRAYFORMULA
- IFERROR
- SPLIT
- REGEXREPLACE
使用这个公式
只需更改您自己的范围
A2:A
即可。
=ArrayFormula(LAMBDA(range, delimiter,
IF(range="",,SPLIT(REGEXREPLACE(REGEXREPLACE(range&"","(?s)(.{1})","$1"&delimiter),"'","''"),delimiter)))
(A2:A,CHAR(127)))
使用删除控制字符“也称为 DEL 或 rubout”,以及 代码 127。作为
SPLIT
中的分隔符,用 REGEXREPLACE
连接到每个字符:将 "(?s)(.{1})"
替换为 "$1"&delimiter
紧凑的形式
=ArrayFormula(LAMBDA(r, d,
IFERROR(SPLIT(REGEXREPLACE(
REGEXREPLACE(r&"","(?s)(.{1})","$1"&d),"'","''"),d),""))
(A2:A,CHAR(127)))
r Range
d Delimiter Char(127)
(?s) match the remainder of the pattern with the following
effective flags
(.{1}) 1st Capturing Group
. matches any character
{1} matches the previous token exactly one time
$ asserts position at the end of a line
ARRAYFORMULA
- LAMBDA
- IF
- SPLIT
- REGEXREPLACE
- CHAR