格式单元格内容

时间:2017-11-06 22:09:41

标签: excel vba

我使用的是存储某些实体ID的软件,需要以非常具体的方式对其进行格式化。我会尝试尽可能具体。

每个单元格长度必须为6位数。

第一位数字可以是字母或数字。

第2,第3和第4位数字只能是数字。

第5和第6位只能是字母。

我有以下一些ID(以及我需要它们的样子)例如(代替 - 代替空格):

  

G11R(G-11R - ),J6R(J - 6R - ),I6AR(I - 6AR),1516B(1516B - ),414(-414 - )。

我甚至不知道从哪里开始这样的事情,我搜索了论坛,但我甚至都不确定你会称之为什么。

任何帮助,即使只是正确方向的一点,我们将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

因为我想知道我是否可以用公式做到:

=LEFT(IF(OR(ISERROR(--LEFT(A1)),AGGREGATE(14,6,ROW(INDIRECT("1:" & LEN(A1)))/(ISNUMBER(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))),1)-AGGREGATE(15,6,ROW(INDIRECT("1:" & LEN(A1)))/(ISNUMBER(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))),1)=3),LEFT(A1)," ") &REPT(" ",MAX(2 - (AGGREGATE(14,6,ROW(INDIRECT("1:" & LEN(A1)))/(ISNUMBER(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))),1)-AGGREGATE(15,6,ROW(INDIRECT("1:" & LEN(A1)))/(ISNUMBER(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))),1)),0)) & RIGHT(MID(A1,AGGREGATE(15,6,ROW(INDIRECT("1:" & LEN(A1)))/(ISNUMBER(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))),1),AGGREGATE(14,6,ROW(INDIRECT("1:" & LEN(A1)))/(ISNUMBER(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))),1)-AGGREGATE(15,6,ROW(INDIRECT("1:" & LEN(A1)))/(ISNUMBER(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))),1)+1),3) & MID(A1,AGGREGATE(14,6,ROW(INDIRECT("1:" & LEN(A1)))/(ISNUMBER(--MID(A1,ROW(INDIRECT("1:" & LEN(A1))),1))),1)+1,LEN(A1))&"      ",6)

enter image description here

为了表明,我用-替换了公式中的所有空格。

enter image description here