Excel VBA数组中的重复字符或数字

Excel VBA数组中的重复字符或数字,excel,excel-formula,Excel,Excel Formula,我需要在excel中沿列无限次重复两个字符(Y,N)2^。因此,在第一列中,每个字符将重复2^0=1,如下所示: Y N Y N 第二列无限重复2^1=2次 Y Y N N Y Y N N 以此类推——我需要为24列做这件事!有没有一个简单的方法可以做到这一点?我认为它可能需要使用数组公式…您可以使用嵌套在一起的替换和重复函数来实现这一点 例如,假设您的原始字符串位于单元格A1(A1=“YN”), 然后,在A2向下移动时,您有要替换的次数(A2=2^0,A3=2^1,A4=2^2,…),您

我需要在excel中沿列无限次重复两个字符(Y,N)2^。因此,在第一列中,每个字符将重复2^0=1,如下所示:

Y
N
Y
N
第二列无限重复2^1=2次

Y
Y
N
N
Y
Y
N
N 

以此类推——我需要为24列做这件事!有没有一个简单的方法可以做到这一点?我认为它可能需要使用数组公式…

您可以使用嵌套在一起的
替换
重复
函数来实现这一点

例如,假设您的原始字符串位于单元格
A1
(A1=“YN”), 然后,在A2向下移动时,您有要替换的次数(A2=2^0,A3=2^1,A4=2^2,…),您的公式可以如下所示:

=SUBSTITUTE(SUBSTITUTE($A$1,"N",REPT("N",$A2)),"Y",REPT("Y",$A2))
然后你可以把公式往下拉


希望这是有意义的

您可以使用嵌套在一起的
Substitute
Repeat
函数来实现这一点

例如,假设您的原始字符串位于单元格
A1
(A1=“YN”), 然后,在A2向下移动时,您有要替换的次数(A2=2^0,A3=2^1,A4=2^2,…),您的公式可以如下所示:

=SUBSTITUTE(SUBSTITUTE($A$1,"N",REPT("N",$A2)),"Y",REPT("Y",$A2))
然后你可以把公式往下拉

希望这在A1中有意义

=IF(MOD(TRUNC((ROW()-1)/COLUMN()),2)=0,"Y","N")
根据需要向下和向右填充。

在A1中

=IF(MOD(TRUNC((ROW()-1)/COLUMN()),2)=0,"Y","N")
=IF(MOD(TRUNC((ROW()-1)/2^(COLUMN()-1)),2)=0,"Y","N")

填写并根据需要更正。

我应该更具体一些,对不起!每个单元格只有一个字符,我需要将其向下拖动到列中。第一列看起来是这样的,第二列看起来是这样的,依此类推,无限向下。这个过程将持续24列…最快的解决方案是,将A1替换为“Y N”(在中间留出一个空格)将公式更改为:
=SUBSTITUTE(SUBSTITUTE($a$1,“N”,REPT(“N”),REPT($A2)),“Y”,REPT(“Y”,$A2))
一旦您将其向下拖动,复制并粘贴特殊>值,然后执行
数据
文本到列
使用空格分隔符,并选择
将连续分隔符视为一个
。。。这样你就可以到达那里了。。。。虽然可以在VBA for循环中轻松完成,但我已经有了一个很酷的公式:pWait。。。我又在看你的评论了。。。我想我还是不知道你想做什么……好吧,A列看起来像这样:Y N Y N Y N N,然后一路重复这个模式,B列看起来像这样:Y Y N Y N N Y N N,然后一路重复这个模式,一直到底部,C列看起来像:Y Y Y N N N N N,然后再次重复。如果我只需要对5列执行此操作,我只需手动拖动模式,但我需要对24列执行此操作。您重复了多少次“YN”?例如,它总是重复3次“YN”,只是增加了“Y”和“N”的数量这意味着A列的所有内容都是“YNYNYN”,B列的所有内容都是“YYNNYYNNYYNN”,等等??我应该更具体一点,对不起!每个单元格只有一个字符,我需要将其向下拖动到列中。第一列看起来是这样的,第二列看起来是这样的,依此类推,无限向下。这个过程将持续24列…最快的解决方案是,将A1替换为“Y N”(在中间留出一个空格)将公式更改为:
=SUBSTITUTE(SUBSTITUTE($a$1,“N”,REPT(“N”),REPT($A2)),“Y”,REPT(“Y”,$A2))
一旦您将其向下拖动,复制并粘贴特殊>值,然后执行
数据
文本到列
使用空格分隔符,并选择
将连续分隔符视为一个
。。。这样你就可以到达那里了。。。。虽然可以在VBA for循环中轻松完成,但我已经有了一个很酷的公式:pWait。。。我又在看你的评论了。。。我想我还是不知道你想做什么……好吧,A列看起来像这样:Y N Y N Y N N,然后一路重复这个模式,B列看起来像这样:Y Y N Y N N Y N N,然后一路重复这个模式,一直到底部,C列看起来像:Y Y Y N N N N N,然后再次重复。如果我只需要对5列执行此操作,我只需手动拖动模式,但我需要对24列执行此操作。您重复了多少次“YN”?例如,它总是重复3次“YN”,只是增加了“Y”和“N”的数量这意味着A列的所有内容都是“YNYNYN”,B列的所有内容都是“YYNNYYNNYYNN”,等等??
=IF(MOD(TRUNC((ROW()-1)/2^(COLUMN()-1)),2)=0,"Y","N")