问题描述
我有一个需要查找的值列表,但是在另一个表中给了我一些范围,例如:
解决方法
目标范围列表有两件事是错误的。正如您已经发现的,它们是文本。因此,它们构成了您应编程但不能直接使用的指令。其次,它们在逻辑上是错误的:1.0和1.5之间的差距如何?我认为最后一个范围应为“> 1.0”。这将导致您执行以下功能。
=MATCH(A7,{100,1,0.5,0.1},-1)
由-1
指定的匹配项查找第一个大于或等于匹配项的数字。任何大于1的数字都将在第一个范围(100-1)中匹配,但1本身将被第二个范围(1至0.5)匹配。大于100的数字将引发错误,但是您可以插入任何大数字。此功能将带您到下面的公式。
=INDEX({"d","c","b","a"},MATCH(A7,-1))
这证明了范围构建的逻辑缺陷。上面的公式不能为0.1返回正确的结果。这可以通过下面的公式完成,但是该公式不能返回1.0的正确结果
=INDEX({"a","d"},{0,0.1,1},1))
这些公式中有两个范围。如前所述,由于是文本,因此无法引用示例A列中的范围。但是,如果将MATCH函数的结果转换为索引行,则可以直接使用B列。 5 - MATCH()
将颠倒顺序,返回1代替4,返回4代替1。