【发布时间】:2017-02-01 02:32:42
【问题描述】:
=IF(ROWS(AA$38:AA38)>COUNTIF(U$38:U$1000,"<>0"),"",INDEX(U$38:U$1000,SMALL(IF(U$38:U$1000>0,ROW(U$38:U$1000)-ROW(U$38)+1),ROWS(AA$38:AA38))))
我正在尝试使用此公式查找并返回一列数据中的所有非零值(从第 38 行开始),但我不知道在导入数据之前会有多少行.我希望能够自动排序,但如果我使用 (U:U) 或选择比实际填充行数大得多的数字(例如U$38:U$20000),我会收到错误消息。
有没有办法:
a) 让 excel 自动将 (U$38:U$####) 更改为填充数据的行数? (即,如果有 400 行,它将更改为 (U$38:U$400)。)
或
b) 找到一个替代公式,可以在不知道行数的情况下挑选出所有非零值?
编辑:
如下图所示,我设置了我的电子表格,使其不仅返回非零值(来自 U 列),而且还返回它对应的时间(来自 AG 列)。问题是当我尝试增加范围时。
我将查看具有不同数据量的大量不同数据文件,因此我希望能够将其自动化 - 而不必在每次需要时都摆弄所有 U$38:U$1000更改范围。这有意义吗?
可以用 VBA 代替吗?
【问题讨论】:
-
我们可以使范围动态化,是的。为了达到最佳效果,了解表中某个范围的数据类型会很有用:例如,U 列中的条目是否总是数字?
-
是的,它们是——但它们可能是正面的或负面的。
-
条目是否都是连续的?还是在结束前的列中可能有空单元格?
-
哦,你想用这些值做什么?
-
不,结束前没有空单元格。
标签: excel sorting indexing countif