根据其在单元格中的位置查找数字或字母

时间:2019-01-11 12:56:57

标签: excel vba

我将以下作为样本单元格值(每个值对于我的数据都是不同的):

ABC-A1-G3-112233-223344-556677

我想将它们各自不同的列中的值分开,以便:

ABC将出现在G列

A1将出现在H列

G3将出现在第一列

112233将出现在J列

。 。 。 。 等等。

非常感谢您的协助。

谢谢

2 个答案:

答案 0 :(得分:1)

您可以使用“文本到列”:

  • 选择包含字符串
  • 转到数据-文本到列
  • 选择定界,然后按下一步
  • 选择“其他”并导入“-”,然后按下一步

答案 1 :(得分:0)

这不是很漂亮,但是如果您想在每列中拖动一些内容,则下面的内容会起作用(尽管很杂乱)。

您会注意到,除了第一个(G列)以外,其余均与每个公式更改的3个SUBSTITUTE的[instance_num]相同。本质上是找到连字符的第一个实例和第二个实例,并返回中间文本。然后是第二和第三实例之间的文本,然后是第三和第四实例之间的文本,等等。

G列实际上应该是= LEFT(),但我将其作为= MID()来尝试使其保持某种标准。

G列公式;

=MID($A1,1,FIND(CHAR(1),SUBSTITUTE($A1,"-",CHAR(1),1))-1)

H列公式;

=MID($A1,FIND(CHAR(1),SUBSTITUTE($A1,"-",CHAR(1),1))+1,FIND(CHAR(1),SUBSTITUTE($A1,"-",CHAR(1),2))-FIND(CHAR(1),SUBSTITUTE($A1,"-",CHAR(1),1))-1)

第一列公式;

=MID($A1,FIND(CHAR(1),SUBSTITUTE($A1,"-",CHAR(1),2))+1,FIND(CHAR(1),SUBSTITUTE($A1,"-",CHAR(1),3))-FIND(CHAR(1),SUBSTITUTE($A1,"-",CHAR(1),2))-1)

J列公式;

=MID($A1,FIND(CHAR(1),SUBSTITUTE($A1,"-",CHAR(1),3))+1,FIND(CHAR(1),SUBSTITUTE($A1,"-",CHAR(1),4))-FIND(CHAR(1),SUBSTITUTE($A1,"-",CHAR(1),3))-1)