电子表格里确定具体数值在一个取值范围内的行号

作者:小胖吴 | 创建时间: 2023-07-17
在电子表格里,有时需要确定一个具体数值在一个取值范围内的行号位置,这时需要用到 MATCH 函数。比如,根据学生分数确定该学生的等级。本以运输重量和运费标准的对应为例,演示一下 MATCH 函数的用法。 如图所示,“运输费用表”是重量与运费...
电子表格里确定具体数值在一个取值范围内的行号

数据范围为升序的定位方法

有这样一张《运输费用表》,它标明了不同的运输重量对应的运费价格。第一行是“1”对应“100”,意思是从 1 吨到 100 吨的区间(包含 1 吨但不包含 100 吨,即为一个 [1,100)的区间),每吨的运费为 200 元;以此类推。

现在,在每天的运费流水账里,通过每一次真实的运输重量,来确定相应的运输费用。 输入该次运输发生的日期,该次运输的重量,在“运费对应的等级”中,输入: =MATCH( 然后鼠标点击该次运输的重量所在的单元格。

现在公式变成: =MATCH(C5,) 这时,鼠标点击“运输费用表”,然后选择其中的“运输重量(吨)”列中的数据单元格,这时公式变成: =MATCH(C5,运输费用表.B5:B11,) 分别在公式中“B5”和“B11”上按下 F4 键,使其从相对引用状态变为绝对引用状态。这时公式变成: =MATCH(C5,$运输费用表.$B$5:$B$11,)

现在,输入数字“1”,公式变成: =MATCH(C5,$运输费用表.$B$5:$B$11,1) 按下回车,该单元格返回数字:“3”。

总结一下,我们在“重量”单元格输入了数字“233”,然后用 MATCH 函数在“运输费用表”中,查找“233”对应的运费等级。由于 200<=233<500,位于 [200,500) 这一区间,因此返回的数字“3”,就代表“运输费用表”中“运输重量(吨)”是“200”的那一行,也就是第 3 行。

数据范围为降序的定位方法

前面的定位方法,如果运输重量刚好是 100 吨,运费水平将会被定位到 [100,200) 的区间。有时,我们需要这样的结果:那就是 100 吨应该属于 (1,100] 这一区间,也就是只有超过 100 吨,才进入 (100,200] 这一区间。 在前面的方法中,MATCH 函数使用的最后一个参数“1”,意思是查找范围内“小于或等于”目标值的“最大值”。 现在,我们稍做改变,实现对“大于或等于目标值的最小值”的查找。 在“运输费用表”中选中“运输重量(吨)”列中所有的数据单元格,然后“数据”菜单——“降序”菜单项。

由于上一步骤中提到的区间的变化,运输重量和运费的对应关系也发生了变化,因此需要对数据进行修改,注意与上一栏目中表数字的区别。

再到“运费流水”表中看一下,发现前面输入公式的地方,出现了“#N/A”的字样,意思是没找到。按下 F2 键,将公式改成: =MATCH(C5,$运输费用表.$B$5:$B$10,-1) 最后一个参数由“1”改为“-1”,意思就是查找“大于或等于目标值的最小值”。

现在,在“运费流水”表的“重量”一列中输入“200”,公式将返回数字“5”,也就是对应 (100,200] 这一区间;如果输入“201”,则返回“4”,也就是对应 (200,500] 这一区间。

温馨提示

本使用 LibreOffice Calc 作为试验软件;Excel 等其他电子表格软件类似。
注意 MATCH 函数在一个区域内查找时,该区域是升序还是降序排列,是非常关键的因素。
MATCH 函数结合 INDEX 函数,可以实现精确的定位和计算功能。
点击展开全文

更多推荐