我有一个电子表格,其中包含以文本形式输入的值,'
这些值前面带有撇号。我尝试了搜索和替换功能,但出于某种原因,它找不到那些前面带有撇号的单元格。我尝试将单元格格式更改为数字,但这并没有导致这些文本变成数字。
因为这样的单元格很多,所以单独删除每个单元格中的起始撇号会花费很长时间。有没有更快的方法可以做到这一点?
答案1
我发现了这些事情
使用 LibreOffice 版本3.6.5而不是 4.0。
最新的 LibreOffice 4.0(见变更日志)将其 RegEx 引擎更改为ICU regexp engine
。因此,我无法将 LibreOffice 3.6.5 解决方案用于 LibreOffice 4.0(自 2013 年给出这个答案以来,情况可能已经发生了变化。因此,请先尝试最新版本)
禁用
Tools » AutoCorrect Options » Localized options » Single quotes
。
此选项会将您的单引号替换为外观相似的撇号。不幸的是,这不会改变您现有的单元格屏幕截图展示了启用和不启用此选项的视觉差异
要用前导单引号替换单元格:
'
(U+0027):按CTRL+ H» 单击
More options
» 检查Regular expressions
。
搜索^.*$
并替换为&
它会搜索单元格内的所有内容,并用现有单元格内容替换单元格内容 - 但由于您禁用了“自动更正”选项,因此没有前导单引号。看看参考如果你想阅读更多关于正则表达式的内容
要用前导撇号替换单元格:
‘
(U+2018)或’
(U+2019)或ʼ
(U+02BC):
使用哪个字符取决于您居住的地方以及使用的本地设置按CTRL+ H» 单击
More options
» 检查Regular expressions
。
搜索^[‘’ʼ]
并替换为没有什么。
选择
将整个电子表格内容复制并粘贴到 Notepad 或 Notepad++,执行搜索和替换,然后将内容复制回来。
使用的资源
答案2
在 Excel(至少 2007 版)中,一种可行的解决方案是转到“数据”选项卡并选择“文本分列”(从“数据工具”组中)。默认设置似乎很好,因此单击“下一步”、“下一步”和“完成”。
答案3
nixda 的答案对我有用。但我用另一种方法解决了我的问题。对于使用任何 LibreOffice 版本的人来说,这可能都有效。
- 打开电子表格
- 在数据表(例如 A1-B10)右侧创建一个工作区(例如 C1-D10)
- 将数据表乘以 1(例如
C1 = A1*1
,拖动以填充单元格 C1-D10) - 将工作区中的值复制回数据表
(编辑 -> 选择性粘贴 -> 选择 -> 数字)
答案4
Nixda 的替代品帮我解决了这个问题。我有一列数字,其中的文本和数字单元格都混在一起了,当我将它们全部转换为数字时,出现了妨碍正确排序的撇号。我做了以下事情:
- 将整个标签复制到另一个空白标签(以确保安全)
- 清除数字列中的所有格式
- 选择并复制数字列中有值的单元格范围
- 将剪贴板(列中的数字)粘贴到 EditPlus(我的文本编辑器)中
- 在 EditPlus 中选择并将该数字列表复制到剪贴板
- 返回我正在使用的 Calc 选项卡并清除数字列中的所有内容
- 选择该列的顶部单元格并粘贴剪贴板的内容——全部是数字,没有撇号。
简而言之,正如 Nixda 所说,将列复制到记事本或其他纯文本编辑器中,然后复制该数据并粘贴回去。现在我要做的就是确保没有新数据被错误格式化。