查找给定列中哪些行最长的单元格?

目前我在VBA中有一个函数,它在给定列中查找最长的单元格长度。 它在任何给定列的旁边插入一列,插入LEN(A1) (无论所需的列地址是什么)并填充,然后使用MAX函数查找最大值。

直到现在,这已经足够好了,但现在用户想知道哪个行最有价值。 有没有办法做到这一点,没有sorting或过滤?

该函数由用户运行一次,并跨越每一列,并有大约150000行,所以需要一段时间过滤/sorting15次。

任何build议感激

=匹配(最大( ), ,0)会给你最大发生的行号。

你可以使用

= index( othercolumn ,match(max( column ), column ,0))来获得该行的其他列值

假设A2:A6中的值

这会给你行号,相对于数据范围

 =MATCH(MAX(LEN(A2:A6));LEN(A2:A6);0) 

这将给出相对于工作表的行号

 =ROW(A2)-ROW($A$1)+MATCH(MAX(LEN(A2:A6));LEN(A2:A6);0) 

这会给你价值

 =INDEX(A2:A6;MATCH(MAX(LEN(A2:A6));LEN(A2:A6);0)) 

所有这些都是数组公式,你需要Ctrl Shift Enter来input它们

谢谢大家的发帖,我也发现这个公式: =CELL("address",OFFSET(A1,MATCH(MAX(A1:A10),A1:A10,0)-1,0)) (假设数据是A1 – A10)这将给细胞的实际地址以及任何人如果有人想要它。 inheritance人的网站为: https : //support.microsoft.com/kb/139574