Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 从右侧将文本拆分为不同的列_Excel_Excel Formula_Excel 2016 - Fatal编程技术网

Excel 从右侧将文本拆分为不同的列

Excel 从右侧将文本拆分为不同的列,excel,excel-formula,excel-2016,Excel,Excel Formula,Excel 2016,我使用v2016在Excel的一个单元格中有一个字母数字文本字符串。文本类似于:ECN 6120 012 MMR 12195 201481 我使用了搜索、查找和修剪的变体,将第一组、第二组、第三组和最后一组文本放入单个单元格中 我需要得到倒数第二组数字,但它需要从右边抓取,因为“MMR”有时不存在。 有什么想法吗?在A1和B1中输入数据: 并复制到: 您可以使用UDF来实现这一点 在VBE中,创建新模块并将此代码放入: Function strtok(strIn As String, strDe

我使用v2016在Excel的一个单元格中有一个字母数字文本字符串。文本类似于:ECN 6120 012 MMR 12195 201481 我使用了搜索、查找和修剪的变体,将第一组、第二组、第三组和最后一组文本放入单个单元格中

我需要得到倒数第二组数字,但它需要从右边抓取,因为“MMR”有时不存在。 有什么想法吗?

在A1和B1中输入数据:

并复制到:


您可以使用UDF来实现这一点

在VBE中,创建新模块并将此代码放入:

Function strtok(strIn As String, strDelim As String, intToken As Integer) As String
   strtok = Split(strIn, strDelim)(intToken - 1)
End Function
您可以使用以下公式在工作表中使用:

=strtok(A1, " ", 4) 

获取该单元格中的第四个字。

如果数据长度固定,可以使用正确的函数。否则,如果数据由空格分隔,您可以使用instr和right来获取它们,这正是问题所在,我要提取的位之前的字符串,12195不是固定的,有时有MMR或类似的,有时没有,所以我尝试从右侧获取它,但我不知道如何将其嵌套在右侧的第一个和第二个空格之间。是否总是有五个或六个字段的格式与单个空格的格式完全相同?到目前为止,是的,每个字段之间有五个或六个字段,每个字段之间有一个空格,如果总共有六个字段,那么我可以忽略第四个字段。也许我需要添加另一列并删除额外字段(如果存在)?谢谢,但尽量不要使用VB,因为我真的对它一无所知,现在没有时间学习。如果E列中的文本有时不包含在文本字符串单元格A1中,我如何获取F列中的文本?
=strtok(A1, " ", 4)