Excel:如何使公式更新列长度变化

首先,如果之前已经问过这个问题,请致歉。 我努力去寻找这个问题,所以在这里:

我有公式计算来自.csv的传入数据。 问题是公式将只计算原始CSV与其行数的长度。 csv的进来数量差别很大。 有一个简单的方法来解决这个问题吗?

谢谢,J

你可以使用INDEX / MATCH:

=SUM(B2:INDEX(B:B,MATCH(1E+99,B:B,0))) 

这将把所有从B2开始的单元格加到列B中的最后一个单元格中。

 =CONCAT(B2:INDEX(B:B,MATCH("zzz",B:B,0))) 

这将连接从B2的所有单元格到最后一个单元格中的文本。

要查找最后一个单元格,无论是数字还是文本:

 INDEX(B:B,MAX(IFERROR(MATCH("zzz",B:B,0),0),IFERROR(MATCH(1E+99,B:B,0),0))) 

一个说明,大多数标准公式不会损害完整的列引用,像COUNTIF(S),SUMIF(S),…

数组公式和像数组的公式(SUMPRODUCT,AGGREGATE)需要限制对数据集的引用,并使用上述方法将允许dynamic使用数据集。


编辑:

你频率公式:

 =FREQUENCY(D3:INDEX(D:D,MAX(IFERROR(MATCH("zzz",D:D,0),0),IFERROR(MATCH(1E+99,D:D,0),0))),P25:P29) 

您可以将所有公式更改为“D:D”以便计算整个行。 例如:“= countif(D:D,”*“)”将列D中的所有内容都计算在内,您也可以对其他math运算使用类似的函数。

你也可以使用VBAdynamic计算行数,然后在你的公式中使用这个数字,但这是一个完整的其他话题/对话/问题。