无法在 Excel 表中检测月份“Jan”?

无法在 Excel 表中检测月份“Jan”?

在此处输入图片描述

参考编号(例如 EPS-I-S160201)的格式为EPS-I-"Category""yy""mm""Sequence No"

参考编号会自动生成,按顺序运行。每次在“发票日期”栏下检测到新的月份/年份时,最后 2 位数字都会自动重置为 01。

公式中有一个错误,即参考编号无法检测到任何包含 1 月 16 日的输入“发票日期”。但它可以检测到后面的行中的 1 月 17 日。似乎我的公式无法识别第一行输入中的 1 月。有什么方法可以解决这个问题吗?

我使用的公式是:

=IF(ISBLANK(C6),"","EPS-I-"&VLOOKUP(E6,数据库!$F$3:$G$9,2,FALSE)&TEXT(C6,"yy")&TEXT(C6,"mm")&TEXT(IF(MONTH(C6)=MONTH(C5),VALUE(RIGHT(B5, 2))+1, 1),"00"))

在此处输入图片描述

答案1

该问题与 1 月 16 日无关,您的问题是函数的最后一部分:

TEXT(IF(MONTH(C6)=MONTH(C5),VALUE(RIGHT(B5,2))+1,1) ,"00")

它试图将 C6 与 C5 的月份进行比较。但是,C5 的月份不存在,因此无法进行比较。

因此,下一行将 C7 与 C6 进行比较。没问题,它可以做到这一点,这是真的。只是,现在您要检查 B5 的值,由于最后一位的原因,无法做到这一点。

接下来的几行没有问题,因为它们不再位于同一个月,因此序列以有效值重新开始。

基本上,由于第一次失败,您只是遇到了级联错误。

因此让我们防止第一个错误发生:

TEXT(IF(AND(NOT(ISBLANK(C5)),(MONTH(C6)=MONTH(C5))),VALUE(RIGHT(B5,2))+1,1),"00"))

老实说,你应该做更多的检查,但你需要修改这样的事情(未经测试,但应该让你走上正确的道路)

答案2

@Jonno 说得对。基本上,你的公式有问题。

它通过检查前一行中的月份来工作。第 6 行之前的一行中没有月份。因此没有月份可以比较。

您需要更改第一行的公式,或者添加虚拟数据,为您提供 a) 月份,和 b) 第 5 行中的序列。如果没有这两者,公式的第一行将永远不起作用。

相关内容