假设我在列中有A
一个整数列表,我想在 中对它们求和B1
。那么我可以简单地写=SUM(A:A)
。假设我想要小于 10 的整数之和,那么我可以写SUMIF(A:A,"<=10")
。如果我现在想对以下整数求和,该怎么办?完全平方?
我总是可以在第一个单元格 ( )C
中创建一个列,然后依此类推。然后我可能可以写入类似 的内容,然后继续隐藏丑陋的列。C1
=INT(SQRT(A1))=SQRT(A1)
=INT(SQRT(A2))=SQRT(A2)
B1
SUMIF(C:C,"TRUE",A:A)
C
但有没有更简单、更简洁的方法来做到这一点?我似乎找不到在标准中应用函数的方法。例如,如果@x
是占位符名称(一个变量)表示应用该标准的值,我可以写"@x<=10"
为"<=10"
,但更有用的是,我可以"INT(SQRT(@x))=SQRT(@x)"
直接写,而不是C
像以前那样创建一个列。那么我的问题是,
是否有一种简单的方法来创建这样有用的标准?
答案1
答案2
您可以使用通过 Ctrl+Shift+Enter 输入的特殊公式
它们被称为数组公式并在图括号中查找(由 Excel 添加):
{ =SUM( IF( INT(SQRT(A1:A100))=SQRT(A1:A100); A1:A100; 0 ) ) }
如您所见,这些公式允许计算任何自定义表达式并对任何其他表达式求和,例如:
{ =SUM( IF( INT(SQRT(A1:A100))=SQRT(A1:A100); B1:B100; C101:C200 ) ) }
小提示:我记得(我很多年前就用过这些公式)它们不适用于以下间隔答:所以我不得不使用A1:A16384使用整个列
目前我无法检查(因为 Linux 和 Libre Office 尚未实现),但微软可能已经改进了这一点,并允许使用简单的无限间隔,如答:
此外:https://www.vertex42.com/blog/excel-formulas/array-formula-examples.html