我试图根据月份和日期(一年中的某个时间)将每一行分类为x,y或z。我的类别是:
我意识到这可能很简单,但我似乎无法使公式恰到好处。我看到的表格如下:
日月年度测试
7 5 2012 Z
6 5 2013 Z
2011年11月11日 4 6 2013 Z
27 5 2013 Z
14 3 2013 Z
14 5 2014 Z
20 10 2013 Z
5 12 2013 Z
我目前的“测试”公式是:
= IF(AND(与(B2> = 6,A2> = 1),和(b2< = 10,A2< = 1)), “X”,IF(OR(AND(B2< = 4, A2< = 15),和(b2> = 11,A2> = 15)), “Y”, “Z”))
任何帮助将不胜感激!
答案 0 :(得分:1)
未经测试(预期结果会有所帮助)请尝试:
=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"))
答案 1 :(得分:1)
您的公式不起作用的原因是您同时测试月份和日期 - 例如,
IF(AND(B2<=4,A2<=15)
将在3月16日返回false,即使您希望它为真。这是因为你的公式不理解“日和月”的概念。
我将使用的公式是
=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)
次数很多次,将其作为单独的(隐藏)列可能会很好。关于这个表达式的好处是它使用内置的DATE
函数来理解几个月和几天 - 并且根据日期范围标准来修复它是相对容易的。根据您的考试日期,它提供以下内容:
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 >= Nov 15 of this year ==> "Y"
date < April 15 of this year ==> "Y"
date >= June 1 AND date < Oct 1 ==> "X"
else "Z"
这可能不是完全你想要什么,但是表达方式应该是显而易见的,你应该能够根据需要进行调整(特别是不清楚4月15日是否应该例如,“Y”或“Z”的一部分。)
我认为定义一系列变量(可能在隐藏的工作表上)是有用的
startXmonth = 4
startXday = 15
stopXmonth = 10
stopXday = 1
等,然后您可以在公式中使用这些名称而不是“魔术数字”。这样,如果您决定要更改与特定关税相对应的日期范围,您可以在合理的位置更改它,而不是隐藏在公式中的某个位置。你现在可能认为这是额外的工作,但你以后会感谢我......
最后,您可能希望使用<=
和>=
制作所有日期“最多和包含”,并定义第一天和最后一天(而不是如上所述,第一天包括并且第一天不包括在内。)
如果这一切都有意义,请告诉我。