我输入了这个公式,但是出现了错误...有人可以帮忙吗?
=COUNTIFS(West!N6:N26,true,[West!C6:C26,>=1/1/21,date range,<=1/31/21])
答案1
无需使用IF()
:事实上,当您有一长串条件(即使只有五六个)时,COUNTIFS()
它是一个很好的替代品IF()
并且更加出色,因为您可以在每个条件后使用 Alt-Enter 将它们整齐地堆叠在公式编辑栏中,这使得设置和稍后维护它们比我们称之为的卑鄙、讨厌的连续句子容易得多IF()
。
如上所述FlexYourData
,如果您删除那些难以解释的方括号,并将日期部分括在双引号中(如下所示),那么只要“日期范围”成为某种有效的参考,您就可以开展业务:
=COUNTIFS(West!N6:N26,true,West!C6:C26,">=1/1/21",date range,"<=1/31/21")
首先是日期部分。您的条件不能像您有条件一样直接写出来。第一个条件是可以的,true
因为...嗯,因为 Excel 就是这样的...但是对于不是逻辑 TRUE/FALSE 的条件,您需要将整个条件括在双引号中,或者如果它是运算符(例如“>=”)和函数或公式(例如TODAY()
可能),那么运算符必须用双引号引起来,而函数则不必。因此,不仅仅是日期本身,而是整个条件,如上所示。
现在,“日期范围”不能是命名范围,因为 NR 中不能有空格。因此,有人认为您是从广义的概念性公式转变为具有实际范围等的公式,例如 West!C6:C26 公式,并且刚好错过了第三个公式,只剩下“日期范围”……在这种情况下,在其中放入一些实际的东西,即使是命名范围,也可以解决这个困难。如果我错了,而您真的想要在那里放“日期范围”,那么您将永远无法让它工作。
最后说明:关于事物周围的双引号。它们是为 Excel 设计的,因此它可以告诉您双引号内的文字值。Excel 将对的第一部分“条件”与此值进行比较。因此如上所述,使用引号内的文字值,因此 Excel 会获取它在 N 列单元格中找到的内容并添加您的文字表达式,因此它会在它后面添加比较运算符和值,这样它就构建了一个表达式,它可以将其视为在某个单元格中找到的公式并向其自身返回 TRUE 或 FALSE,并使用它来决定是否将其包含在您正在使用的 xxxxxIF 或 xxxxxIFS 函数的答案中。
如果您不包括双引号,Excel 会认为您输入了一个函数(当它无法在自身中找到该函数时,它会将其作为命名范围来查找,如果找不到,它会返回一个错误,从而导致问题...(通常...但并非总是如此!说起来很奇怪。但是,不会导致问题的方式并没有实际用途,不能用其他方法做得更好。因此,如果您不使用函数或命名范围,请使用双引号,即使在使用函数时,也必须引用比较运算符(=、> 等)。实际上,它听起来可能比这复杂得多,但如果您遵循这些想法,并记住不使用带有条件的比较运算符会告诉 Excel 使用=
,您可以解决可能遇到的大多数情况。
不过,您的情况很简单:整个事物都用双引号引起来,正如您上面看到的。