Excel宏或函数:如果单元格不为空,则使用循环值(来自另一张纸)填充单元格区域(A列)

时间:2019-05-23 16:13:13

标签: excel vba excel-formula

需要帮助尝试学习宏编码的人。

表1具有两列A和B。表2,列A具有一个值范围。 如果工作表1列A单元格不为空,我想用工作表2列A上的值填充工作表1列B。

下面的插图。

Sheet2 Col A
Brian, 
David,
Nicole,
Aspen,

Col A                  
Apple         
Banana        
Orange        
Lemon         
Mango         
Strawberry    
Grape      

Col B应该用以下名称填充:Brian代表Apple,然后是David代表Banana,依此类推,然后再返回David,依此类推,直到Grape代表Nicole。

请帮助提供函数或宏vba代码以完成此操作。

1 个答案:

答案 0 :(得分:1)

一种方法是使用INDIRECT

=INDIRECT("Sheet2!A" & MOD(ROW()+3,4)+1)

这假设名称在A1:A4

编辑:我刚刚想到了一种使用INDEX的方法:

=INDEX(Sheet2!A$1:A$4,MOD(ROW()+3,4)+1)

MOD将返回行号的其余部分除以n(在这种情况下为4)。这将得出介于03n-1)之间的数字。行1-6的顺序为1, 2, 3, 0, 1, 2

通过在行号上添加3n-1),我可以获得行1-6成为0, 1, 2, 3, 0, 1的序列

然后将1添加到mod中,形成序列:1, 2, 3, 4, 1, 2,然后我可以将其用作名称表的索引

要使用12个名称:

=INDEX(F$1:F$12,MOD(ROW()+11,12)+1)