我正在尝试制作一个在数字和字母之间添加空格的公式,但它不起作用,一些字符串会添加空格,而其他字符串则不会。任何人都可以帮助我并解释我哪里出错了,看到其中一些额外的可能是格式吗?或者如果有任何方法我可以使用 VBA 用户定义函数来获得预期的结果
我目前的配方:
=TRIM(REPLACE(B3;MAX(IFERROR(FIND({0;1;2;3;4;5;6;7;8;9};B3;ROW(INDIRECT("1:"&LEN(B3))));0))+1;0;" "))
编辑:数字不会总是伴随着A和B,它可以是A到Z的任何字母
假设
此公式检测数字部分的最大值,然后将其拆分。
=MAX(IFERROR(--MID(A1,1,{1,2,3,4,5}),0)) & SUBSTITUTE(A1,MAX(IFERROR(--MID(A1,1,{1,2,3,4,5}),0))," ")
如果第一个数字可能是零 (0),您可以使用这个更长的公式来检测第一个字母的位置。
=LEFT(A1,MAX(IFERROR(SEARCH({"A";"B";"C";"D";"E";"F";"G";"H";"I";"J";"K";"L";"M";"N";"O";"P";"Q";"R";"S";"T";"U";"V";"W";"X";"Y";"Z"},A1),0))-1) & " " & MID(A1,MAX(IFERROR(SEARCH({"A";"B";"C";"D";"E";"F";"G";"H";"I";"J";"K";"L";"M";"N";"O";"P";"Q";"R";"S";"T";"U";"V";"W";"X";"Y";"Z"},A1),0)),LEN(A1))
=LET(a,A1,
x,XMATCH(1,--ISERROR(--(MID(a,SEQUENCE(LEN(a)),1)))),
LEFT(a,x-1)&" "&MID(a,x,LEN(a)))
a
是您要在数字和文本之间添加空格字符的单元格。
x
如果将字符逐个字符转换为数字,则找到第一个出错的字符。
(将字符转换为数字会抛出错误)
然后找到位置之前的单元格字符后跟
" "
和其余字符。
编辑: 我读到你没有序列和减少,所以这将适用于旧的 Excel:
=LEFT(A1,
MATCH(1,
--ISERROR(--MID(A1,ROW($A$1:INDEX($A:$A,LEN(A1))),1)),
0)
-1)
&" "&
MID(A1,
MATCH(1,
--ISERROR(--MID(A1,ROW($A$1:INDEX($A:$A,LEN(A1))),1)),0),
LEN(A1))
我认为它需要输入
ctrl+shift+enter
PS,你自己的公式似乎按原样工作。确保也使用
ctrl+shift+enter