我希望有人能回答我的问题!
我有很多值,需要知道哪些值位于范围列表内,如果是,则它们位于哪个范围内。
例如,工作表 1 在 A 列中包含我感兴趣的值,而工作表 2 在 B 列中包含范围的起始值,在 C 列中包含范围的终止值,并在 D 列中包含每个范围的名称。我如何确定工作表 1 在 A 列中给出的值是否介于工作表 2 在 B 列到 C 列中描述的任何范围之间,并从 D 列返回相应的信息。本质上就是找出感兴趣的值所涵盖的范围。
附言:如果有人知道如何做的话,找到范围内的范围会更好,但是我不久前就放弃了!
答案1
有许多网站更详细地讨论了双重匹配和类似的公式以及更有效的方法,但这里仅举一个例子。
假设:2 张
- 工作表 1 = 数据
- A 列 = 钻孔
- B 列 = 深度
- C 列 = 根据工作表 2 计算的值
- 第 2 页 = 范围
- 钻孔
- 深度来自
- 深度至
- 值(用于填充表 1 的 C 列)
该公式是一个数组公式,这意味着需要使用ctrl++输入shiftenter
=INDEX(ranges!$D$2:$D$5,MATCH(data!A2,IF(data!B2>ranges!$B$2:$B$5,IF(data!B2<ranges!$C$2:$C$5,ranges!$A$2:$A$5,""),""),0))
我不会深入讨论索引和匹配的工作原理,因为这些在网上随处可见,但对于匹配公式的内部情况来说,这就是正在发生的事情。
他们俩如果函数检查您指定的深度是否介于每个深度起点和深度终点值之间。如果不符合这两个条件,则返回空白;如果符合这两个条件,则返回 A 列中的钻孔 ID。
然后,匹配函数会尝试将您想要的井 ID 与包含一些井 ID 和一堆空白的数组进行匹配。如果匹配到井 ID,则这是您要查找的行,并将该值返回到选择相应值单元格的索引。
对于匹配范围,它取决于范围是否排列或者哪个范围更长,因为您可能尝试将值填充到跨越多个箱的范围中。