多列Excel范围中的最长列(在单个公式中)?

在一个范围内,不同的列可能有不同数量的值(但是在列内不会有空格),我想知道最长列的长度。 要更苛刻,我想用一个单一的公式。

所以给定一个这样的范围:

| ABCD ---+---+---+---+--- 1 | 1 2 3 4 2 | 2 9 5 6 3 | 5 5 4 | 4 5 | 

..我想要的答案是4。

在这种情况下工作的东西是

 =MAX(COUNT(A1:A999),COUNT(B1:B999),COUNT(C1:C999),Count(D1:D999)) 

但(a)丑陋,(b)不灵活 – 不适合列可能被添加的情况。

我尝试了这样的事情,希望一个数组给予列计数(希望包围一个MAX() ):

 {=COUNT(OFFSET(A1,0,COLUMN(A1:D1)-COLUMN(A1),999,1))} 

..但它只给出一个单细胞,这似乎总是在第一列的计数。

我知道这可以很容易地解决在VBA,但有几个原因(不是最不好意思)我想看看它是否可以在一个单一的(可能是数组)的公式解决。

也许用CTRL + SHIFT + ENTER试试这个:

 =MAX(SUBTOTAL(3,OFFSET(A:D,,COLUMN(A:D)-MIN(COLUMN(A:D)),,1))) 

任何矩形范围都可以用来代替A:D