如何获取一组值并将其与多个条件行进行比较

如何获取一组值并将其与多个条件行进行比较

我想要实现的目标的示例:

例子

A  B  C   D  E  F
1  1  <=  2  2  1
2  2  <=  4  23 8
3  4  <=  7  5  3
4  7  <=  10 40 10
5  10 <=  12 7  3
6  12 <=  17 8  4
7  17 <=  19 12 5

我想从 E 列中取出每个数字,然后确定它属于哪一行 A,如果条件是数字 E >B 且 <=D(使用每行都有不同值的整个范围 B1:D999)。

F 列将返回 E 列数字的行号 A。

如果 B 列和 D 列的每一行都是我的标准,如 B1<=D1、B2<=D2、B3<=D3 等,我想比较 E 列中的每个数字,看看它们属于哪个范围。例如,E6=40,该数字属于 B12<=D12 范围,在 A12 行中的值为 10)。因此,我想从 E6 旁边的单元格 F6 中的 A 行中获取该数字。我有大约 500 个数字,它们还包括 B、D 和 E 列中的小数,而 A 列只有整数。

A3 行表示从 1 到 2 的数字,A4 行表示大于 2 到 4 的数字。因此,E3 大于 B3 列中的数字并且小于或等于 D3 列中的数字,因此它属于第 3 行的范围内,所以 F 值与 A3 = 1 相同。

答案1

这是 p 的变体。菲多特的方法。按升序查找会捕获错误的范围,而调整中间范围值会导致范围边界处的值的结果不准确。如果按降序查找,则正常的 MATCH 会起作用。

按 A、B 或 D 列对表格进行降序排序。F3 中的公式为:

=INDEX(A:A,MATCH(E3,D:D,-1),)

如果这些列中还有其他内容,请使范围引用绝对地址,例如 $A$3:$A$12 和 $D$3:$D$12。这只需要查找 A 列和 D 列,因此在我的示例中我没有填写 B 列或 C 列内容:

在此处输入图片描述

如果您的 A 列只是表格行标识符,并且可以保持升序排列,那么这甚至可以简化。MATCH 返回表中的序列号,该序列号对应于按升序排列的 A 列,因此公式可以简化为:

=MATCH(E3,$D$3:$D$12,-1)

在此处输入图片描述

注意,为了使 MATCH 结果与 A 列表行索引匹配,需要使用绝对引用指定查找范围。

答案2

在 F3 中尝试这个:

=IFERROR(INDEX(A:A,MATCH(E3,D:D,0)),INDEX(A:A,MATCH(E3,D:D,1))+1)

但我认为你必须添加:

A1  ---> -1
A2  ---> 0
D1  ---> 0
D2  ---> 1

弥补“缺失范围”。

相关内容