在Excel中使用偏移函数

  • Share This
Hugh West

今天,我想向你介绍 Excel的OFFSET函数 有3个现实生活中的例子。

首先,我将描述公式的语法,然后我将谈论如何使用OFFSET函数来解决实际生活中的问题。

简介

OFFSET函数可以返回一个单元格(姑且称为目标单元格)或区域(目标区域)的引用,该单元格或区域距离另一个单元格(参考单元格)或区域(参考区域)有一定数量的行和列。

下图说明了如何使用OFFSET函数来返回对一个单元格(左边部分)或一个范围(右边部分)的引用。

它将给你一个直观的印象,什么是目标单元,什么是参考单元。

绿色突出显示的单元格是目标单元格,而黄色突出显示的单元格是由目标范围组成的。

蓝色突出显示的单元格是参考单元格。

图一

OFFSET在Excel(语法)中是什么意思?

以下是偏移函数的语法。 关节 (reference, rows, cols, [height], [width])

参考资料 需要。 参考是指一个单元格或单元格范围,从这个单元格开始偏移。 请注意,如果你指定一个单元格范围,这些单元格必须彼此相邻。
行数 需要 行数,向上或向下,参考单元格或参考范围的左上角单元格。 行数 看看图1的左边部分,如果我把函数改为OFFSET(C3, -1, -1),目标单元格将是B2。 B2在C3的上面一行。
Cols 需要。 参考单元格或参考范围的左上角单元格的左边或右边的列数。 如同 行数 参数,其值为 Cols 如果我们将B4设置为参考单元格,将C3设置为目标单元格,我们如何编写OFFSET函数? 答案是OFFSET(B4, -1, 1)。 这里你可以看到Cols是正数,C3在B4的右边一列。
高度 可选。 只有当目标是一个范围时才使用Height参数。 它告诉我们目标范围包括多少行。 Height必须是一个正数。 你可以从图1的右边部分看到,目标范围中有两行。 因此,在这种情况下,我们将Height设置为2。
宽度 可选。 如果目标是一个范围(见图1的右边部分),只使用Width参数。 它表示目标范围包含多少列。 宽度必须是一个正数。

好了,现在让我告诉你如何使用OFFSET函数来解决实际生活中的问题。

案例1:通过结合OFFSET和MATCH函数进行从右到左的查询

众所周知,你只能用VLOOKUP函数进行从左到右的查询。

要搜索的值必须放在你的表格数组的第一列中。

如果你想增加一个新的查询值,你必须将整个表的范围向右移动一列,或者如果你想使用另一列作为查询值,你需要改变你的数据结构。

但通过将OFFSET与Match功能结合在一起,可以消除VLOOKUP功能的限制。

什么是MATCH函数,我们如何将OFFSET函数与Match函数结合起来进行查找?

那么,Match函数在一个单元格范围内搜索一个指定的项目,然后返回该项目在该范围内的相对位置。

让我们以图2.1(显示不同国家在不同年份的收入)中的B3:B8范围为例。

公式"=MATCH ("USA", B3:B8, 0)" 将返回 1 因为美国是范围内的第一个项目(见单元格B10和C10)。

对于另一个范围C2:F2,公式"=MATCH(2015,C2:F2,0)"返回 3 因为2015年是范围内的第三个项目(见单元格B11和C11)。

再回到OFFSET功能。

如果我们将B2单元格设为参考单元格,将E3单元格设为目标单元格,我们如何编写OFFSET公式?

E3是 1 B2以下的行和 3 栏目右侧至B2。

因此,公式可以写成"=OFFSET(B2.C)"。 1 , 3 )",仔细观察红色的数字,你能发现它们是匹配的吗?

这就是问题的答案--如何将OFFSET函数与Match函数结合起来--。 匹配函数可以应用于作为OFFSET函数的第二个或第三个参数 (见C13单元)。

单元格C14展示了如何使用VLOOKUP函数来检索相同的数据。

在编写VLOOKUP函数之前,我们必须知道2015年的收入记录在表格阵列B2:F8的第4列。

这意味着我们在使用VLOOKUP函数时,必须对数据结构非常了解。

这是VLOOKUP的另一个限制。 然而,通过使用MATCH函数作为OFFSET函数的参数,我们不需要知道列的索引。

如果有很多列,这非常有用。

图2.1

现在让我们继续,看看一个更复杂的例子。

假设我们有一个包含不同公司的公司名称、联系人姓名和电子邮件地址的表。

我们想从已知的联系人姓名中获取公司名称,或从已知的电子邮件地址中获取联系人姓名。 我们能做什么?

见图2.2,单元格B5:E8包括公司信息,通过在单元格C2和单元格B3中输入信息,在红色方块公式的帮助下,如果我知道联系人姓名,我就可以检索到公司名称。

范围D2:E4显示了如何获得一个已知电子邮件地址的联系人姓名。

综上所述,这两个例子说明我们可以进行从右到左的查找,而且查找值不需要放在最右边的列中。 表数组中的任何列都可以包含查找值。

图2.2

案例2:结合OFFSET和COUNT函数进行自动计算

在介绍每当我们在一列中添加一个新的数字时如何自动计算之前,让我们先从如何自动返回一列中的最后一个数字开始。

假设我们想得到B列的最后一个数字,公式是"=OFFSET(C2.C)"。 9 ,0)",如果我们应用OFFSET函数。

从公式中,我们可以知道, 9 是钥匙的编号。

只要我们能自动返回这个数字,我们就能在一列中自动定位最后一个数字。

9 是指C列中包含数字的单元格的数量。

如果你熟悉COUNT函数,你会知道COUNT函数可以计算一个范围内包含数字的单元格的数量。

例如,公式"=COUNT (C3:C11) "将计算单元格C3至C11中包含数字的单元格数量。

在我们的案例中,我们想知道一整列有多少个数字,因此,应该使用像C:C这样包括C列所有行的引用。

请看G4和H4单元格,由"=COUNT(C:C) "返回的数字正好等于 9 .

因此,通过在上述OFFSET函数中用COUNT(C:C)代替9,我们可以得到一个新的公式"=OFFSET(C2.C)"。 COUNT(C:C) ,0)"(在单元格H5)。

它返回的数字是87000,正好是C列的最后一个数字。

假设我们想得到C列中所有数字的总和,现在让我们开始自动计算。

该公式将是"=SUM(OFFSET(C2,1,0。 9 , 1))" 如果我们将SUM与OFFSET一起使用。

9 是C3:C11范围内的总行数,也是C列中包含数字的单元格总数。

因此,我们可以用一种新的方式来写公式,如"=SUM(OFFSET(C2,1,0,COUNT(C:C),1))"。

看看G10和H10单元格,这9名员工的工资总数是52.17万美元。

现在,如果你在单元格C12中放入一个类似34,000美元的数字,单元格G5和G10中的数字都将分别变为34,000美元和555,700美元。

这就是我所说的自动化,因为你不需要更新G5或G10单元格中的公式。

当你使用COUNT函数时,你必须小心,因为COUNT函数只返回包含数字的单元格数量。

例如,"=COUNT(B:B)"返回0而不是9,因为B列中没有包含数字的单元格(见G3和H3单元格)。

D列包括10个含有数字的单元格,"COUNT(D:D)"返回的数字也是10。

但如果我们想像对C列那样检索D列的最后一个数字,我们将得到数字0(见G8和H8单元格)。

很明显,0不是我们想要的,怎么了? D13单元格离D2单元格有11行,而不是10行。

这也可以通过公式"=OFFSET(D2,COUNT(D:D))"来证明。 + 1 ,0)"在单元格G7。

总之,如果我们想把COUNT函数和OFFSET函数一起使用,实现计算的自动化,数字应该是相邻的。

图3

案例3:使用OFFSET函数来做一个动态范围

假设我们想绘制一家公司的月度销售量图表,图4.1显示了当前数据和基于当前数据创建的图表。

每个月,最近一个月的单位销售额将被添加到C栏最后一个数字下面。

有没有一种简单的方法来自动更新图表?

更新图表的关键是使用OFFSET函数为销售单位栏创建动态范围名称。

随着新数据的输入,单位销售的动态范围将自动包括所有销售数据。

图4.1

要创建一个动态范围,点击 公式 选项卡,然后选择 名字经理 定义名称 .

下图 新名称 对话框会提示,如果你点击了 定义名称 .

如果你选择 经理姓名 ,你还需要点击 新的 使得下面的 新名称 对话框出现。

图4.2

在" 名称。 "输入框中,应填写动态范围的名称。 而在" 指的是:" 输入框中,我们需要输入OFFSET公式"=OFFSET(Figure4!$C$2, 1, 0, COUNT(!$C: $C), 1)",它将根据C列中输入的单位销售值产生一个动态范围的值。

默认情况下,一个名称将适用于整个工作簿,并且在工作簿中必须是唯一的。

然而,我们想把范围限制在一个特定的工作表。

因此,我们在这里选择图4中的" 范围。 "在点击了 认可 ,动态范围就产生了。

随着新数据的输入,它将自动包括所有销售数据。

现在,右键点击图表中的任何一点,然后选择 "选择数据"。

图4.3

在提示的 选择数据 来源,选择 系列1 然后 编辑。

图4.4

然后输入"=Figure4!Units",如图4.5所示。

图4.5

最后,让我们试一试,在单元格C13中输入11,你可以看到图表发生了变化,数值11已经被包含在内。

当有新数据加入时,图表会自动改变。

图4.6

阅读更多...

  • Excel中的Offset(...)函数及示例

下载工作文件

从以下链接下载工作文件。

Excel-Offset-Function.rar

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.