在excel中数字和字母之间添加空格

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

我正在尝试制作一个在数字和字母之间添加空格的公式,但它不起作用,一些字符串会添加空格,而其他字符串则不会。任何人都可以帮助我并解释我哪里出错了,看到其中一些额外的可能是格式吗?或者如果有任何方法我可以使用 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的任何字母

excel excel-formula
4个回答
2
投票

假设

  • 数字序列在前
  • 没有数字序列以零 (0) 开头
  • 数字序列中不超过五 (5) 个数字
    • (超过5个则调整数组常量)

此公式检测数字部分的最大值,然后将其拆分。

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


2
投票

使用 Office 365 动态数组:

=REDUCE("",MID(B3,SEQUENCE(LEN(B3)),1),LAMBDA(a,b,IF(AND(ISNUMBER(--a),ISERROR(--b)),a&" "&b,a&b)))

注意:这假设文本总是按数字然后是字母的顺序排列。


注意:对于旧版本,OP 在他们的问题中使用的公式有效。退出编辑模式时只需要用

Ctrl
-
Shift
-
Enter
而不是
Enter
确认:


0
投票

这个呢,假设O365:

=LET(in,A1:A3, after,TEXTAFTER(in,CHAR(ROW(48:57)),-1), 
 before,SUBSTITUTE(in,after,""), before &" "& after)

这里是输出:

after
获取最后一位数字后的子串(
-1
,反向搜索),
before
,带有数字的子串,然后连接两个数组,在中间添加一个空格。
CHAR(ROW(48:57))
代表要查找的所有数字:
0-9
,但您可以使用:
SEQUENCE(10,,0)
来达到相同的目的。


0
投票
=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

© www.soinside.com 2019 - 2024. All rights reserved.