是否可以在没有安装VBA或宏的情况下在Excel中迭代(循环)一组行?谷歌没有产生任何帮助。
=IF('testsheet'!$C$1 <= 99,'testsheet'!$A$1,"") &
IF('testsheet'!$C$2 <= 99, 'testsheet'!$A$2,"") &
IF('testsheet'!$C$3 <= 99, 'testsheet'!$A$3,"") &
... and so on through !$C$40, !$A$40 ...
实际上,我将不得不在每个单元格中重复上述代码40次,并且我有200多个需要代码的单元格。 嗅探
我对PHP / SQL非常好,但只是学习Excel。
答案 0 :(得分:17)
获得公式结果的方法是从新表中开始。
在单元格A1中输入公式
=IF('testsheet'!C1 <= 99,'testsheet'!A1,"")
将该单元格复制到第40行 在单元格B1中放入公式
=A1
在单元格B2中输入公式
=B1 & A2
将该单元格复制到第40行。
您想要的值现在位于第40行的该列中。
不是你想要的答案,但这是最快速完成工作的方法,而不是创建一个自定义公式,它接受一个范围并进行计算(这会更有趣)。
答案 1 :(得分:5)
我只是在寻找类似的东西:
我想对每个奇数行列求和。
SUMIF有两个可能的范围,从求和的范围,以及考虑标准的范围。
SUMIF(B1:B1000,1,A1:A1000)
此函数将考虑B范围内的单元格是否为&#34; = 1&#34;,它将仅对相应的A单元求和。
获得&#34; = 1&#34;要在B范围内返回,我把它放在B:
= MOD(ROWNUM(B1),2)
然后自动填充以获得要填充的模数,您可以在此处设置和计算标准,以获得循环每个单元格所需的SUMIF或SUMIFS条件。
比ARRAY更容易并且隐藏了循环的后端!
答案 2 :(得分:3)
自己回答这个问题(如果我错了,请纠正我):
在未安装VBA /宏的情况下,无法在Excel中迭代一组行(如数组)。
答案 3 :(得分:1)
您可以在计算电子表格的某处创建一个表格,该表格为每对单元格执行此操作,并使用自动填充来填充它。
将该表的结果汇总到结果单元格中。
参考结果的200个细胞然后可以参考保存聚合结果的细胞。在最新版本的excel中,您可以命名结果单元格并以这种方式引用它,以便于阅读。
答案 4 :(得分:1)
当您具有以不同速率重复的变量循环时,添加更多列。我不确定你要做什么,但我认为我已经做了一些可以适用的事情。
在Excel中创建单个循环非常简单。它实际上为你工作。在新工作簿上试试这个
A3将自动为“= A2 + 1”。第一步不必是明确的。如果您只在A2中输入“2”,Excel将自动识别模式并计数,但如果我们希望B1-B5为“100”而B5-B10为“200”(以相同的方式计数),您可以看到为什么知道怎么做才明确重要。在这种情况下,您只需输入:
B7将自动为“= B2 + 100”等,所以基本上每5行无限增加。要在A列中创建数字1-5的循环:
所以,现在我们有A列重复数字1-5,而B列每5个单元格增加100.你可以使用与你的方法相同的方法使B列重复,例如,数字100-900例如,列A用于生成具有多个变量的每种可能组合。向下拖动列,它们将无限地执行。我没有明确地解决给定的方案,但是如果您按照步骤理解它们,那么这个概念应该能够帮助您解决问题,即需要添加更多列并将其作为变量进行统一或使用。
答案 5 :(得分:1)
@Nat给出了很好的答案。但是由于没有办法缩短代码,所以为什么不使用conatenate来“生成”所需的代码。当我懒惰(在单元格中键入整个代码)时,它对我有用。
因此,我们需要的只是识别模式>使用excel构建模式“结构”>添加“ =”并将其粘贴到预期的单元格中。
例如,您要实现(我的意思是,在单元格中输入):
=IF('testsheet'!$C$1 <= 99,'testsheet'!$A$1,"") &IF('testsheet'!$C$2 <= 99,'testsheet'!$A$2,"") &IF('testsheet'!$C$3 <= 99,'testsheet'!$A$3,"") &IF('testsheet'!$C$4 <= 99,'testsheet'!$A$4,"") &IF('testsheet'!$C$5 <= 99,'testsheet'!$A$5,"") &IF('testsheet'!$C$6 <= 99,'testsheet'!$A$6,"") &IF('testsheet'!$C$7 <= 99,'testsheet'!$A$7,"") &IF('testsheet'!$C$8 <= 99,'testsheet'!$A$8,"") &IF('testsheet'!$C$9 <= 99,'testsheet'!$A$9,"") &IF('testsheet'!$C$10 <= 99,'testsheet'!$A$10,"") &IF('testsheet'!$C$11 <= 99,'testsheet'!$A$11,"") &IF('testsheet'!$C$12 <= 99,'testsheet'!$A$12,"") &IF('testsheet'!$C$13 <= 99,'testsheet'!$A$13,"") &IF('testsheet'!$C$14 <= 99,'testsheet'!$A$14,"") &IF('testsheet'!$C$15 <= 99,'testsheet'!$A$15,"") &IF('testsheet'!$C$16 <= 99,'testsheet'!$A$16,"") &IF('testsheet'!$C$17 <= 99,'testsheet'!$A$17,"") &IF('testsheet'!$C$18 <= 99,'testsheet'!$A$18,"") &IF('testsheet'!$C$19 <= 99,'testsheet'!$A$19,"") &IF('testsheet'!$C$20 <= 99,'testsheet'!$A$20,"") &IF('testsheet'!$C$21 <= 99,'testsheet'!$A$21,"") &IF('testsheet'!$C$22 <= 99,'testsheet'!$A$22,"") &IF('testsheet'!$C$23 <= 99,'testsheet'!$A$23,"") &IF('testsheet'!$C$24 <= 99,'testsheet'!$A$24,"") &IF('testsheet'!$C$25 <= 99,'testsheet'!$A$25,"") &IF('testsheet'!$C$26 <= 99,'testsheet'!$A$26,"") &IF('testsheet'!$C$27 <= 99,'testsheet'!$A$27,"") &IF('testsheet'!$C$28 <= 99,'testsheet'!$A$28,"") &IF('testsheet'!$C$29 <= 99,'testsheet'!$A$29,"") &IF('testsheet'!$C$30 <= 99,'testsheet'!$A$30,"") &IF('testsheet'!$C$31 <= 99,'testsheet'!$A$31,"") &IF('testsheet'!$C$32 <= 99,'testsheet'!$A$32,"") &IF('testsheet'!$C$33 <= 99,'testsheet'!$A$33,"") &IF('testsheet'!$C$34 <= 99,'testsheet'!$A$34,"") &IF('testsheet'!$C$35 <= 99,'testsheet'!$A$35,"") &IF('testsheet'!$C$36 <= 99,'testsheet'!$A$36,"") &IF('testsheet'!$C$37 <= 99,'testsheet'!$A$37,"") &IF('testsheet'!$C$38 <= 99,'testsheet'!$A$38,"") &IF('testsheet'!$C$39 <= 99,'testsheet'!$A$39,"") &IF('testsheet'!$C$40 <= 99,'testsheet'!$A$40,"")
我没有键入它,我只是使用“&”符号在excel中组合排列的单元格(另一个文件,不是我们正在处理的文件)。
注意:
第1部分> IF('testsheet'!$C$
第2部分> 1 to 40
第3部分> <= 99,'testsheet'!$A$
第4部分> 1 to 40
第5部分> ,"") &
现在选择A2:I2,并将其向下拖动。请注意,该数字确实增加了每行的有效信息,并且将生成的文本逐个单元格地逐行合并。
结果=您想要的代码。
我已经使用excel / OpenOfficeCalc帮助我为项目生成代码。为我工作,希望对其他人有帮助。 (: