表格里工资怎么用函数公式表示,如图?

当出勤天数≤满勤天数,应发工资=基本工资/当月总天数*出勤天数当出勤天数>满勤天数,应发工资=基本工资这个怎么做?

在 Excel 2007 中,

如果按题意设置公式,则为“=IF(C2<=B2,A2/DAY(EOMONTH(TODAY(),0))*C2,A2)”,但得出的结果与题给出的结果不同(按本月总天数=31天计,2400/31*29=2245.12169)。

如果要得到题给出的结果相同的结果,公式则应为“=IF(C2>=B2,A2,A2/DAY(EOMONTH(TODAY(),0))*C2)”即“当出勤天数<满勤天数,应发工资=基本工资/当月总天数*出勤天数;当出勤天数满勤天数,应发工资=基本工资”

为使“应发工资”取整,有以下两种方式:

    设置单元格格式取整。即设置单元格格式为“小数为零”的数字格式(为使结果出现分节号,特别使用了“自定义”中的格式“#,##0”)

    函数取整。用函数“ROUNDUP”将修改题意后的公式改为“=IF(C2>=B2,A2,ROUNDUP(A2/DAY(EOMONTH(TODAY(),0))*C2,0))”。

为使“应发工资”有分节号,须额外设置单元格。

按照公式得出的结果如下图示:

公式结果的图示

追问

那如果这个月是30天或者28天,公式要修改哪里啊

追答

抱歉!公式笔误:如果是当月,公式“EOMONTH(TODAY(),1)”的“1”应为“0”,无论当月的天数是多少,该公式均显示正确天数。

如果是要计算当月之前的月份,则将“0”改为“负数”,“-1”表示前一个月,“-2”表示前两个月,以此类推;

如果是要计算当月之后的月份,则将“0”改为“正数”,“1”表示后一个月,“2”表示后两个月,以此类推。

语法(摘自 Excel 2007 帮助)

EOMONTH(start_date,months)

Start_date  是代表开始日期的一个日期。应使用 DATE
函数输入日期,或者将函数作为其他公式或函数的结果输入。例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。如果日期以文本形式输入,则会出现问题。

Month  为 start_date 之前或之后的月数。正数表示未来日期,负数表示过去日期。

    如果 months 不是整数,将截尾取整。

追问

那假如我8月用这个公式EOMONTH(TODAY(),0),当月是31天,数据是对的,那9月份打开8月份做的这个报表,数据会变成9月30天的数据吗?因为这个工资我每个月都需要做,数据会随着时间的不同有所变化吗

追答

公式“DAY(EOMONTH(TODAY(),0))”所计算的“当月天数”指的是公式中的“TODAY() ”所在月份的天数:

“TODAY() ”是“9月份”的某一天,计算出来的当月天数就是“9月份的天数(30)”,

“TODAY() ”是“8月份”的某一天,计算出来的当月天数就是“8月份的天数(31)”,

以此类推。

注1:取巧的验证方法是:将公式“=DAY(EOMONTH(TODAY(),0))”复制并粘贴于某单元格,“Enter”结束。“TODAY() ”=“2021年9月6日”,所以公式结果为“30”,将公式中的“0”改为“1”,则表示的是“10月份的天数”,结果为“31”。

注2:模拟日期的验证方法是:公式“=DAY(EOMONTH(TODAY(),0))”不变,改变系统日期。若系统日期改为8月份,则公式的结果应为“31”,系统日期改为2月份,则公式的结果应为“28”或“29”(视是否闰月而定),以此类推。

追问

你讲的好仔细,我都明白了,谢谢啦

温馨提示:答案为网友推荐,仅供参考
相似回答