本期我们来聊聊Excel的Offset函数,简单来说该函数是用于定位单元格或单元格区域的,根据参照单元格,给出上下位移的行数、左右位移的列数,以及相应的范围,来返回某个单元格或单元格区域的数据。
在如下的查询列表中,我们希望通过Offset函数来查询到“0.73%”这一数据单元格。

在此例中,我们以首个“Big Bankz”所在的单元格B5为参照,向下位移4行,向右位移两列,即可定位到“0.73%”所在单元格D9。
在J4单元格中输入Offset函数,输入其必要的前三个参数,分别为reference、rows、cols,需要注意的是参数rows和cols,如果设置为0,则产生位移,如果都为正数,则分别向下和向右位移,反之,如果为负数,则分别向上和向左位移。

后两个参数为可选参数,height和width,默认为1,即单个单元格,如果设置大于1,则返回的是单元格区域的数据。
按Enter键后,J4单元格中返回数据列表中D9单元格的数据。

然而,在实际的应用中,我们可能无法如上这样简单地设置Offset函数的参数,因为这样也不具有灵活性,因此在实际的情况下,这些参数可能需要通过其他的计算来获取。我们来看下面一个案例。
在Loan Schedule工作表中,我们要根据数据模型中所给的信息来获取“Higher Lending Charge”的百分比,在此例中因为贷款额超过房产价值的80%,故收取这一额外的费用,只不过不同的借贷机构有不同的收费标准,例如当前所示的贷款数据模型是:借贷机构为“Big Bankz”,贷款为“2125000”,借贷比例为85%,对应的“Higher Lending Charge”百分比则在HLC Table工作表的D列中查询。
在H8单元格中输入Offset函数,第一个参数要以“Big Bankz”为参照,所以通过INDEX函数来查询,查询的区域为“HLC_Lenders”数据表,查询列通过MATCH函数来获取,匹配“Big Bankz”在“HLC_Lenders”数据表所在的列数。

Offset函数的第二个参数,通过ROUNDDOWN函数来获取,在“Higher Lending Charge”数据列表中,“Big Bankz”的额外费用率根据借贷额百分比每增加1%而增加,因此计算向下舍入的借贷额百分比减去80.01,并且不保留小数点后的位数,最后便能得出Offset函数需要向下位移的行数。

Offset函数的第三个参数,通过MATCH函数来获取,根据借贷额来定位额外费用率所在的列数,注意在“Higher Lending Charge”数据列表中,没有与当前借贷额“2”完全匹配的数额,而是在一个区间范围内(0-300000),所以用“小于”这一匹配方式。

另外在计算列数时,需要加上额外的1列,即额外费用率和借贷机构之间的那列“%Borrowing”。

完成公式后,按Enter键即可返回对应的“Higher Lending Charge”百分比。

通过以上的案例,我们了解到Offset函数的基本用法,以及如何与其他的查询函数结合使用来查询数据,下一期我们会继续使用Offset函数来解决一些其他的问题,敬请期待!
人的知识愈广,人的本身也愈臻完善。——高尔基