2016 - 2024

感恩一路有你

使用数组公式计算工资对应的钞票数量

浏览量:2740 时间:2024-06-29 23:34:48 作者:采采

在一些企业和工厂中,仍然采用现金发放工资的方式。而对于财务人员来说,预估各种面额的钞票张数是一个必不可少的程序。对于大部分不懂VBA和函数的人员来说,这也是一个难点。

实际上,利用ET2009的数组公式可以轻松解决这个问题,只需要几秒钟。下面将演示具体需求和完成步骤。

建立辅助区并输入面额

假设需要计算的面额包括100元、50元、20元、10元、5元、2元、1元。在工资存放列(假设为B列)右边建立7列作为辅助区,用于存放每种面额的钞票张数。

  1. 在C1到I1区域分别输入100、50、20、10、5、2、1。
  2. 选择C1到I1区域,右键点击并选择“设置单元格格式”菜单。
  3. 在“数字”选项卡的“分类”中选择“自定义”。
  4. 在右边的“类型”框中将“G/通用格式”修改为“G/通用格式元”,这样单元格中显示的数字会带有单位“元”。

计算钞票数量

在C2单元格录入以下公式:IF(COLUMN()3,INT($B2/C$1),INT(($B2-SUM(OFFSET($B$1,ROWS($A$1:A1),1,COLUMNS($B:B)-1)*OFFSET($B$1,,1,COLUMNS($B:B)-1)))/C$1)。

录入公式后,需要同时按下“Ctrl Shift Enter”三键结束,表示按照数组公式计算,否则无法产生正确结果。

选择单元格C1,将公式向右填充至I2,再双击填充柄,将C2:I2的公式向下填充至末尾。公式的计算结果可以在相应的单元格中看到。

验证计算正确性

为了验证计算是否准确,我们可以在J列建立一个辅助区,用于汇总所有面额与数量的乘积。在J1输入“汇总”,在J2输入以下公式:SUM($C$1:$I$1*C2:I2)。

同样地,双击J2单元格的填充柄,将公式向下填充到最末单元格。

通过比较J列的汇总值和B列的工资,可以清晰分辨公式的正确性。

公式思路解释

计算100元面额的钞票数量时最简单,只需要将工资除以100,然后利用INT函数取整即可,即公式中的“INT($B2/C$1)”部分。而计算其他面值的钞票张数时,只需要对剩下的部分工资进行计算。重点是如何确定已经计算过的钞票面额的值。

在本例中,我们利用“OFFSET($B$1,,1,1,COLUMNS($B:B)-1)”获取已经计算过的钞票面额,再用“OFFSET($B$1,ROWS($A$1:A1),1,1,COLUMNS($B:B)-1)”获取已计算过的钞票对应的数量。两者乘积并汇总,再用总薪资求差即为剩下的待计算金额。

如果你熟悉ET中的专用函数MMULT,你还可以使用“IF(COLUMN()3,INT($B2/C$1),INT(($B2-MMULT(OFFSET($B$1,ROWS($A$1:A1),1,1,COLUMNS($B:B)-1),TRANSPOSE(OFFSET($B$1,,1,1,COLUMNS($B:B)-1))))/C$1)”来改写这个数组公式。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。