用于分箱数据的IF语句

时间:2013-08-29 02:38:37

标签: excel excel-formula

我在第1栏中有一个数字列表。基于第1列中的数字,我想给每一行另一个数字,即如果单元格A2的值大于1300且小于1400,则在B2中我希望单元格显示6.75

  • 如果A1的值为1350,则B1将以“6.75”的值更新。
  • 如果A1的值为1450,则B1将更新为“7.25”,依此类推。

我需要17个分组:

< 1300> 1400 = 6.75
< 1400> 1500 = 7.25
< 1500> 1600 = 7.75
< 1600> 1700 = 8.25
。 。 。
大于2900 = 14.75

我可以在第1列的电子表格中有很多值,因此需要使用某个公式将它们放入分组存储桶中。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

对于这样的简单线性关系,您可以使用以下行的公式:

=if(a1<1300, 0, if(a1>=2900, 14.75, (trunc(a1 / 100, 0) - 13) * 0.5 + 6.75))

换句话说,首先检查太低和太高的值以提供固定的结果,否则使用最终的公式转换为所需的数字。

这包括除以100以转换(例如)172717,减去13得到4,将其乘以0.5并添加获得6.25的{​​{1}}基础。

这将为您提供您所要求的内容:

8.75

您可以从以下屏幕截图中看到它,显示边缘情况: enter image description here


请注意,您对数字的描述有问题,例如1400,因为您没有指定它们应该属于哪个范围。对于上面给出的公式,范围包括低端和高端独占(例如 x < 1300: 0.00 1300 <= x < 1400: 6.75 1400 <= x < 1500: 7.25 1500 <= x < 1600: 7.75 1600 <= x < 1700: 8.25 1700 <= x < 1800: 8.75 1800 <= x < 1900: 9.25 1900 <= x < 2000: 9.75 2000 <= x < 2100: 10.25 2100 <= x < 2200: 10.75 2200 <= x < 2300: 11.25 2300 <= x < 2400: 11.75 2400 <= x < 2500: 12.25 2500 <= x < 2600: 12.75 2600 <= x < 2700: 13.25 2700 <= x < 2800: 13.75 2800 <= x < 2900: 14.25 2900 <= x : 14.75 )。


如果关系不那么线性(或者更确切地说,是公式化的),您可能需要根据1300..1399.9999的优秀建议考虑使用查找表。

答案 1 :(得分:1)

=VLOOKUP(A3,bArray,2)这样的东西应该适合,复制到适合的地方,其中bArray是两列断点列表的名称,以及到各个断点的值。

SO18501453 example

断点可能需要稍微调整以适应实际需要的任何内容。