2014-12-21 150 views
1

我有一系列带有“产品代码”字段的页面,我从我的网站上复制(原始源文档已放错地方)。我现在在Excel中拥有页面数据,并且需要使用公式来查找“产品代码”标题,然后返回该标题下的值。尽管页面之间的标题是一致的,但每个页面在页面上的值在哪里都有点不同。在单元格范围内查找值并返回一定距离的值

我需要制定出最好的公式,以便无论“产品代码”在哪个单元格中,excel都可以找到它,然后给出它下面的单元格的值。

它看起来很直接,但我无法得到它,它正在做我的头。我看到别处,似乎无法重做其他人使用VLOOKUP,HLOOKUP,MATCH & INDEX公式的示例。

有谁知道这将是可能的吗?

+0

是它的正下方?你想要一个Excel功能,特别是VBA好吗? –

+0

嗨@RusanKax,是的,相关字段总是直接在“产品代码”单元格下。如果可能的话,最好使用excel公式,但如果完全必要的话,很乐意学习如何使用宏。 :) – EKQM

+0

还有一个问题 - 是否总是只有1 *独特的*单元格包含您想要在每张表上找到的文本? –

回答

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 

如果你真的想/必须使用内置的工作表函数,这是一个有点繁琐,如果你不知道是什么行或列的标签“产品编号”就会英寸

如果你知道行,例如,那么这是可以做到这样的:

=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

+0

非常感谢您对@RusanKax的帮助。 我知道列将始终为'A',不一致之处在于列每次都会向下多远。这是否使得使用Excel公式更容易? 要使用VBA功能,我将不得不学习如何使用宏(没关系,但会明显延长..:)) – EKQM

+0

它工作正常!谢谢Rusan的帮助。祝您有个愉快的日子 – EKQM

+0

@EKQM没有问题。欢迎再来 –

相关问题