Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel公式或VBA_Excel_Vba - Fatal编程技术网

Excel公式或VBA

Excel公式或VBA,excel,vba,Excel,Vba,我有一个超过400000行的工作表。A是客户编号,B是客户名称,同一编号的名称可能有两个或多个变体。我希望使名称相对于编号相同,因此在透视表中,每个客户编号只有一行。下面的数据示例 专栏:A 客户编号 迪尤999684 迪尤999684 迪尤999684 B栏“客户名称:” ZWICKAU-XX 兹维考 兹维考 为了方便起见,我按客户编号进行了排序,当“客户编号”发生变化且编号相等时,可以使用“客户名称”的第一个实例。所以上面的例子中所有的名字都可以是“ZWICKAU-XX” 我尝试了IF(和,

我有一个超过400000行的工作表。A是客户编号,B是客户名称,同一编号的名称可能有两个或多个变体。我希望使名称相对于编号相同,因此在透视表中,每个客户编号只有一行。下面的数据示例

专栏:A

客户编号

迪尤999684

迪尤999684

迪尤999684

B栏“客户名称:”

ZWICKAU-XX

兹维考

兹维考

为了方便起见,我按客户编号进行了排序,当“客户编号”发生变化且编号相等时,可以使用“客户名称”的第一个实例。所以上面的例子中所有的名字都可以是“ZWICKAU-XX”

我尝试了IF(和,但显然不起作用,例如…=IF(和)(A1=A2,B1=B2,B1,B2)

希望有人能帮我省去手工清理400000条记录的麻烦


谢谢,dkmanley

在单元格C1中输入公式:
=FALSE
(我的意思是在C1中输入文本“FALSE”) 然后将其复制到C列:
=IF(A2=A1;TRUE;FALSE)
(从C2开始)

在单元格D1中输入公式:
=A1
然后将其复制到D列:
=IF(C2=FALSE;B2;D1)
(从D2开始)

以下是一个示例:

1   a   FALSE   a
1   a   TRUE    a
1   a   TRUE    a
1   x   TRUE    a
1   x   TRUE    a
2   b   FALSE   b
2   b   TRUE    b
2   b   TRUE    b
2   bf  TRUE    b
2   c   TRUE    b
2   c   TRUE    b
3   d   FALSE   d
3   d   TRUE    d
3   d   TRUE    d
3   s   TRUE    d
3   c   TRUE    d
3   d   TRUE    d
3   s   TRUE    d
4   a   FALSE   a
4   d   TRUE    a
4   f   TRUE    a
4   g   TRUE    a
4   s   TRUE    a
4   a   TRUE    a

你可以用像这样的东西

=INDEX(B:B,MATCH(A1,A:A,0))
然后向下复制。数据不需要排序。公式将返回第一次出现的数字的名称,从顶部开始