如何在没有VBA或宏的情况下循环excel?

时间:2011-02-08 23:02:44

标签: excel excel-formula

是否可以在没有安装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。

6 个答案:

答案 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中创建单个循环非常简单。它实际上为你工作。在新工作簿上试试这个

  1. 在A1
  2. 中输入“1”
  3. 在A2
  4. 中输入“= A1 + 1” 拖动时,

    A3将自动为“= A2 + 1”。第一步不必是明确的。如果您只在A2中输入“2”,Excel将自动识别模式并计数,但如果我们希望B1-B5为“100”而B5-B10为“200”(以相同的方式计数),您可以看到为什么知道怎么做才明确重要。在这种情况下,您只需输入:

      B1中的
    1. “100”,拖到B5和
    2. B6 中的
    3. “= B1 + 100” 当你向下拖动时,

      B7将自动为“= B2 + 100”等,所以基本上每5行无限增加。要在A列中创建数字1-5的循环:

      1. 在单元格A6中输入“= A1”。当你向下拖动时,由于Excel的工作方式,它会在单元格A7等中自动为“= A2”。
      2. 所以,现在我们有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部分> ,"") &

  • 将part1输入到A1,将part3输入到C1,输入到E1。
  • 在A2中输入“ = A1”,在C2中输入“ = C1”,在E2中输入“ = E1”。
  • 在B2中输入“ = B1 + 1”,在D2中输入“ = D1 + 1”。
  • 在G2中输入“ = A2&B2&C2&D2&E2”
  • 在I2中输入“ = I1&G2”

现在选择A2:I2,并将其向下拖动。请注意,该数字确实增加了每行的有效信息,并且将生成的文本逐个单元格地逐行合并。

  • 复制I41内容,
  • 将其粘贴到某个位置,在前面添加“ =”,然后删除多余的&和后面。

结果=您想要的代码。

我已经使用excel / OpenOfficeCalc帮助我为项目生成代码。为我工作,希望对其他人有帮助。 (: