在一系列单元格中查找值并返回一定距离的值

时间:2014-12-21 22:52:42

标签: excel excel-formula

我有一系列带有"产品代码的页面"我从我的网站上复制的字段(原始源文档放错了地方)。我现在在excel中有页面数据,需要使用公式来查找标题"产品代码"然后返回该标题下的值。虽然页面之间的标题是一致的,但每个页面在页面上的值都有所不同。

我需要找出最好的配方,这样无论哪个细胞都是"产品代码"在,excel可以找到它,然后给出它下面的单元格的值。

看起来似乎是直截了当但是我无法得到它并且它正在努力。我已经看过其他地方并且似乎无法改造其他人使用的例子VLOOKUP,HLOOKUP,MATCH& INDEX公式。

有谁知道这怎么可能?

1 个答案:

答案 0 :(得分:1)

到目前为止,最简单,最灵活的方法是使用VBA函数(您可以简单地使用它,因为它是一个普通的工作表函数)。这是VBA

Public Function Find_Pcode(ByRef to_search As Range, Findthat As String) As Variant
    Find_Pcode = to_search.Find(what:=Findthat, MatchCase:=False).Offset(1, 0).Value
End Function

如果你真的想要/必须使用内置的工作表函数,如果你不知道你的标签是什么列或行,那就有点繁琐了#34;产品代码"将在。

例如,如果您确实知道ROW,那么就可以这样做:

=OFFSET(G5,1,MATCH("Product Code",G5:O5,0)-1)

其中G5是行G5:O5中的第一个单元格,您知道它包含的单元格为"产品代码"在里面。正如我所提到的,这只有在您知道要查看哪一行时才有效。

另外,如果你知道它总是在A列中,那么你也可以使用这个工作表函数

=OFFSET(A1,MATCH("Product Code",A1:A25,0),0)

A1:A25位于哪里,您要搜索包含"产品代码"的单元格。

下面的图片详细介绍了如何使用这些功能(可能需要放大!)

使用VBA。打开VBA窗口 - >插入"模块"在您的工作表中(通过左窗格并右键单击工作表名称) - >将VBA粘贴到模块中 - >使用VBA,如图2所示。

VBA更灵活,因为您可以为其提供正方形/任意大小的搜索范围。

how to use match

how to use VBA function