使用公式对Excel中的数据进行分类

我试图根据月份和date(一年中的特定时间)将每行分为x,y或z。 我的分类是:

  • X = 6月1日 – 10月1日
  • Y = 11月15日 – 4月15日
  • Z =所有其他人

我意识到这可能很简单,但我似乎无法得到公式恰到好处。 我有这样的表格:

日月年testing
7 5 2012 Z
6 5 2013 Z
2 11 2011 Z
4 6 2013 Z
27 5 2013 Z
14 3 2013 Z
14 5 2014 Z
20 10 2013 Z
5 12 2013 Z

我目前的“testing”公式是:

= IF(AND(与(B2> = 6,A2> = 1),和(b2 <= 10,A2 <= 1)), “X”,IF(OR(AND(B2 <= 4,A2 <= 15),和(b2> = 11,A2> = 15)), “Y”, “Z”))

任何帮助,将不胜感激!

你的公式不起作用的原因是你正在同时testing两个月和一天 – 例如,

IF(AND(B2<=4,A2<=15) 

将在3月16日返回假,即使你想要它是真实的。 这是因为你的配方不理解“天和月”的概念。

我会使用的公式是

 =IF(AND(DATE(C2,B2,A2)>=DATE(C2,6,1),DATE(C2,B2,A2)<DATE(C2,10,1)), "X", IF(OR(DATE(C2,B2,A2)>=DATE(C2,11,15),DATE(C2,B2,A2)<DATE(C2,4,15)), "Y", "Z")) 

注 – 我添加了一个回车,不应该在那里,使其更具可读性。

还要注意,我的公式计算DATE(C2,B2,A2)很多次,并且将它作为一个单独的(隐藏的)列是很好的。 关于这个expression式的好处在于它使用内置的DATE函数,可以理解几个月和几天 – 根据date范围标准的不同,修复它相对容易。 用你的testingdate,它给出了以下内容:

 Day Month Year Test 7 5 2012 Z 6 5 2013 Z 2 11 2011 Z 4 6 2013 X 27 5 2013 Z 14 3 2013 Y 14 5 2014 Z 20 10 2013 Z 5 12 2013 Y 

注意 – 在@pnuts指出错误后更新…

还要注意…上面总共有4个条件 – 我决定要包括哪些date,我有些自由。 基本上,我翻译你的要求如下:

 date >= Nov 15 of this year ==> "Y" date < April 15 of this year ==> "Y" date >= June 1 AND date < Oct 1 ==> "X" else "Z" 

这可能不是你想要的,但是expression式是如何工作的,应该可以根据需要进行调整(尤其是不清楚4月15日是否应该是“Y”或“Z”的一部分) , 例如。)

我认为定义一系列variables(可能在一个隐藏的表格上)是有用的,

 startXmonth = 4 startXday = 15 stopXmonth = 10 stopXday = 1 

等等,然后你可以使用这些名字,而不是你的公式中的“幻数”。 这样,如果您决定要更改某个关税的date范围,您可以在一个合理的地方更改,而不是埋在公式中。 你可能会认为这是额外的工作,但是稍后你会感谢我

最后,您可能希望使用<=>=来创build所有date,并定义第一天和最后一天(而不是像上面那样包含第一天,第一天不包括在内) )。

让我知道这一切是否有道理。

未经testing(预期的结果将有所帮助)请尝试:

 =IF(OR(AND(B2<5,A2<16),AND(B2=11,A2>14),B2=12),"Y",IF(OR(AND(B2>5,B2<10),AND(B2=10,A2=1)),"X","Z"))