我正在尝试在 Excel 上的一系列非并发单元格上执行相同的操作。
假设我有范围 C:C,在这个范围内我需要执行此操作。我如何让它对单元格、等IF(ISNUMBER(C2),(C2*A2),(0))
一遍又一遍地执行相同的操作,这样我最终会得到类似这样的结果:C9
C16
C23
IF(ISNUMBER(C2),(C2*A2),(0))+IF(ISNUMBER(C9),(C9*A9),(0))
将结果发布到工作表上任意位置的一个单元格中。
谢谢,
萨尔
答案1
假设你想要从第 2 行开始的每第七行
=SUM(IF(ISNUMBER(A:A),A:A,0)*IF(ISNUMBER(C:C),C:C,0)*(MOD(ROW(A:A),7)=2))
解释
IF(ISNUMBER(A:A),A:A,0)
是工作表列的一个版本A
,其中任何非数字单元格都用零替换。同样,对于IF(ISNUMBER(C:C),C:C,0)
。
(MOD(ROW(A:A),7)=2)
仅仅是工作表的一个完整列TRUE
,并FALSE
根据工作表行号是否属于序列 2,9,16,23,... 的一部分。
Excel 允许将大小相同的数组相乘,结果是一个大小相同的数组,其单元格由“输入”数组的相应单元格相乘而来。此外,在 Excel 中,将数字乘以TRUE
或FALSE
分别相当于乘以 1 或 0。
替代公式
=SUM(IF(ISNUMBER(C:C),A:A*C:C,0)*(MOD(ROW(A:A),7)=2))
仅当全部列的元素A
要么为空,要么为数字。如果任何列的元素(单元格)A
是文本,并且对应的列元素C
是数字,则对应的元素的A:A*C:C
含义也将计算#VALUE!
为该SUM
值。
笔记
给出的公式允许使用全部列A
和C
。您可能不想“隔离”所有这些列。例如,如果您知道“总和”中的行数永远不会超过 100 行(以便要包括的最后一行不会在第 695 行之后),则可以将其修改为
=SUM(IF(ISNUMBER(A2:A695),A2:A695,0)*IF(ISNUMBER(C2:C695),C2:C695,0)*(MOD(ROW(A2:A695),7)=2))