Excel 公式/VBA 代码仅对包含值的单元格求和(跳过任何包含公式的单元格)?
是否有一个公式只能对包含值的单元格(而不是具有公式的单元格)求和?例如,假设在电子表格的 A 列中,我混合了输入的值和返回值的公式。如果我在最后使用求和公式,它自然会对所选数组中的所有数字求和,无论它们是输入的值还是公式生成的值。 (也许是某种 SUMIF 和 VBA 代码组合..)如果我的描述不清楚,这里是一个假设的电子表格设置,我需要这个公式:
A
1| 400
2| =SUM(B1:B3)
3| =AVERAGE(B1:B3)
4| 200
5| 100
6| =COUNT(B1:B3)
7| I want the sum Formula in this cell (A7) to return the value 700 (the sum of the values above).
Is there a formula that will sum ONLY cells that contain a value (not cells with a formula)? For example, say in column A of a spreadsheet I have a mixture of entered values and formulas that return values. If I use a sum formula at the end it will naturally sum all of the numbers in the selected array regardless of whether they are entered values or values resulting from a formula. (Maybe some kind of SUMIF & VBA code combo..) In case my description wasn't clear, here is a hypothetical spreadsheet set-up where i would need this formula:
A
1| 400
2| =SUM(B1:B3)
3| =AVERAGE(B1:B3)
4| 200
5| 100
6| =COUNT(B1:B3)
7| I want the sum Formula in this cell (A7) to return the value 700 (the sum of the values above).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果您对所有函数都使用 SUBTOTAL,则可以做到。 SUBTOTAL 将忽略该范围内的任何其他 SUBTOTAL 函数。在A2中
,在A3中,
在A6中,
在A7中,
A7将是700(我认为这就是你的意思)。如果您的公式在 SUBTOTAL 中不存在,那么它将不起作用。
If you use SUBTOTAL for all of your functions, you can do it. SUBTOTAL will ignore any other SUBTOTAL functions in the range. In A2
In A3
In A6
In A7
A7 will be 700 (which is what I assume you meant). If you have formulas that aren't an option in SUBTOTAL, then it won't work.
澄清马丁的答案。
使用 Excel 公式无法知道单元格是否包含公式。
您必须定义一个 UDF(用户定义函数)。 教程在这里。。
从教程中:
您的 UDF 将类似于:
然后您可以在代码中使用它。类似于:
其中大括号 {} 表示 ARRAY 公式(通过 Ctrl-Shift-Enter 输入)
HTH!
To clarify Martin's answer.
There is no way to know if a cell contains a formula using Excel formulas.
You have to define an UDF (user defined function). Tutorial here. .
From the tutorial:
Your UDF will look something like:
Then you may use it in your code. Something like:
Where the braces {} indicate an ARRAY formula (entered by Ctrl-Shift-Enter)
HTH!
您可能有一个 HasFormula 属性能够与 SUMIF 结合做你想做的事。
There is a HasFormula Property which you may be able to combine with SUMIF to do what you want.
这会起作用,尽管不知何故感觉很草率,而且肯定有更好的方法。通过一些额外的工作,您可以将其变成 UDF。
This will work, though somehow it feels sloppy and there must surely be a better way. With a little extra work you could make this into a UDF.