如何使用文本编辑器修复 Numbers 数据中的序列

Numbers 应用程序图标

您可以使用 Apple 的 Numbers 应用程序进行复杂的电子表格工作。但与 Microsoft Excel 一样,它的不足之处在于清理电子表格中的数据。 Microsoft Word 允许您使用模式来匹配和替换值,但在 Numbers、Excel 或 Pages 中则无法实现。

当您将日期、数字或货币值以不同方式导入或粘贴到 Numbers 中时,就会出现这种情况。输入时,Numbers 将更正多种标准格式,但在粘贴或打开 CSV(逗号分隔值)文件时,相同的数据可能会保留其原始的、不同的形式,CSV(逗号分隔值)文件是其他软件和其他软件的常见导出格式。网站。

您最常在姓名中看到这种情况,您会收到以一种方式格式化的列表(例如”姓氏、名字”),而您想要另一种方式。或者您拥有的数据的每个部分都以不同的方式格式化名称。人们可以将第一个、最后一个和中间的首字母分成三个字段。然而,您想要的是标准化数据,即结构相同的条目,以便能够以其他方式对它们进行排序、可视化扫描和组织。

有一个非常简单的解决方案,不需要任何成本,并且可以节省大量的手动重新输入和编辑。 Numbers 表格允许您复制任意数量的单元格的内容,然后将它们粘贴到文本编辑器中。只要您在编辑时保留制表符和硬回车,就可以修复在文本编辑器中粘贴的内容,复制修改后的数据,然后将其粘贴到您在 Numbers 表格中复制的确切区域。

我依赖BBEdit 执行称为”正则表达式修补匹配”(简称 regexp)的高级通配符匹配,并用匹配的元素替换数据。某些应用程序支持通配符,您可以在其中插入特殊字符或序列来匹配文本的某些部分,例如任何数字(0 到 9)或完整的句子,通过句点和其他结尾标点符号之间进行定义。正则表达式很复杂,几乎是一种简单的编程语言。您在搜索中匹配的元素可以分组,以便您可以重新排列它们作为文本替换的一部分。 BBEdit 在 Unix 版本的正则表达式之后标记查找部分 Grep。 (BBEdit 的免费版本具有您需要的所有功能。下载标准版本并安装它,您可以在 30 天的试用期内使用所有功能。试用期结束后,该应用“降级”到更有限的功能集,其中包括本文中所需的所有查找和替换选项。)

例如,假设您有按以下方式列出姓名的数据:

Jane Doe(一个字段中的第一个和最后一个)JaneDoe(不同字段中的第一个和最后一个)Doe, Jane (姓氏在前,逗号,然后是名字)

为了格式化和电子表格目的,您决定将所有姓名分为名字和姓氏字段,以便您可以按姓氏排序,但在导出到电子邮件列表程序时单独使用名字。

首先,确保 Numbers 表格中有两个相邻的名字字段和姓氏字段。如果您有一个”全名”字段,请选择该字段中的一个单元格,然后按 Option-右箭头在该名称列后添加一列。为了清晰起见,重新标记您的姓名列”名字”和”姓氏”。

接下来,通过拖动选区来复制数据,可以围绕单个字段的内容,也可以围绕两个字段(如果您有一组混合数据)。

现在,粘贴到 BBEdit 中。您将看到每个字段都由制表符分隔成一行。 (如果您想查看制表符、空格、回车符和其他字符,请选择”视图”>”文本显示”>”显示不可见字符”。)

您可以编写查找/替换值来修复数据。选择”搜索”>”查找”并选中”Grep”框以启用正则表达式。要通过按正确顺序将所有Doe, Jane放入两个字段中来修复它们,您可以使用以下搜索:

^(.*?), (.*)$

该模式的意思是:从行的开头开始匹配 (^),找到第一个逗号之前的所有文本 ((.*?)) 并将其分组用于替换生产线;然后找到命令和空格,然后将所有文本 ((.*)) 组成第二组到行尾 ($)。

在替换字段中,您将输入:

<代码>2 1

简单多了!也就是说,从查找模式 (2) 中获取第二个分组,在其后面添加一个选项卡 ( ),然后使用第一个分组 (1)代码>)。 Doe, Jane 变成 Jane[tab]Doe

如果该模式是孤立的或整个名称集,您可以单击”全部替换”。或者,您可以在 BBEdit 中选择一段文本,然后在”查找”对话框中选中”仅选定文本”,然后单击”全部替换”。

警告: 在返回 Numbers 之前先进行复制:如果您复制的选区中的行数或列数多于您开始填充或打算填充的行数或列数,Numbers 允许粘贴来覆盖您的其他数据。

根据需要重新格式化所有数据后,在 BBEdit 中选择它,复制它,然后在 Numbers 表格中选择要粘贴到的起始单元格。粘贴的行将向下继续,制表符将转换为粘贴到右侧的列单元格中。

在最近的一次导入中,我做了一个非常小的更改,但仍然超出了 Numbers 的能力:日期和时间的格式为 2019/10/28, 22:51,而 Numbers 则没有。 t 将逗号识别为日期戳的一部分。我可以通过 BBEdit 往返数据以简单查找逗号,然后将其替换为任何内容。但这是一个更简单的例子,如下图所示。

顶行:从错误的格式(日期和时间之间的逗号)开始,使用 BBEdit 的查找和替换功能来匹配模式并修复它。底行:粘贴修改后的数据并使用 Numbers 的数据格式选项使其按您喜欢的方式显示。如果重新格式化,您就知道数据的结构适合排序。

有关正则表达式的更多详细信息,请参阅 BBEdit 手册。开发商 Bare Bones Software 提供了详尽的解释。但你通常可以通过互联网搜索引擎找到你需要的具体秘诀:输入”regexp”和你想要做的事情,通常有人已经解决了问题。标准正则表达式适用于 BBEdit 的查找功能。

在 30 天 BBEdit 完整试用版或应用程序的付费副本中,您还可以使用该软件的 Pattern Playground 测试您的模式 – 请阅读Bare Bones 的文档这篇简短的苹果文章

Pattern Playground 可让您测试我们的模式并查看实时结果。它可以帮助您编写正确的查询。

询问 Mac 911

我们整理了最常被问到的问题列表,以及答案和专栏​​链接:阅读我们的超级常见问题解答,看看您的问题是否得到解答。如果没有,我们总是在寻找新的问题来解决!通过电子邮件将您的信息发送至 mac911@macworld.com,包括适当的屏幕截图以及您是否希望使用您的全名。并非所有问题都会得到解答,我们不会回复电子邮件,也无法提供直接的故障排除建议。