将文本复制到 Excel 中,固定宽度,每 40 行开始一次数据

将文本复制到 Excel 中,固定宽度,每 40 行开始一次数据

我有来自文本文件的数据,想将其导入 Excel。文本数据被分组为 40 行块,并带有标题。大约 12 行之后,新的数据集再次以标题开始。总共约有 70 万行。

如果我使用数据验证 -> 固定宽度,这可以工作,但每 40-50 行就有大约 10 行垃圾需要排除。这会花很长时间才能过滤掉超过 700k 行的数据。

有没有更快的方法来做到这一点?样本数据 - 模糊

答案1

这只是一道基础INDEX题,columns 参数为 11。棘手的部分是 row 参数。

构建行参数可以像这样完成:

=TOCOL(SEQUENCE(1,D1,C1,54)+SEQUENCE(41),,TRUE)

从我在图片中看到的部分来看,假设数据一旦开始,就分为 54 个行块、41 个数据行和 13 行我所描绘的页眉,您可以在单元格 C1 和 D1 中填写已知信息。C1 占据实际数据第一行之前最后一行“非数据”的起始行。有很多替代方案。在图片中,人们可以硬编码“44”,但也许它会发生变化,人们想指定它,所以我展示了这样做。

其思路是生成一个起始点序列,然后向每个起始点添加 1...41 以获得子序列。可以输入实际数据的最后一行号,无论是通过检查还是巧妙输入,然后计算出要将多少个子序列放入生成的整体序列中,这样就不会出现十万行错误。

为此,请取每个块中的数据行数加上页眉块的行数,然后将该总和乘以块/页数。最后,添加不属于第一个块的起始行。看起来像是 31 行。然后,生成的总体序列将得出实际需要的行数。或者,只需在 D1 中输入这样的公式并让其引用 E1,该公式将包含数据中的总行数。那里也有很多替代方案。甚至可以通过仅输入数据范围作为从“页眉/数据”块的第一行开始来大大简化它。有很多选择。

无论如何,都会创建一个包含行和列的二维数组,用于保存整体序列值。对 来说没用INDEX。但TOCOL可以解决这个问题,生成“1-by”行号的列式数组供INDEX使用。

相关内容