在未排序的数据上查找最低或相等的值
Find lowest or equal value on unsorted data
我正在尝试查找包含小于或等于查找值的数字的范围的第一个单元格。范围是未排序的,它必须保持这种状态。
MATCH
函数是我的首选,但它不适用于未排序的数据。
例如,下面的情况应该 return 查找值 3 的结果为 4(因为 2 是第一个等于或小于 3 的数字,它是数组中的第 4 个数字)。这个例子中没有完全匹配,MATCH
和match_type=-1
returns 3.我需要找到return '4'.
的解决方案
UNSORTED_MATCH of LOOKUP_Value=3 in array:
8
6
99
2
11
17
18
5
提前感谢任何想法。
根据您在 C1 中查找的值,这似乎是 return 正确的行号。
对于 A 列中的数字与目标查找数字之间的 最小值 非负差,公式为,
=MATCH(C1-MIN(INDEX(C1-(A:A)+(C1-(A:A)<0)*1E+199,,)),A:A, 0)
对于小于或等于目标查找数的第一个数,公式为,
=MIN(INDEX(ROW(:)+(A:A>C1)*1E+99, , ))
我正在尝试查找包含小于或等于查找值的数字的范围的第一个单元格。范围是未排序的,它必须保持这种状态。
MATCH
函数是我的首选,但它不适用于未排序的数据。
例如,下面的情况应该 return 查找值 3 的结果为 4(因为 2 是第一个等于或小于 3 的数字,它是数组中的第 4 个数字)。这个例子中没有完全匹配,MATCH
和match_type=-1
returns 3.我需要找到return '4'.
UNSORTED_MATCH of LOOKUP_Value=3 in array:
8
6
99
2
11
17
18
5
提前感谢任何想法。
根据您在 C1 中查找的值,这似乎是 return 正确的行号。
对于 A 列中的数字与目标查找数字之间的 最小值 非负差,公式为,
=MATCH(C1-MIN(INDEX(C1-(A:A)+(C1-(A:A)<0)*1E+199,,)),A:A, 0)
对于小于或等于目标查找数的第一个数,公式为,
=MIN(INDEX(ROW(:)+(A:A>C1)*1E+99, , ))