6

在不同列可能具有不同数量值的范围内(但列内的序列中不会有间隙)我想知道最长列的长度。为了要求更高,我希望它在一个公式中。

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

      |  A   B   C   D
   ---+---+---+---+---
    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 中轻松解决,但出于几个原因(尤其是好奇),我想看看它是否可以在单个(可能是数组)公式中解决。

4

1 回答 1

6

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

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

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

于 2012-07-20T13:38:28.257 回答