【问题标题】:Value between a range of values值范围内的值
【发布时间】:2013-09-27 13:03:09
【问题描述】:

有这个:

Class   Min    Max
Alfa    0      16.5
Beta    16.5   18.5
Charlie 18.5   25
Delta   25     30

还有这个:

Value X
35.52600894
26.27816853
29.53159178
29.84528548
26.77130341
25.07792506
19.2850645
42.77156244
29.11485934
29.5010482
19.30982162

我希望单元格具有类似 IF 语句的内容(其中还有一些值,不是那么小,它有 8 个类)。这么长的 IF 语句可能不起作用(IF 限制为 7)并且是一种丑陋的做法。我正在考虑使用hlookup,但我不确定这是否是最好的选择。 我也可以交换表中的列,所以我可以有“Min| Max| Class” X 值在列中。

基本上:=IF(X>=0 && X<16.5, Alpha, IF(X>=16.5 && X<18.5, Beta, IF(...

【问题讨论】:

  • 您的数据从左到右对齐(您想从第一列获取类),您必须使用 IndexMatch 函数,或者创建一个单独的表这些值你把Class放在第三列,然后你可以使用VLOOKUP
  • 编辑了问题,但是:pnutts:更多类值,8 行。 X 值在一列中,25 是 Delta。大卫:我可以交换给定表上的列,没有问题。

标签: excel excel-formula vlookup excel-2013 worksheet-function


【解决方案1】:

我认为您的意思是 VLOOKUP 并且会是更好的方法。

制作这样的范围表

Min    Class
0      Alfa
16.5   Beta
18.5   Charlie
25     Delta
30.5   Unidentified

在您的详细信息表中使用公式“=VLOOKUP(A2,Ranges!A:B,2,TRUE)”[True 很重要]

你得到了

Value X Class
35.52600894 Unidentified
26.27816853 Delta
29.53159178 Delta
29.84528548 Delta
26.77130341 Delta
25.07792506 Delta
19.2850645  Charlie
42.77156244 Unidentified
29.11485934 Delta
29.5010482  Delta
19.30982162 Charlie

【讨论】:

  • 看看我是否做对了:给定一个值,如果它在给定的最小值和下一个最小值之间,它会查找最小值。如果为 True,则返回类。那个?
  • 非常接近。 True 表示您想要一个近似匹配。使用 False,16.5 将仅匹配 16.5。使用 True 它匹配任何不匹配更高值的 16.5 或更高值。 2 表示您想要第 2 列,即类(这就是我切换范围中的列的原因)
  • 工作。非常感谢 =)
【解决方案2】:

使用您的 Max 范围命名为 MaxVal 和您的 Class 范围命名为 Class,请尝试:

    =IF(A2>30,"",INDEX(Class,MATCH(A2,MaxVal)))  

(调整引用以适应)。

=MATCH() 这里是使用1match_type 参数:“MATCH 函数将找到小于或等于 value 的最大值。您应该确保按升序对数组进行排序。

如果省略 match_type 参数,则 MATCH 函数假定 match_type 为 1。”

任何大于30 的X 值都会返回一个空白(""),但可以插入文本以适应(例如"Unidentified" 而不是"")。

如果在Class 下的AlphaMax 下的0 的标签下立即插入一行,则可以通过删除错误陷阱来简化公式。同样通过删除条件,以类似的方式。

不必指定每个范围的两个边界。

由于给定here 的原因,选择了INDEX/MATCH 而不是说VLOOKUP。

PS 对于希腊语 *alpha*bet α 通常是 Alpha。

编辑重新澄清

25 最简单的解决方法是 Delta 而不是 Charlie 可能是从每个 Max 值中减去少量,例如将 25 更改为 =25-1/1E100

【讨论】:

  • 我最终使用了 asantaballa 的,因为我必须解释我是如何让它工作的以及它是如何工作的,老实说,他的回答在这方面更容易,虽然我明白为什么 Index + 匹配在大型迭代中更快、更高效。无论如何,谢谢你的回答=)
猜你喜欢
  • 1970-01-01
  • 2013-11-14
  • 2018-07-30
  • 1970-01-01
  • 1970-01-01
  • 2019-09-30
  • 1970-01-01
  • 2020-04-18
相关资源
最近更新 更多