根据A列和B列配对填充B列

时间:2014-07-24 18:34:07

标签: excel vba

A列中的每个报告在B列中都有相应的位置

B列包含许多报告的位置,但不是全部。

我需要填写B栏中空白的位置。

    A    B     ->    A    B
    1    a           1    a
    1                1    a
    2    b           2    b
    2    b           2    b
    2                2    b
    3                3    
    3                3

我试过= IF(ISERROR(MATCH(A1,$ A:$ B,0)),"",B1),但我确实遗漏了一些东西。我还有35000行,希望一次处理它。

2 个答案:

答案 0 :(得分:1)

你可以做的一种方法是使用索引/匹配函数。需要使用 Ctrl + Shift + 输入

输入
  

= INDEX($ B $ 1:$ B $ 7,MATCH(A1,IF($ B $ 1:$ B $ J = “”, “”,$ A $ 1:$ A $ 7),0))

匹配的是返回单元格的索引号,因此如果在范围的第3个单元格中找到它,则返回3而不是单元格值。

在匹配中,我们有一个if语句,如果B中的单元格为空,则在数组中放置一个空格,如果不是则为单元格A中的值。

然后我们将单元格A1中的值与此数组匹配,该数组将返回填充列B,如果存在,则返回匹配列A.

索引允许您根据单元格索引(匹配返回)选择范围中的单元格。

此公式位于单元格C1中,数据位于A1:B7。

答案 1 :(得分:0)

听起来你只是做了一次,所以不需要编程。

如果是这样,请先在 Column_A,Column_B 上对数据进行排序。然后向右移动,从列B创建一个计算列,当两行具有相同的Column_A值时,该列完全覆盖任何空白,其值与前一行完全相同。

然后复制列并选择Paste Special - > Column_B顶部的值。