在excel中如何为另一列中的每一行重复列

在Excel中,在表格1中有城市名称,在表格2中有人名。

City Achalpur Achhnera Adalaj Adilabad person name Name A B C D 

我想在下面的工作表3中的结果

 city 1 person 1 city 1 person 2 till last person city 2 person 1 city 2 person 2 Achalpur A Achalpur B Achalpur C Achalpur D Achalpur E Achalpur F Achalpur G 

这是一个可以为你做的function。 如果可以确保城市列表或第二个列表中的条目之间不存在空行,则可以稍微修改它。

它还假定你的数据在Sheet1和Sheet2中有一个标题行。

一个小的事情要修改,你可能只需要设置s3RCtr返回5每循环完成,否则你会得到在你的结果5空行的差距。

我希望这有帮助。 对不起,我有一些急于看atm的东西。

 Function DoStuff() Dim s1ECtr, s1RCtr Dim s2ECtr, s2RCtr Dim s3RCtr s1ECtr = 1 s2ECtr = 1 s1RCtr = 2 s3RCtr = 2 Do While s1ECtr < 5 If (Sheet1.Cells(s1RCtr, 1) <> "") Then s2RCtr = 2 Do While s2ECtr < 5 If (Sheet2.Cells(s2RCtr, 1) <> "") Then Sheet3.Cells(s3RCtr, 1) = Sheet1.Cells(s1RCtr, 1) & " " & Sheet2.Cells(s2RCtr, 1) Else s2ECtr = s2ECtr + 1 End If s3RCtr = s3RCtr + 1 s2RCtr = s2RCtr + 1 Loop s2ECtr = 0 Else s1ECtr = s1ECtr + 1 End If s1RCtr = s1RCtr + 1 Loop End Function