在包含多个工作表的工作簿中,我将每个工作簿中的几个csv文件中的数据引用,按日期按升序排序。原始的csv文件以这种方式组织。是否可以通过"最新到最旧的#34;在目标表中,没有复制数据,没有VBA?非常感谢任何指针?
我现在这样做的方法是引用行中的最后一个有效值,然后是倒数第二个,最后一个,依此类推,直到第一个。我用于第一个细胞的公式是:
= INDEX([A17U.SI.csv] A17U.SI!A:A,MATCH(9.99999999999999E + 307,[A17U.SI.csv] A17U.SI!A:A))
第二个细胞:
= OFFSET(INDEX([A17U.SI.csv] A17U.SI!A:A,MATCH(9.99999999999999E + 307,[A17U.SI.csv] A17U.SI!A:A)), - 1, 0,1)
第三个细胞:
= OFFSET(INDEX([A17U.SI.csv] A17U.SI!A:A,MATCH(9.99999999999999E + 307,[A17U.SI.csv] A17U.SI!A:A)), - 2, 0,1)
等等。这需要很长时间,我必须知道有效条目存在多少行。根据具有有效条目的行数,在偏移函数自动增量中使用-1,-2会很好。
答案 0 :(得分:0)
假设我们在 A 列中有数据。在单元格 C1 (辅助单元格)中输入:
=SUMPRODUCT(MAX((ROW(A:A))*(A:A<>"")))
这会让我们看到 A 列中的最后一行带有值。在 B1 中输入:
=INDEX(A:A,C$1+1-ROW())
并复制下来:
如果 A 列中的项目数量可变,则 B1 中的公式将为:
=IF(ROW()>$C$1,"",INDEX(A:A,C$1+1-ROW()))
和 B1 将被复制到列 A 的最大长度。