在前一篇动态表的基础上,增加了一个要求:不仅勾选后会变色,还要自动仅对勾选区域求和。
案例:将下图 1 的数据表设置成动态表,勾选每一行的复选框,不仅整行会按楼号变成不同颜色,而且求和公式会自动计算选中的区域之和。
效果如下图 2 所示。
解决方案:1. 选择菜单栏的“开发工具”-->“插入”-->“复选框(窗体控件)”
2. 将复选框拖动到 A2 单元格的合适位置
3. 选中复选框 --> 右键单击 --> 在弹出的菜单中选择“编辑文本”--> 进入编辑状态后删除文本
4. 将 A2 单元格的控件复制粘贴到 A13 单元格
5. 再复制粘贴 10 个复选框,不用排版。
6. 按 Ctrl+G --> 在弹出的对话框中点击“定位条件”
7. 在弹出的对话框中选择“对象”--> 点击“确定”
8. 选择菜单栏的“形状格式”-->“对齐”-->“纵向分布”
9. 选择菜单栏的“形状格式”-->“对齐”-->“左对齐”
10. 选中 A2 单元格的复选框 --> 右键单击 --> 在弹出的菜单中选择“设置控件格式”
11. 在弹出的对话框中选择“控制”选项卡 --> 在“单元格链接”处选择 E2 单元格 --> 点击“确定”
12. 用同样的方式设置其他所有复选框。
13. 选中 A2:C5 区域 --> 选择菜单栏的“开始”-->“条件格式”-->“新建规则”
14. 在弹出的对话框中选择“使用公式确定要设置格式的单元格”--> 输入以下公式 --> 点击“格式”按钮:
=$E2:$E5=TRUE
* 公式中的列必须绝对引用,而行要相对引用。
15. 在弹出的对话框中选择“填充”选项卡 --> 设置所需的填充色 --> 点击“确定”
16. 点击“确定”
效果如下。
17. 用同样的方式给其他楼栋设置不同的颜色。
18. 在 C14 单元格中输入以下公式 --> 按 Ctrl+Shift+Enter 结束:
=SUM((C2:C13)*E2:E13)
公式释义:
将 C2:C13 和 E2:E13 区域中的值依次相乘,只有 E 列中为 true 的单元格,相乘后 C 列的值会保留下来;其他 false 的乘积都为 0;
用 sum 函数对上述结果求和,即可对勾选行求和;
数组公式必须按三键结束
这就是最终效果。
19. 将 E 列的字体设置成白色。