【发布时间】:2013-04-28 11:15:09
【问题描述】:
我目前有一个类似于以下的 Excel 工作表(# 代表空白单元格)
1 2 3 4 5 6 7
37 21 30 32 25 22 34
# 17 26 28 27 17 31
# # # # # # 38
25 23 27 35 33 # #
27 11 23 # # # #
在第 8 列中,我需要最后 3 个非空白单元格的总和(列数定期增加)。
我需要实现的示例如下:
1 2 3 4 5 6 7 8
37 21 30 32 25 22 34 25+22+34=81
# 17 26 28 27 17 31 27+17+31=75
# # # # # # 38 N/A
25 23 27 35 33 # # 27+35+33=95
27 11 23 # # # # 27+11+23=61
我已经设法非常接近 LARGE 函数,但显然这只给了我最大的 3 个,而不是最后 3 个非空白:
=(LARGE(C3:J3,1)+LARGE(C3:J3,2)+LARGE(C3:J3,3))
【问题讨论】:
-
你想要 VBA 还是 NON VBA 解决方案?
-
VBA 绝对可以通过向下循环第 8 列 - 然后在循环内,您需要从左到右移动寻找前三个非空白,并且每次为第 8 列构建公式或计算总数。我不会写这个,因为我怀疑其他人会使用工作表函数,如果可用,这是更简单的方法
-
如果可能的话,为了便于管理,我更喜欢非 VBA,但如果没有可用的工作表函数,VBA 就可以了。
-
有一个公式。请给我一些时间。我正在试验它。
-
如果第 1 行中有 2 个 34,那么我会遇到这样的情况。我已经管理了其余的部分。仍在试验中
标签: vba excel worksheet-function