Excel宏或函数:如果单元格不是空的,则使用循环值(来自另一个工作表)填充单元格范围(a列)
需要帮助的人试图学习宏编码 表1有两列A和B。表2列A有一个值范围。 如果表1列a单元格不为空,我想用表2列a上的值填充表1列B 下图Excel宏或函数:如果单元格不是空的,则使用循环值(来自另一个工作表)填充单元格范围(a列),excel,vba,excel-formula,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应该通过循环
Sheet2 Col A
Brian,
David,
Nicole,
Aspen,
Col A
Apple
Banana
Orange
Lemon
Mango
Strawberry
Grape
Col B应该通过循环名字来填充,Brian代表苹果,David代表香蕉,依此类推,然后回到David,依此类推,直到Nicole得到葡萄
请帮助提供函数或宏vba代码以完成此操作。一种方法是使用
间接
:
=INDIRECT("Sheet2!A" & MOD(ROW()+3,4)+1)
这假设名称位于A1:A4
编辑:我刚刚想到了一种使用索引的方法:
=INDEX(Sheet2!A$1:A$4,MOD(ROW()+3,4)+1)
MOD
将返回行号的剩余部分除以n
(在本例中为4
)。这将导致一个介于0
和3
(n-1
)之间的数字,包括。行1-6
的顺序是1、2、3、0、1、2
通过将3
(n-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)
你好你能解释一下表达式的这一部分吗,MOD(ROW()+3,4)+1?例如,如果我有12个名字和200个水果:我尝试了索引选项,它循环5个名字而不是12个。非常好@controlnetic.nomad++谢谢!这似乎对我的情况有效。:)有一点,工作表有一个标题,函数从列表中的第二项开始。如何调整以使其从列表的第一项开始?抱歉,在进一步检查后,我忘记了如果A列上没有更多的结果,它应该停止分配名称。可以使用if(A1“”,formula,”