当使用Excel中从其他来源导入的数据时,文本往往不是您希望看到的样子。
您可能会发现,产品引用由产品代码、代码引用和产品大小组成,这些都连接到工作表中的一个单元格中。
您的要求是您希望拆分文本字符串的相关部分,以便它们都显示在工作表中的各个单元格中。
这可能是因为您想按文本的特定部分进行排序或分组。您可能还想在特定的分割部分使用其他公式。例如,您可能想要对另一个数据表执行查找,使用该文本部分作为查找值。对于原始形式的数据,这是不可能的。
如果在数据透视表中使用数据,则可能需要一个具有分割数据的单独字段,以便进行过滤或合并。
本文介绍了七种方式,您可以在其中从Microsoft Excel中的一串文本数据中提取第一个或最后一个字符。
表的内容
本文使用的样本数据
此帖子中的示例将从中提取第一个和最后2个字符Productsku.在上面的小产品数据集。SKU的前2个字符包含产品类别代码,后2个字符包含产品大小。
提取具有左右函数的字符
Excel有几个有用的功能,用于拆分文本的字符串以获得您需要的实际文本。
左派
句法:
左(文字,[编号])
- 文本- 这是您希望从中提取的文本字符串。它也可以是工作簿中的有效的单元格引用。
- 数字[可选的-这是您希望从文本字符串中提取的字符数。该值必须大于或等于零。如果值大于文本字符串的长度,那么将返回所有字符。如果省略该值,则假定该值为1。
这将从文本字符串返回指定的字符数量,从文本的左侧开始。它将从文本中提取第一个指定数量的字符。
正确的功能
句法:
对(文字,[编号])
这些参数的工作方式与上面描述的LEFT函数相同。
这将从文本字符串中返回指定数量的字符,从文本的右侧开始。它将从文本中提取最后指定的字符数。
提取文本到列的字符
文本到列允许您通过定义文本部分的固定限制将一列划分为多个部分。要使用这个方法:
- 的所有数据Productsku.列。
- 点击数据在Excel带中的选项卡。
- 点击文本到列图标在数据工具摘要的卓越丝带和向导将似乎可以帮助您设置文本的拆分方式。
- 点击固定宽度选项按钮。
- 点击下一个用于向导的下一步。
在第二步中,在预览窗口,点击测量杆数据预览在你想要分割文本的地方。这将显示一条显示分离的垂直线。对右边的字符再做一次。
点击下一个进入向导的最后一步。
将目标单元格设置为E3.,因此现有数据不会被覆盖。
点击结束您的数据将导入到Cell中开始的三列E3.。
您的工作表现在将如上看起来像上面的结果分为单独的单元格。
用Flash填充提取字符
这个Flash填补方法允许您在希望显示分割数据的单元格中输入几个示例。然后Excel会根据示例计算出列中需要哪些数据。
这种方法的缺点是示例规定了将提取多少字符。如果它总是一个统一的数,那么这个方法就可以很好地工作,但在某些情况下,它可能不是,在这种情况下,这个方法就不能工作。
使用闪存填充,你需要输入至少三个你希望看到的文本例子。
您也可以激活闪存填充在里面数据工具小组数据选项卡,或使用Ctrl.+E.键盘快捷键。
然后Excel会根据你的示例自动填充剩下的数据。
用VBA提取字符
VBA是坐在Excel后面的编程语言,并允许您编写自己的代码来操纵数据,或者甚至创建自己的功能。
要访问Visual Basic编辑器(VBE),请使用ALT+F11。
子Splittext()将n = 3到12个activeSheet.Cells(n,5).value = left(小区(n,2),2)下一个n结束子子
在Visual Basic编辑器内。
- 点击插入在菜单栏中。
- 点击模块和一个新的窗格将出现为模块。
- 粘贴在上面的代码中。
你的窗户现在看起来像上面。
将光标放在代码过程中的任何位置,然后按下F5.运行代码。
代码循环通过3到12的值,这是示例数据的行号。它进入在行Number N和第2列中找到的文本的前两个字符为列5(列e)。
这是一个非常简单的VBA代码,它具有缺点,即它仅采用产品代码的前两个字符。如果产品代码较长,则将产生错误的结果。
但是,可以将代码扩展为搜索分隔符字符(-),然后获取该点之前的字符数。
提取功率查询的字符
Power Query是Excel中用于操作数据的有用工具,可以很容易地使用它将一列数据分割为多个部分。
首先,您需要将数据转换为Excel表。
创建一个来自桌/范围查询
- 选择表中的单元格。
- 去吧数据选项卡
- 点击来自桌/范围在里面获取和转换数据团体。
这将打开电源查询编辑器,允许您转换数据。
- 点击Productsku.柱子。
- 点击添加一列功率查询编辑器的选项卡。
- 点击提取在里面从文本团体。
- 选择第一个字符在下拉。
将显示弹出窗口。在计数框中输入2。点击好的一个新的列叫做第一个字符将添加。双击新列标题并将其重命名为类别。
= table.addcolumn(#“已更改类型”,“第一个字符”,每个Text.start([ProductsKu],2),键入文本)
这将导致上述结果M代码公式。
如果您需要最后2个字符,请单击最后的字符在里面提取落下。
=表。AddColumn(#“插入的第一个字符”,“最后一个字符”,每个文本。结束([ProductSKU], 2),输入文本)
它将导致上述M代码公式。
点击关闭和装载在里面关闭集团在家标签,一个新的工作表将被添加到您的工作簿中,其中有一个新格式的数据表。
提取具有电源枢轴的字符计算列
您还可以使用功率透视表来显示产品代码的前两个字符。
这样做你需要将数据转换为Excel表。
要将数据导入Power Pivot:
- 选择表中的单元格。
- 去吧力量主标签。如果你没有看到力量主选项卡,你可以在数据标签并单击管理数据模型。
- 选择添加到数据模型。
这将打开带有桌子的Power Pivot加载项。您可以随时打开这一点力量主选项卡选择管理在里面数据模型组在Excel ribbon中。
右键单击标题的添加一列然后点击重命名专栏在弹出菜单中。您还可以双击列以重命名它。然后你可以将此重命名为类似的东西类别。
=左(产品【产品展示,2)
选择新的内部的任何单元格类别柱并将上述公式插入式棒中。无论您输入哪个单元格在内,它将在整个列中传播。
Category列现在显示产品代码的前两个字符。
=右(产品[ProductsKu],2)
您可以在最后2个字符中对上述公式进行操作。
点击数据透视表功能区中的图标,然后单击数据透视表在弹出菜单中,以将源数据转换为电子表格枢轴表。
在第一个弹出窗口中指定透视表的位置并单击好的。如果是枢轴表字段窗格不会自动显示,右键单击枢轴表骨架并选择显示字段列表。
现在你可以总结你的数据类别或者尺寸。
在里面枢轴表字段窗格中,双击数据源名称,例如Products,这将显示可用字段。勾选所有方框以使用数据透视表中的所有字段。
在里面行框,拖动类别字段设置为列表的顶部,以便pivot表将按不同类别进行汇总。
一切正常枢轴表功能以重新命名列,格式化数字等。
提取具有电源枢轴测量的字符
用一种方法来分割领域Productsku.,您将使用与相同的数据源指令使用相同的数据源指令计算列上面显示的方法。
当你点击时力量主选项卡,然后单击管理图标,您可以输入一个措施进入Power Pivot管理器窗口。
此窗口分为两个部分。顶部显示表中的源数据,底部显示了措施。这些是使用表中数据的公式,并创建可以在枢轴表中使用的计算字段。
类别列表:= concatenatex(值(产品[类别]),产品[类别],“,”)
选择措施部分中的第一个单元格,然后在公式栏中输入上述公式。
测量始终需要返回标量值。这就是为什么首先使用concateAtex函数,以便聚合从左或右函数创建的计算列的结果。如果不存在CONCHENATEX函数,则这将返回错误值,并且不能在枢轴表中使用。
点击数据透视表功能区中的图标,并按照说明创建枢轴表,如上表中所示的列示例。
在透视表字段列表中,现在有一个计算字段名为类别,显示FX.在前面。这返回了该字段的前两个字符Productsku.。
由于测量始终是计算字段,因此它只能包含为值,即使它实际上返回在这种情况下返回文本值。它不能用作过滤器或作为行或列名。
这是在功率枢轴中使用计算的列的巨大缺点。
结论
有很多方法可以从Excel中获取文本中的第一个或最后几个字符。
您可以使用公式,文本列,flash填充,VBA,电源查询或电源枢轴。
你更倾向哪个?
0评论