在不同列可能具有不同数量的值的范围内(但列中的序列中不会有间隙)我想知道最长列的长度。为了要求更高,我想用一个单一的公式。
所以考虑到这样的范围:
| 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中轻松解决,但出于几个原因(尤其是好奇心),我想看看它是否可以在单个(可能是数组)公式中解决。
答案 0 :(得分:6)
也许尝试使用CTRL + SHIFT + ENTER:
=MAX(SUBTOTAL(3,OFFSET(A:D,,COLUMN(A:D)-MIN(COLUMN(A:D)),,1)))
可以使用任何矩形范围代替A:D
。