我最近从 Windows 7 升级到 10,从 Office 2007 升级到 2019。今天,我将 CSV 文件导入到 Excel 中:
Data > From Text/CSV > Load
向导将“文件来源”指示为“1200:Unicode”,分隔符指示为逗号。该文件确实有逗号分隔符,文本周围有双引号。
与 Excel 2007 存在直接的视觉差异 - 导入的数据自动添加了表格格式。它很漂亮,但我不想要它,我找到了如何通过转到“表格设计”,取消选中“标题行”和“带状行”并单击“转换为范围”来摆脱它(随后“表格设计”从主菜单中消失),然后删除为不需要的标题行添加的第 1 行。如果有人能说出如何在不添加表格格式的情况下导入数据,我想知道,尽管还有一个更重要的问题。
与 Excel 2007 中一样,设置了与 CSV 文件的连接。我不需要它,所以我删除了它,就像我在 Excel 2007 中所做的那样。
现在有一个大问题。现在,以导入的行数和列数为界的整个矩形单元格范围被视为每个单元格中都有数据,包括那些空单元格。即使 CSV 文件只有一个数据元素(即双引号外没有逗号)的行也是这种情况,因此只有 A 列应该包含这些行的数据。当我说空单元格被视为有数据时,我的意思是:
- len(
<cell>
) = 0(表示单元格为空) - CountA(
<cell>
) = 1(表示 Excel 认为它不为空) - CountBlank(
<cell>
) = 1(意味着 Excel 精神 split 也认为它是空的) - Ctrl-箭头会跳过这些单元格以及包含数据的单元格。
- 对包含这些单元格的列进行 A-Z 排序会将它们的行置于顶部,而不是底部(当我在 Excel 2007 中执行此过程时,它们最终位于底部)。
编辑:通过进一步测试,我确定发生的情况是 Excel 错误地将导入中的空单元格视为空字符串。
在 Excel 2019 中导入 CSV 文件时,为了正确处理空单元格,我需要做一些不同的事情吗?
最佳答案
- 我可以证实您的观察结果。
- 根据 @NewSites 的建议并经我确认,当使用当前向导导入 CSV 文件时,空白单元格将被赋予空字符串
""
的内容 (Value = ""
),而当使用旧版向导导入时,单元格实际上仍然是空
- 除了您注意到的内容之外,在表格范围内执行的
.SpecialCells(xlCellTypeBlanks)
将找不到任何单元格。
3个解决方法
- 使用“旧版向导”进行文本导入。
- 这并不能说明问题
- 要启用旧版向导,请导航至
文件 > 选项 > 数据
,然后选择所需的旧版向导。然后,它们将作为选项显示在数据 > 获取和转换数据 > 获取数据
下拉列表中。
- 选择表格/区域中的空白单元格并Del(如果您有很多单元格需要选择,最好使用 VBA 代码来完成。
- 在执行 PowerQuery 导入时,当向导打开时
- 选择
转换数据
- 替换值
- 要查找的值:将此留空,留空
- 替换为:null (是的,就这样输入。它是一个“关键字”)
- 然后关闭并加载文件
- 选择
关于Excel 2019 : CountA is counting empty cells in data imported from CSV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57340279/