将文本转换为列

将文本转换为列

我从数据库管理器收到一个 .csv 文件形式的数据包。我将这些数据导入 Excel 进行格式化和排序。但是,有一列包含三条信息,我想对其进行解析和排序。此列中的一个单元格包含一个用户 ID 号和一个用户名(例如:“83920 - johndavis”),我希望能够根据这些术语对这一列进行排序。使用 Excel 中的宏可以实现这一点吗?还是我应该使用 VBA?如果可以,您建议如何解决这个问题?

我有 C 和 Python 背景,因此尽管 VBA 知识有限,但我拥有计算机科学经验。

以下是我在试验解决方案时收集的一些信息。此页面是我的起点:https://www.cedarville.edu/insights/blog/excel-how-to-parse-data-split-column-into-multiple.aspx 但是,当我尝试使用此方法时,列拆分遇到错误并且拆分不正确(见图片)。我认为这是因为列数据是从 Excel 工作表的另一页在 VBA 中操作的实际数据。您将如何解决这种特质?

从功能栏看到的数据

列拆分向导第 1 页

列拆分向导第 2 页

列拆分向导第 3 页

列拆分向导输出不正确

答案1

这是一个相当奇怪的 CSV,因为它包含 Excel 公式。CSV 不应该包含数据以外的任何内容。

目前单元格不仅具有数据值B09 - Theater,还具有公式:

=IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""), "B09 - Theater")

错误信息公式评估(虚拟)函数@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""),如果返回错误,则写入值B09 - Theater

如果你不需要维护这些公式(我不知道它们是否有用)而只需要数据,最简单的方法就是选择所有单元格并将它们粘贴到新工作表中

之后你可以使用iskyfire 的答案

答案2

根据我对您的帖子的评论,您可以这样做:

在此处输入图片描述

我还想指出,您的图片显示了对带有前缀“ @__xludf.likely”的 VBA 函数的引用,这意味着该函数不适用于当前工作簿。它可能位于另一个工作簿的不同模块中,或位于不可用的库中。

无论如何,在第 1 部分的简单情况下分隔符part2,您可以使用上面的公式。

在更复杂的情况下,您可以选择数据中的任何单元格,然后使用数据>获取和转换数据>从表/范围启动 PowerQuery。

在 Power Query 编辑器中,您可以选择要拆分的列,然后使用“主页”>“转换”>“拆分列”>“按分隔符”并按如下方式配置(例如):

在此处输入图片描述

输出如下所示: 在此处输入图片描述

然后,您可以使用“主页”>“关闭并加载”将结果加载回工作簿。

答案3

将文本转换为列

如果您的单元格包含多个数据值,则可以使用内置的“将文本转换为列”向导将它们分开。这将创建一个每列包含 1 个数据值的表格,使您可以使用 Excel 提供的所有过滤器和排序方法。

笔记:例如,如果您有多个唯一的分隔符分隔每个数据值,83920/johndavis - new york city则可以使用查找和替换将所有-字符更改为/或反之亦然。您需要使用相同的分隔符分隔每个数据值,否则您将需要多次运行向导。

https://support.microsoft.com/en-us/office/split-text-into-different-columns-with-the-convert-text-to-columns-wizard-30b14928-5550-41f5-97ca-7a3e9c363ed7了解更多信息。

删除多余的函数

如果您拥有的数据是封装的,则可以使用Match entire cell contents已检查和Look in: Formulas选定的“查找和替换”功能。

选择范围,进入“查找和替换”,输入内容并全部替换。例如替换=IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""),"为空字符串。

然后您可以再次运行它以将结尾部分删除")为空字符串。

确保在进行大规模查找和替换操作之前,已经备份了工作表的原始副本。

相关内容