如何在没有VBA或宏的Excel中循环?

olmpazwi  于 2023-03-09  发布在  其他
关注(0)|答案(6)|浏览(245)

在没有安装VBA或宏的情况下,有可能在Excel中迭代(循环)一组行吗?Web搜索没有产生任何有用的结果。

=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。

pn9klfpd

pn9klfpd1#

获取公式结果的方法是从新工作表开始。
在单元格A1中填入公式

=IF('testsheet'!C1 <= 99,'testsheet'!A1,"")

将该单元格向下复制到第40行在单元格B1中输入公式

=A1

在单元格B2中填入公式

=B1 & A2

将该单元格向下复制到第40行。
现在,所需的值就在第40行的该列中。
不是你真正想要的答案,但这是最快的方法来完成事情excel明智的,而不需要创建一个自定义公式,在一个范围内,使计算(这将是更有趣的做法)。

5f0d552i

5f0d552i2#

我只是在找类似的东西:
我想把每一个奇数行和列相加。
SUMIF有两个可能的范围,一个是 sum from 的范围,另一个是 consider criteria in的范围。

SUMIF(B1:B1000,1,A1:A1000)

此函数将考虑B范围内的单元格是否为“=1”,只有在为“= 1”时,它才会对相应的A单元格求和。
为了使“=1”返回到B范围内,我将以下内容放入B中:

=MOD(ROWNUM(B1),2)

然后自动填充,得到要填充的模数,你可以在这里输入一个可计算的条件,得到你需要循环通过每个单元格的SUMIF或SUMIFS条件。
比数组的东西更容易,并隐藏了循环的后端!

yvfmudvl

yvfmudvl3#

我自己来回答这个问题(如果我错了,请纠正我):
如果未安装VBA/未启用宏,则无法在Excel中迭代一组行(如数组)。

vzgqcmou

vzgqcmou4#

您可以在计算电子表格的某个位置创建一个表,为每对单元格执行此操作,然后使用自动填充来填充它。
将该表中的结果聚合到结果单元格中。
引用结果的200个so单元格可以引用保存聚合结果的单元格,在最新版本的excel中,为了便于阅读,你可以命名结果单元格并引用它。

7qhs6swi

7qhs6swi5#

当你的变量循环以不同的速率重复时,添加更多的列。我不清楚你想做什么,但是我想我已经做了一些可以应用的事情。
在Excel中创建一个循环非常简单。它实际上为你完成了这项工作。在一个新的工作簿上试试这个
1.在A1中输入“1”
1.在A2中输入“=A1+1”
向下拖动时,A3将自动变为“=A2+1”。第一步不必那么明确。如果您只在A2中输入“2”,Excel将自动识别模式并计数,但如果我们希望B1-B5为“100”,B5-B10为“200”,(以同样的方式计数)你可以明白为什么知道如何明确地做它很重要。在这个场景中,你只需输入:

  1. B1中的“100”,拖动到B5,然后
  2. B6中的“=B1+100”
    当你向下拖动时,B7会自动变为“=B2+100”等,所以基本上它每5行无限增加一次。要在A列中循环数字1-5:
    1.在单元格A6中输入“=A1”。向下拖动时,单元格A7中的值将自动变为“=A2”,依此类推,这是Excel的工作方式。
    现在,A列重复数字1-5,而B列每5个单元格增加100。例如,您可以使用与A列相同的方法,使B列重复数字100-900,以生成,例如,每个可能的组合都有多个变量。向下拖动列,它们会无限地执行。我没有明确地解决给定的场景,但是如果您遵循这些步骤并理解了它们,那么这个概念应该可以为您提供一个解决问题的答案,这个问题涉及到添加更多的列并将它们集中或用作变量。
1mrurvl1

1mrurvl16#

@Nat给出了一个很好的答案。但是既然没有办法缩短代码,为什么不使用concatenate来“生成”你需要的代码呢?当我很懒的时候(在单元格中输入整个代码),它很管用。
因此,我们需要做的只是识别模式〉使用excel构建模式'structure'〉添加“=“并将其粘贴到预期的单元格中。
例如,你想达到(我的意思是,在单元格中输入):

=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部分〉,"") &

  • 输入零件1到A1,零件3到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来帮助我为我的项目生成代码。对我有效,希望对其他人有帮助。(:

相关问题