首页 > 解决方案 > 如何使用 excel 公式计算 yyyymm 格式的两个日期时间值之间的差异?

问题描述

我使用以下公式,

INT(LEFT(A4,4) & TEXT((DATEVALUE(MID(A4,6,3) & " 1")),"mm"))=INT($C$1-1)

INT(LEFT(A4,4) & TEXT((DATEVALUE(MID(A4,6,3) & " 1")),"mm"))这部分以 yyyymm 格式返回日期。

$C$1 的值由用户以 yyyymm 格式输入。

我想和后面的部分进行比较,但是如果$C$1的值设置为202101,则失败,例如,请查找附图。在这种情况下,我希望最终输出为真。

例子

有没有办法修改后半部分/更好地解决这个问题?

标签: excelexcel-formula

解决方案


该答案基于 OP 对原始问题的评论。OP 要求从日期 202101 中减去 1 以给出 202012 作为答案。

假设字符串日期在 C3 中,要减去的值在 D3 中,在 E3 中使用以下公式:

=IF((RIGHT(C3,2)-D3)>0,LEFT(C3,4)&RIGHT("0"&(RIGHT(C3,2)-D3),2),RIGHT("000"&LEFT(C3,4)-1,4)&RIGHT("0"&RIGHT(C3,2)+12-D3,2))

这应该可以工作:

  • 这不是第 0 年
  • 减去不超过 12 个月

POC

更新

由于问题有新信息。在 B2 中使用以下公式

=A2=--IF((RIGHT(C1,2)-1)>0,LEFT(C1,4)&RIGHT("0"&(RIGHT(C1,2)-1),2),RIGHT("000"&LEFT(C1,4)-1,4)&RIGHT("0"&RIGHT(C1,2)+11,2))

如果您不确定 A2 的值是存储为文本的数字还是实际数字,您可以使用以下内容调整上述公式:

=--A2=--IF((RIGHT(C1,2)-1)>0,LEFT(C1,4)&RIGHT("0"&(RIGHT(C1,2)-1),2),RIGHT("000"&LEFT(C1,4)-1,4)&RIGHT("0"&RIGHT(C1,2)+11,2))

POC II


推荐阅读