我有来自文本文件的数据,想将其导入 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
使用。