excel计算特定时期每月的天数

标签 excel

我知道这已经被问过很多次了。但我不能让它适用于我的场景。我需要计算两个日期之间的入住天数,但我也需要考虑年份...(即 2020 年 1 月至 2021 年 12 月。
我的计算公式是:=MAX(0; MIN(EOMONTH(C$1; 0); $B2)-MAX(C$1; $A2) +1) 其中 C1 是我要查找的月份,B2 是结束日期,A2 是开始日期......
这是我的截图:
sheet
这是我期待的结果:
expected results
我认为我的格式有问题,我不知道如何克服......通过更多测试,看起来我的公式一开始就很好:

  • 我创建空白工作表并手动添加开始日期 - 结束日期和标题列月份以尝试公式,将其格式化为日期(使用 * 作为日期 - *14.3.20)并且效果很好......这是我的屏幕截图:

  • manual entry
  • 当我从不同的工作表中复制粘贴开始日期和结束日期时(我已经有数千个开始结束日期......不可能手动输入所有日期)。比我粘贴特殊的值 - 只是值,然后在格式中我选择日期,与我的测试 excel 表相同的格式......它根本不起作用......我如何在粘贴的值上格式化日期?这是错误的屏幕截图......

  • wrong manaul entry
    我选择的开始日期列和结束日期列比:
    Data > Text to Columns Next,Next,然后选择 Date 'DMY'.... 成功了。
    开始和结束日期被转换回日期,一切都开始为我工作......
    从数据库导入的日期并且它们前面有前导空格......这就是计算失败的原因。一旦他们回到真实日期,一切都开始工作......
    谢谢你们的帮助!

    最佳答案

    我只是发布另一个我已经制定的基于 IF 的变体。=IF(OR(AND(C$1>$A2,$B2>C$1),AND(EOMONTH(C$1,0)>$A2,$B2>EOMONTH(C$1,0))),MIN($B2,EOMONTH(C$1,0))-MAX($A2,C$1)+1,0)主要条件是检查第 1 行(当月内)提到的任何日期是否与单元格 A2 中指定的开始日期或结束日期相交。和 B2 .清除此问题后,您发布的主要逻辑就可以正常工作。
    您必须根据您的语言环境更改参数分隔符!
    编辑 -
    @AnilGoyal 发现了公式错误,我发布了修改后的公式。我把那些丢失的AND OR 中的条件.除此之外,该公式会错过日期是该月的第一天或最后一天的边界条件。=IF(OR(AND(C$1>=$A2,C$1<=$B2),AND(EOMONTH(C$1,0)>=$A2,EOMONTH(C$1,0)<=$B2),AND($A2<=EOMONTH(C$1,0),$A2>=C$1),AND($B2<=EOMONTH(C$1,0),$B2>=C$1)),MIN($B2,EOMONTH(C$1,0))-MAX($A2,C$1)+1,0)总的来说,OP的原始公式应该很好用。事实证明,下面的公式似乎也可以正常工作。=MAX(0,MIN($B2,EOMONTH(E$1,0))-MAX($A2,E$1)+1)

    关于excel计算特定时期每月的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65899292/

    相关文章:

    excel - 使用条件格式按类别交替设置数据格式

    vba - 记住双击之前选择的单元格

    excel - VBA Excel : Module visible in the project explorer, 但不是代码窗口

    excel - 如何向 if 公式添加通配符(还包含 or 条件)

    excel - 如何快速判断一个字符串的一部分是否与另一个字符串匹配?

    excel - 将图像从一个工作簿复制到另一个工作簿

    vba - 如何将 excel VBA UI 放在前面

    excel - 将 Haskell lib 导出为 DLL

    excel - VBA - 保存工作簿并将今天的日期添加到当前工作簿名称

    vba - Excel 查找和替换宏