如何在工作表中查找值,但它可能位于不同的列中,如果符合某些条件,则复制粘贴在另一个工作表中?

时间:2016-02-18 18:19:35

标签: excel vba excel-vba

这是我的问题。 我在同一工作簿中有两张共享一个共同标准(po#)的工作表。 * Sheet1:包含必须根据sheet3过滤和分割的信息...即如果sheet1中的PO#与sheet3中的po#匹配则整个行应该复制并粘贴在“sheet4”中标准(“市场”可能是喷气式飞机,大型商务,亚马逊)。这是它变得更复杂的地方...... 1-sheet3中的po#在第一列(A)中,但是sheet1中的po#在A列或B列中。 2 - 想法是为每个市场准备一张纸。 所以excel应首先寻找po#,如果它在那里,寻找“市场”并复制粘贴在另一张表中共享同一市场的所有记录。 * Sheet3:包含po#和其他一些数据。

- 其他用户问了一个类似的问题(查找记录并粘贴在另一张表中),但答案是基于查找值只在一列中(与我的情况相反,它可能在A或B中) 。如何在两列中查看?

谢谢!

1 个答案:

答案 0 :(得分:0)

由于您的两个搜索列与结果位于同一数据表中,因此您的解决方案实际上非常简单,使用了INDEX& MATCH功能。对于指定的行#,INDEX为列提取值。 MATCH提供行号,其中在列中找到搜索词。它们一起工作,在D列中输入数量,列B与A1中的搜索项匹配的行:

=INDEX(D:D,MATCH(A1,B:B,0))

对于您的情况,您只需要使用IFERROR首先尝试匹配一列中的搜索词,然后如果找不到匹配项,请尝试匹配第二列中的搜索词。将此公式放在sheet1中,从B2开始[假设没有标题],然后向下拖动到右边:

=INDEX('Sheet3'!B:B,IFERROR(MATCH('Sheet1'$A2,'Sheet3'!$A:$A,0),MATCH('Sheet1'$A2,'Sheet3'!$B:$B,0)))