MAX +左功能Excel

时间:2017-01-10 13:51:32

标签: excel function excel-formula

我正在尝试根据Left函数

获取列的最大值

我正在做的是以下内容:

enter image description here

这些是我将其写入C列时得到的结果:

=MAX(LEFT(A:A, 2))

但我真正想要的是在C列中获得所有A列的最大值,而不是每个单元格。

因此,对于所有行,结果应该是90.

这里的公式应该是什么?

2 个答案:

答案 0 :(得分:5)

正常输入的另一个选项是:

=AGGREGATE(14,6,--LEFT($A$1:INDEX(A:A,MATCH("ZZZ",A:A)),2),1)

enter image description here

数组公式将计算enitre引用的数组。因此,应注意将迭代次数限制为仅数据集。

公式的$A$1:INDEX(A:A,MATCH("ZZZ",A:A))部分就是这样做的。它在列A中找到包含数据的最后一个单元格,并将其设置为上限。因此在这种情况下,参考范围是A1:A3。但是,它会随着A列中的数据的增加而动态增长,因此无需在每次添加数据时更改公式。

答案 1 :(得分:4)

更新2

这是另一个我认为比我原来的更好的解决方案(下面)

=INT(SUMPRODUCT(MAX(SUBSTITUTE(A:A,"-",".")*1)))

可以正常输入(只需输入

<小时/> <小时/>

Orignal Answer

您需要数字数组

=MAX(IFERROR(LEFT(A:A,2)*1,0))

让我们打破这个。乘以你的字符串为数字 - 因为Left只返回一个字符串

LEFT(A:A,2)*1

不幸的是,如果将空字符串乘以#Value,此方法将返回1。你肯定会在A:A范围内有一些空字符串,所以我们用IFERROR函数包装整个事物。

IFERROR(LEFT(A:A,2)*1,0)

现在我们仍然需要excel将其视为一个数组(即一整列数字,而不仅仅是一个数字)。所以我们将MAX公式放入并输入 Ctrl + Shift + 输入而不是 Enter 。结果是公式栏中的公式如下所示

{=MAX(IFERROR(LEFT(A:A,2)*1,0))}

根据需要在您的示例中返回90

<小时/>

更新1

如果您使用的是Excel 2013或更高版本,还可以使用NUMBERVALUE功能

=MAX(NUMBERVALUE(LEFT(A:A,2)))

再次输入 Ctrl + Shift + Enter