Excel - 返回列的第一个负数

时间:2013-09-24 20:24:30

标签: excel function

我正在使用Excel 2010,我正在寻找一种方法来返回列的第一个负数。例如,我在列中分配了以下数字: 1 4 6 -3 4 -1 -10 8 我可以使用哪个函数返回-3? 谢谢!

2 个答案:

答案 0 :(得分:3)

这可以通过两种方式解释...如果所有数字都在一个单元格(一列)中作为字符串,则可以使用MID函数。如果数字在A1中,可以使用的公式是:

=VALUE(MID(A1,SEARCH("-",A1),SEARCH(" ",A1,SEARCH("-",A1))-SEARCH("-",A1)))

如果这些数字都在各自的列中(在我的例子中,A3:H3),则必须使用不同的技术:

{=INDEX(A3:H3,1,MATCH(TRUE,A3:H3<0,0))}

不要输入{} - 使用 CTRL + SHIFT + ENTER 输入公式。

在每种情况下,公式将返回数字-3,这是系列中的第一个负数。

答案 1 :(得分:1)

另一种可能,避免使用数组公式(这是导致性能问题的重要原因):

=LOOKUP(1;1/(M2:M15<0);M2:M15)

(我假设您的电话号码在M2:M15范围内)。

这将返回与“ <0”条件匹配的第一个数字。您可以使用任何其他条件,包括文本比较。

您还可以提取与匹配单元格相对应的另一个数组的值:

=LOOKUP(1;1/(M2:M15<>"OK");T2:T15)

在此示例中,将在m2:m15数组中搜索包含“ OK”以外的其他字符串的第一个单元格,并返回数组t2:t15中的对应值。

请注意,应尽可能避免使用查找功能(但在这种情况下非常方便!)

(我从this post得到了这个答案的原始灵感)