请解释为什么我为此得到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;
        }
    }

enter image description here

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...