如何解决请解释为什么我为此得到NA错误:= MATCH2,{1.2; 1.9; 2.6; 3.8; 5.5},-1
请注意,对于公式 = MATCH(2,{1.2; 1.9; 2.6; 3.8; 5.5},1),我得到了正确的结果2,因为匹配类型为1查找小于查询值的最大值(1.9)。 但是,当我尝试 = MATCH(2,{1.2; 1.9; 2.6; 3.8; 5.5},-1)时,必须找到最小的(2.6)值比查找值我得到NA错误。答案应该是3,因为2.6是2之后的最小值。请解释。
解决方法
匹配类型必须与正确的数组排序结合使用。
比赛类型1->升序
比赛类型-1->降序排列
,将Match_Type选择为1时,lookup_array(在您的情况下为{1.2; 1.9; 2.6; 3.8; 5.5})必须按升序排列。
但是,当将Match_Type选择为-1时,lookup_array必须按降顺序
。因此使用MATCH函数的正确方法是:
=MATCH(2,{5.5;3.8;2.6;1.9;1.2},-1)
这将按预期返回“ 3”(它返回数组元素的相对位置)。
请参阅文档here。
,大于选项仅在数组按降序排列时才有效。请尝试以下
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public string CustomerName { get; set; } = "3";
private void Button1_Validating(object sender,CancelEventArgs e)
{
if (CustomerName == null)
{
e.Cancel = true;
}
else
{
var isValidAndSaved = SaveOnServerAsync(CustomerName).Result;
if (isValidAndSaved)
{
e.Cancel = false;
}
else
{
e.Cancel = true;
}
}
}
/// <returns>True if the given model was valid and save operation was successfull.</returns>
public async Task<bool> SaveOnServerAsync(string customerName)
{
await Task.Delay(3000)
// The solution is that all deeper Tasks need line below.
.ConfigureAwait(false);
;
return customerName.Contains("%") ? false : true;
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。