我正在使用Excel 2010,我正在寻找一种方法来返回列的第一个负数。例如,我在列中分配了以下数字: 1 4 6 -3 4 -1 -10 8 我可以使用哪个函数返回-3? 谢谢!
答案 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得到了这个答案的原始灵感)